https://github.com/akensert/molgraphx
https://github.com/akensert/molgraphx
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/akensert/molgraphx
- Owner: akensert
- License: mit
- Created: 2025-03-24T18:41:23.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-24T18:52:28.000Z (about 1 year ago)
- Last Synced: 2025-03-24T19:40:56.512Z (about 1 year ago)
- Language: Python
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

A Minimalistic **Graph Neural Network** (GNN) package for **Molecular Machine Learning**.
> [!NOTE]
> Unfinished, in progress.
## Highlights
- Compatible with **Keras 3**
- Simplified API
- Fast featurization
- Modular graph **layers**
- Serializable graph **featurizers** and **models**
- Flexible **GraphTensor**
## Examples
```python
import keras
from molgraphx import features
from molgraphx import featurizers
from molgraphx import layers
from molgraphx import models
featurizer = featurizers.MolFeaturizer()
graph = featurizer([('C(C(=O)O)N', 1.5), ('C1C[C@H](NC1)C(=O)O', 2.5)])
model = models.GraphModel.from_layers([
layers.Input(graph.spec),
layers.GraphProjection(units=128),
layers.GraphTransformer(units=128, heads=8),
layers.GraphTransformer(units=128, heads=8),
layers.GraphTransformer(units=128, heads=8),
layers.GraphTransformer(units=128, heads=8),
layers.Readout('mean'),
keras.layers.Dense(units=1024, activation='relu'),
keras.layers.Dense(units=1),
])
preds = model.predict(graph)
model.save('/tmp/model.keras')
loaded_model = keras.models.load_model('/tmp/model.keras')
loaded_model.summary()
```