Highlights
New Features & Enhancements
Reduce Dependency and Update Version
- Removed dependency on `drfp` and `rxnmapper`.
- Updated versions of `numpy` and `torch` to 2.2.0.
Enhance `Reactor`
- `CoreEngine` and `ReactorEngine` have consistent function `_inference`.
- `CoreEngine` is refractored to handle reagents.
Add Visualization
- Added visualization for Double Pushout rules.
Graph Isomorphism and Subgraph Isomorphism
- Separated graph and rule morphism.
- Implemented subgraph isomorphism in `networkx` and `gml`.
- Added WL hash function to filter graphs before doing isomorphism check; does not work for subgraph isomorphism.
Chemical Conversion
- Added function to add implicit and explicit hydrogen.
- Enhanced conversion capabilities, now can handle both implicit and explicit hydrogen effectively.
- Added new functions for conversion between ITS and GML.
Atom-Atom Map
- Added `FixAAM` to handle AAM generated by MOD.
- `ReactorEngine` now works well to generate complete AAM from partial AAM, but only in good AAM cases.
- Fixed `Normalize` class issue of removing hydrogen without adding the implicit hydrogen to the graph. Now it is compatible with RDKit.
Rule
- Fixed issue of memory leakage when doing rule composition by adding argument `add=False` to `ruleGMLString`.
Known Limitations
BatchCluster
- The processing speed of `BatchCluster` is slower compared to `GraphCluster`. There may be an internal issue affecting performance.
Reactor
- `ReactorEngine` currently only works with balanced reactions.
- `ReactorEngine` performs slowly in a few cases.
- `CoreEngine` exhibited memory leak when scaled up.
Subgraph Isomorphism
- For `networkx` version, it performs very fast with filter, ~0.7s for searching 1 subgraph along with 33,000 graphs, however, the result is not correct ~330 subgraphs are incorrect.
- For `GML` version, it performs perfectly, but slow ~8s for searching 1 subgraph along with 33,000 graphs.