Predicting molecular properties using Graph Neural Networks (GNNs). This project applies deep learning to chemistry by representing molecules as graphs and training neural networks to predict toxicity, solubility, and other properties.
Goal: Build a Graph Neural Network that can predict molecular properties from chemical structure.
Why GNNs?: Traditional machine learning treats molecules as fixed-length feature vectors (fingerprints), losing structural information. GNNs learn directly from the molecular graph structure, capturing complex patterns like functional groups and ring systems.
- Input: Molecular structure (SMILES string)
- Representation: Graph (atoms = nodes, bonds = edges)
- Model: Graph Convolutional Network (GCN)
- Output: Physical Property Prediction and Toxicity Prediction for biomolecules
-
Create a virtual environment and install dependencies:
python -m venv .venv . .venv/bin/activate pip install -r requirements.txt -
Put raw CSV datasets in
data/raw/(example:data/raw/ESOL.csv). -
Run training:
python main.py --dataset data/raw/ESOL.csv --model gcn --task regression
- Streamlit UI (recommended):
From the project root run:
Then open http://localhost:8501 in your browser.
streamlit run app.py --server.port 8501
Default model path used by the UI: molecule_gnn_final.pt
- Modify command-line args in
main.pyfor batch size, epochs, splits, etc. - Trained model saved to the path given by
--save-path.
This project is licensed under the MIT License - see the LICENSE file for details.