|
|
--- |
|
|
license: mit |
|
|
tags: |
|
|
- molecular-property-prediction |
|
|
- graph-neural-network |
|
|
- chemistry |
|
|
- pytorch |
|
|
datasets: |
|
|
- qm9 |
|
|
- spice |
|
|
- pfas |
|
|
metrics: |
|
|
- mse |
|
|
- mae |
|
|
pipeline_tag: graph-ml |
|
|
library_name: moml |
|
|
--- |
|
|
|
|
|
# djmgnn-base |
|
|
|
|
|
## Model Description |
|
|
|
|
|
This is a base **DJMGNN** (Dense Jump Multi-Graph Neural Network) model for molecular property prediction. The model is designed to predict various molecular properties from graph representations of molecules. |
|
|
|
|
|
### Architecture |
|
|
|
|
|
- **Model Type**: Dense Jump Multi-Graph Neural Network (DJMGNN) |
|
|
- **Framework**: PyTorch |
|
|
- **Library**: MoML (Molecular Machine Learning) |
|
|
- **Task**: Molecular Property Prediction |
|
|
|
|
|
### Model Architecture Details |
|
|
|
|
|
- **Hidden Dimensions**: 128 |
|
|
- **Number of Blocks**: 3 |
|
|
- **Layers per Block**: 6 |
|
|
- **Input Node Dimensions**: 11 |
|
|
- **Input Edge Dimensions**: 0 |
|
|
- **Node Output Dimensions**: 3 |
|
|
- **Graph Output Dimensions**: 19 |
|
|
- **Energy Output Dimensions**: 1 |
|
|
- **Jumping Knowledge Mode**: cat |
|
|
- **Dropout Rate**: 0.2 |
|
|
- **Uses Supernode**: True |
|
|
- **Uses RBF Features**: True |
|
|
- **RBF K**: 32 |
|
|
|
|
|
## Training Details |
|
|
|
|
|
### Datasets |
|
|
|
|
|
The model was trained on the following datasets: |
|
|
- **QM9**: Quantum mechanical properties of small molecules |
|
|
- **SPICE**: Molecular dynamics data with forces and energies |
|
|
- **PFAS**: Per- and polyfluoroalkyl substances dataset |
|
|
|
|
|
### Training Configuration |
|
|
|
|
|
```yaml |
|
|
batch_size: 32 |
|
|
early_stopping: true |
|
|
epochs: 100 |
|
|
learning_rate: 0.001 |
|
|
optimizer: Adam |
|
|
patience: 10 |
|
|
validation_split: 0.2 |
|
|
|
|
|
``` |
|
|
|
|
|
## Usage |
|
|
|
|
|
### Loading the Model |
|
|
|
|
|
```python |
|
|
import torch |
|
|
from moml.models.mgnn.djmgnn import DJMGNN |
|
|
|
|
|
# Load the model |
|
|
model = DJMGNN( |
|
|
in_node_dim=11, |
|
|
in_edge_dim=0, |
|
|
hidden_dim=128, |
|
|
n_blocks=3, |
|
|
layers_per_block=6, |
|
|
node_output_dims=3, |
|
|
graph_output_dims=19, |
|
|
energy_output_dims=1, |
|
|
jk_mode="cat", |
|
|
dropout=0.2, |
|
|
use_supernode=true, |
|
|
use_rbf=true, |
|
|
rbf_K=32 |
|
|
) |
|
|
|
|
|
# Load the checkpoint |
|
|
checkpoint = torch.load("path/to/pytorch_model.pt", map_location="cpu") |
|
|
model.load_state_dict(checkpoint["model_state_dict"]) |
|
|
model.eval() |
|
|
``` |
|
|
|
|
|
### Making Predictions |
|
|
|
|
|
```python |
|
|
# Assuming you have a molecular graph 'data' (torch_geometric.data.Data object) |
|
|
with torch.no_grad(): |
|
|
output = model( |
|
|
x=data.x, |
|
|
edge_index=data.edge_index, |
|
|
edge_attr=data.edge_attr, |
|
|
batch=data.batch |
|
|
) |
|
|
|
|
|
# Extract predictions |
|
|
node_predictions = output["node_pred"] # Node-level predictions |
|
|
graph_predictions = output["graph_pred"] # Graph-level predictions |
|
|
energy_predictions = output["energy_pred"] # Energy predictions |
|
|
``` |
|
|
|
|
|
## Model Performance |
|
|
|
|
|
This is the base DJMGNN model trained on QM9, SPICE, and PFAS datasets. |
|
|
|
|
|
## Citation |
|
|
|
|
|
If you use this model in your research, please cite: |
|
|
|
|
|
```bibtex |
|
|
@misc{djmgnn_model, |
|
|
title={DJMGNN: Dense Jump Multi-Graph Neural Network for Molecular Property Prediction}, |
|
|
author={Your Name}, |
|
|
year={2024}, |
|
|
url={https://github.com/SAKETH11111/MoML-CA} |
|
|
} |
|
|
``` |
|
|
|
|
|
## License |
|
|
|
|
|
This model is released under the MIT License. |
|
|
|
|
|
## Contact |
|
|
|
|
|
For questions or issues, please contact sakethbaddam10@gmail.com or open an issue in the [GitHub repository](https://github.com/SAKETH11111/MoML-CA). |
|
|
|