Releases: ecrl/graphchem
Releases · ecrl/graphchem
Update dependencies, add MANIFEST.in
Update install method, PyPI GitHub actions workflow, encoder saving/loading
graphchem.preprocessing.MoleculeEncoder
how has thesave
andload
methodsgraphchem.preprocessing.load_encoder
allows users to load pre-saved MoleculeEncoder objects- Build/installation now relies on
pyproject.toml
instead of the deprecatedsetup.py
- Added a GitHub action workflow to publish GraphChem to PyPI whenever a new version is published
2.1.1
2.1.0
- New method for atom/bond tokenizing (integer tokens, passed through torch.nn.Embedding layer at start of model)
- Removed GRU and scatter add functions, leads to faster and more accurate results
- Changed MFConv to GeneralConv (GeneralConv considers both atom and bond features during its message passing step)
- General flow for each message passing step is:
- embedded_bonds -> EdgeConv -> updated embedded_bonds
- embedded_atoms + embedded_bonds -> GeneralConv -> updated embedded_atoms
- Separate edge/node convolutions, where node convolutions also account for updated edge states, is used effectively by Jørgensen et al. (paper)
- General flow for each message passing step is:
- Updated/added examples
2.0.0
This update overhauls GraphChem. The goal was to make GraphChem more "Torchy" in nature - for example, removing the CompoundOperator and giving control of training back to the user.
While this reduces the base functionality of GraphChem, ultimately its new construction is more modular and will play nicer with PyTorch.
Updates to GCN, connectivity calculations, examples
- GCN now uses a GRU layer for edge network, in addition to existing GRU for node network
- Connectivity algorithm fixes, considers reverse case and updates connectivity indices accordingly
- Included example scripts/notebooks for CN, RON, and MON
Updates to preprocessing, GNN structure
- Given the bug reported in #6, a new method of determine connectivity, using RDKit, is used instead of the previously implemented custom SMILES parser
- The custom parser was neat, but to prevent future bugs/issues, RDKit will handle SMILES -> matrix generation
- GNN now considers nodes and edges
- GNN now utilizes a GRU layer during message passing
- While this tends to increase accuracy, it also greatly increases runtime
- Docstrings/type hinting for all functions, in preparation of full API documentation
- Updated examples
Torch Geometric + RDKit Implementation
Refer to #4 for specific changes.
Rework of Package
Rework of the GraphChem package, including:
- Support for more atom symbols in SMILES strings
- Addition of "transition" method for applying a transition function to the graph
- Changes to import names
Packaged Up
- Python package implementation
- Moved some stuff around