GNNs For Chemists

May 14, 2026 · View on GitHub

GNNs For Chemists Banner

GNNs For Chemists

Implementations of different graph neural networks (GNNs) from scratch for Chemists

Project Description

This repository serves as an educational resource for chemists and researchers interested in applying Graph Neural Networks to chemical problems. Each notebook progressively builds upon fundamental concepts, from basic graph representation of molecules to advanced molecular property prediction models.

Prerequisites

To get the most out of this tutorial series, you should have:

  • Python: Basic to intermediate Python programming skills
  • Chemistry: Fundamental understanding of molecular structures and properties
  • Machine Learning: Basic familiarity with neural network concepts
  • Mathematics: Basic understanding of linear algebra and calculus fundamentals
  • Packages: Familiarity with PyTorch, NumPy, and RDKit (installation instructions provided in notebooks)

No prior experience with graph neural networks is required - we build the concepts from the ground up!

Resources

Core Tutorial Sequence

The following notebooks (01, 02, 03, ...) form the main learning path and are essential for understanding GNN fundamentals:

NotebookDescriptionOpen in ColabYear
01_GNN_representation.ipynbRepresenting molecules as graphsOpen In Colab2025
02_GNN_message_passing.ipynbUnderstanding the message-passing conceptOpen In Colab2025
03_GNN_molecular_activity_predictor.ipynbBuild and train the first GNNOpen In Colab2025
04_GNN_GCN.ipynbGraph convolutional networkOpen In Colab2025
05_GNN_GAT.ipynbGraph attention networkOpen In Colab2025
06_GNN_GIN.ipynbGraph isomorphism networkOpen In Colab2025
07_GNN_SchNet.ipynbSchNet: continuous-filter convolutions on 3D atomic positionscoming soon
08_GNN_DimNet.ipynbDimeNet: directional message passing with bond anglescoming soon
09_GNN_EGNN.ipynbE(3)-equivariant graph neural networkcoming soon
10_GNN_GT.ipynbGraph Transformer / Graphormercoming soon

Supplementary Deep-Dive Notebooks

These notebooks (01.1, 01.2, ...) provide additional details and advanced topics that complement the main series:

NotebookDescriptionOpen in ColabYear
01.1_GNN_3D_representation.ipynbInteractive 3D molecular visualizations and stereochemistryOpen In Colab2025
01.2_GNN_alternative_representations.ipynbAlternative graph encodings: dual graphs, atom-bond networkscoming soon
01.3_GNN_fragment_representation.ipynbFragment-based molecular representations (BRICS, functional groups, ring systems)coming soon
01.4_GNN_frameworks.ipynbFramework comparison: PyTorch Geometric vs. DGL vs. Jraphcoming soon
01.5_GNN_graph_characteristics.ipynbWhat molecular graphs look like statistically — size, sparsity, degree, diameter — and why GNNs use 3–5 layersOpen In Colab2026
02.1_GNN_oversmoothing.ipynbVisualizing oversmoothing: why very deep GNNs failOpen In Colab2026

Contributing

Contributions are welcome! Please see CONTRIBUTIONS.md for guidelines on how to contribute.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use this repository in your research, please cite it as:

@misc{gnns_for_chemists,
  author = {Fooladi, Hosein},
  title = {GNNs For Chemists: Implementations of Graph Neural Networks from Scratch for Chemical Applications},
  year = {2025},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/HFooladi/GNNs-For-Chemists}},
  note = {Educational resource for chemists, pharmacists, and researchers interested in applying Graph Neural Networks to chemical problems}
}