synkit 0.0.2__tar.gz → 0.0.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- synkit-0.0.5/.github/workflows/build-doc.yml +34 -0
- {synkit-0.0.2 → synkit-0.0.5}/.github/workflows/test-and-lint.yml +1 -1
- synkit-0.0.5/.gitignore +22 -0
- synkit-0.0.5/CHANGELOG.md +89 -0
- synkit-0.0.5/Data/Benchmark/conversion_time.json.gz +240767 -0
- synkit-0.0.5/Data/Figure/synkit.png +0 -0
- synkit-0.0.5/Data/Testcase/para_rule.json.gz +1 -0
- synkit-0.0.5/Data/Testcase/para_rule_retro.json.gz +1 -0
- synkit-0.0.5/Data/smart.json.gz +1 -0
- synkit-0.0.5/Makefile +20 -0
- {synkit-0.0.2 → synkit-0.0.5}/PKG-INFO +4 -7
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Fingerprint/test_fp_calculator.py +9 -24
- synkit-0.0.5/Test/Chem/Reaction/test_fix_aam.py +66 -0
- synkit-0.0.5/Test/Graph/Cluster/test_graph_morphism.py +71 -0
- synkit-0.0.2/Test/Graph/Cluster/test_morphism.py → synkit-0.0.5/Test/Graph/Cluster/test_rule_morphism.py +4 -18
- synkit-0.0.5/Test/Graph/Context/test_hier_context.py +173 -0
- synkit-0.0.5/Test/Graph/Context/test_radius_expand.py +108 -0
- synkit-0.0.5/Test/Graph/Hydrogen/test_graph_hydrogen.py +59 -0
- synkit-0.0.5/Test/Graph/Hydrogen/test_hcomplete.py +77 -0
- {synkit-0.0.2/Test → synkit-0.0.5/Test/Graph}/ITS/test_aam_validator.py +1 -1
- {synkit-0.0.2/Test → synkit-0.0.5/Test/Graph}/ITS/test_its_construction.py +1 -1
- {synkit-0.0.2/Test → synkit-0.0.5/Test/Graph}/ITS/test_its_expand.py +2 -2
- {synkit-0.0.2/Test → synkit-0.0.5/Test/Graph}/ITS/test_normalize_aam.py +15 -15
- synkit-0.0.2/Test/IO/test_chemical_conversion.py → synkit-0.0.5/Test/IO/test_chemical_converter.py +29 -5
- synkit-0.0.5/Test/IO/test_dg_to_gml.py +51 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/IO/test_gml_to_nx.py +5 -2
- {synkit-0.0.2 → synkit-0.0.5}/Test/Reactor/test_core_engine.py +2 -2
- synkit-0.0.5/Test/Reactor/test_crn.py +58 -0
- synkit-0.0.5/Test/Reactor/test_path_finder.py +91 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Reactor/test_reactor_engine.py +1 -1
- {synkit-0.0.2 → synkit-0.0.5}/Test/Rule/test_molecule_rule.py +1 -1
- {synkit-0.0.2 → synkit-0.0.5}/Test/Rule/test_reactor_rule.py +1 -1
- synkit-0.0.5/Test/Rule/test_retro_reactor.py +43 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Rule/test_rule_rbl.py +2 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Rule/test_rule_utils.py +2 -2
- synkit-0.0.5/Test/Vis/test_dpo_vis.py +75 -0
- synkit-0.0.5/doc/conf.py +30 -0
- synkit-0.0.5/doc/getting_started.rst +66 -0
- synkit-0.0.5/doc/index.rst +23 -0
- synkit-0.0.5/doc/references.rst +113 -0
- {synkit-0.0.2 → synkit-0.0.5}/lint.sh +2 -1
- synkit-0.0.5/make.bat +35 -0
- {synkit-0.0.2 → synkit-0.0.5}/pyproject.toml +3 -2
- synkit-0.0.5/requirements.txt +8 -0
- synkit-0.0.5/synkit/Chem/Fingerprint/fp_calculator.py +158 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Fingerprint/smiles_featurizer.py +4 -4
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Molecule/standardize.py +28 -1
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Reaction/cleanning.py +13 -5
- synkit-0.0.5/synkit/Chem/Reaction/fix_aam.py +91 -0
- synkit-0.0.5/synkit/Chem/utils.py +187 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Cluster/batch_cluster.py +5 -4
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Cluster/graph_cluster.py +3 -2
- synkit-0.0.5/synkit/Graph/Cluster/graph_morphism.py +282 -0
- synkit-0.0.5/synkit/Graph/Cluster/rule_morphism.py +102 -0
- synkit-0.0.5/synkit/Graph/Context/hier_context.py +229 -0
- synkit-0.0.5/synkit/Graph/Context/radius_expand.py +246 -0
- synkit-0.0.5/synkit/Graph/Feature/wl_hash.py +120 -0
- synkit-0.0.5/synkit/Graph/Hyrogen/_misc.py +328 -0
- synkit-0.0.5/synkit/Graph/Hyrogen/hcomplete.py +357 -0
- synkit-0.0.5/synkit/Graph/Hyrogen/hextend.py +170 -0
- synkit-0.0.5/synkit/Graph/ITS/aam_utils.py +97 -0
- {synkit-0.0.2/synkit → synkit-0.0.5/synkit/Graph}/ITS/aam_validator.py +3 -2
- synkit-0.0.2/synkit/ITS/_misc.py → synkit-0.0.5/synkit/Graph/ITS/its_decompose.py +0 -37
- {synkit-0.0.2/synkit → synkit-0.0.5/synkit/Graph}/ITS/its_expand.py +4 -4
- {synkit-0.0.2/synkit → synkit-0.0.5/synkit/Graph}/ITS/normalize_aam.py +24 -59
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/chem_converter.py +166 -45
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/data_io.py +24 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/debug.py +2 -1
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/gml_to_nx.py +2 -1
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/nx_to_gml.py +1 -1
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Reactor/core_engine.py +105 -50
- synkit-0.0.5/synkit/Reactor/crn.py +118 -0
- synkit-0.0.5/synkit/Reactor/dcrn.py +139 -0
- synkit-0.0.5/synkit/Reactor/path_finder.py +214 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Reactor/reactor_engine.py +4 -3
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Reactor/reactor_utils.py +0 -1
- synkit-0.0.5/synkit/Reactor/single_predictor.py +96 -0
- synkit-0.0.5/synkit/Rule/__init__.py +0 -0
- synkit-0.0.5/synkit/Rule/longest_path.py +95 -0
- synkit-0.0.5/synkit/Rule/prune_templates.py +77 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/reactor_rule.py +2 -2
- synkit-0.0.5/synkit/Rule/retro_reactor.py +207 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/rule_compose.py +4 -2
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/rule_rbl.py +4 -2
- synkit-0.0.5/synkit/Utils/__init__.py +0 -0
- synkit-0.0.5/synkit/Vis/__init__.py +0 -0
- synkit-0.0.5/synkit/Vis/dpo_vis.py +103 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Vis/rsmi_to_fig.py +1 -1
- synkit-0.0.5/synkit/__init__.py +0 -0
- synkit-0.0.2/.gitignore +0 -11
- synkit-0.0.2/Data/Figure/synkit.png +0 -0
- synkit-0.0.2/Test/Chem/Reaction/test_reagent.py +0 -98
- synkit-0.0.2/requirements.txt +0 -13
- synkit-0.0.2/synkit/Chem/Fingerprint/fp_calculator.py +0 -122
- synkit-0.0.2/synkit/Chem/Reaction/reagent.py +0 -102
- synkit-0.0.2/synkit/Graph/Cluster/morphism.py +0 -83
- {synkit-0.0.2 → synkit-0.0.5}/.github/workflows/publish-package.yml +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Data/Testcase/Compose/ComposeRule/data.txt +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Data/Testcase/Compose/SingleRule/R0/0.gml +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Data/Testcase/Compose/SingleRule/R0/1.gml +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Data/Testcase/Compose/SingleRule/R0/2.gml +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Data/Testcase/mech.json.gz +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/LICENSE +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/README.md +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Fingerprint/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Fingerprint/test_smiles_featurizer.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Fingerprint/test_transformation_fp.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Molecule/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Molecule/test_standardize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/test_balance_checker.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/test_cleanning.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/test_deionize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/test_neutralize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/test_rsmi_utils.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/test_standardize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/Reaction/test_tautomerize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Chem/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Cluster/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Cluster/test_batch_cluster.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Cluster/test_graph_cluster.py +0 -0
- {synkit-0.0.2/Test/Graph/Feature → synkit-0.0.5/Test/Graph/Context}/__init__.py +0 -0
- {synkit-0.0.2/Test/Graph → synkit-0.0.5/Test/Graph/Feature}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Feature/test_graph_descriptors.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Feature/test_graph_fps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Feature/test_graph_signature.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Feature/test_hash_fps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Feature/test_morgan_fps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Graph/Feature/test_path_fps.py +0 -0
- {synkit-0.0.2/Test/IO → synkit-0.0.5/Test/Graph/Hydrogen}/__init__.py +0 -0
- {synkit-0.0.2/Test → synkit-0.0.5/Test/Graph}/ITS/__init__.py +0 -0
- {synkit-0.0.2/Test/Reactor → synkit-0.0.5/Test/Graph}/__init__.py +0 -0
- {synkit-0.0.2/Test/Rule → synkit-0.0.5/Test/IO}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/IO/test_graph_to_mol.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/IO/test_mol_to_graph.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/IO/test_nx_to_gml.py +0 -0
- {synkit-0.0.2/Test/Vis → synkit-0.0.5/Test/Reactor}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Reactor/test_multi_steps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Reactor/test_reactor_utils.py +0 -0
- {synkit-0.0.2/Test → synkit-0.0.5/Test/Rule}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Rule/test_rule_compose.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Rule/test_valance_constrain.py +0 -0
- {synkit-0.0.2/synkit/Chem/Fingerprint → synkit-0.0.5/Test/Vis}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/Test/Vis/test_embedding.py +0 -0
- {synkit-0.0.2/synkit/Chem/Molecule → synkit-0.0.5/Test}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/pytest.sh +0 -0
- {synkit-0.0.2/synkit/Chem/Reaction → synkit-0.0.5/synkit/Chem/Fingerprint}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Fingerprint/transformation_fp.py +0 -0
- {synkit-0.0.2/synkit/Graph/Cluster → synkit-0.0.5/synkit/Chem/Molecule}/__init__.py +0 -0
- {synkit-0.0.2/synkit/Graph/Feature → synkit-0.0.5/synkit/Chem/Reaction}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Reaction/balance_check.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Reaction/deionize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Reaction/neutralize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Reaction/rsmi_utils.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Reaction/standardize.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Chem/Reaction/tautomerize.py +0 -0
- {synkit-0.0.2/synkit/IO → synkit-0.0.5/synkit/Graph/Cluster}/__init__.py +0 -0
- {synkit-0.0.2/synkit/Metrics → synkit-0.0.5/synkit/Graph/Context}/__init__.py +0 -0
- {synkit-0.0.2/synkit/Reactor → synkit-0.0.5/synkit/Graph/Feature}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Feature/graph_descriptors.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Feature/graph_fps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Feature/graph_signature.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Feature/hash_fps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Feature/morgan_fps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/Feature/path_fps.py +0 -0
- {synkit-0.0.2/synkit/Rule → synkit-0.0.5/synkit/Graph/Hyrogen}/__init__.py +0 -0
- {synkit-0.0.2/synkit → synkit-0.0.5/synkit/Graph}/ITS/its_builder.py +0 -0
- {synkit-0.0.2/synkit → synkit-0.0.5/synkit/Graph}/ITS/its_construction.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Graph/__init.py +0 -0
- {synkit-0.0.2/synkit/Vis → synkit-0.0.5/synkit/IO}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/data_process.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/dg_to_gml.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/graph_to_mol.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/mol_to_graph.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/IO/smiles_to_id.py +0 -0
- {synkit-0.0.2/synkit → synkit-0.0.5/synkit/Metrics}/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Metrics/_base.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Metrics/_plot.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Metrics/_ranking.py +0 -0
- /synkit-0.0.2/CHANGELOG.md → /synkit-0.0.5/synkit/Reactor/__init__.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Reactor/multi_steps.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/MaxValence.json.gz +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/molecule_rule.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/rule_utils.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/strip_rule.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Rule/valence_constrain.py +0 -0
- /synkit-0.0.2/synkit/_misc.py → /synkit-0.0.5/synkit/Utils/utils.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Vis/chemical_graph_visualizer.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Vis/chemical_reaction_visualizer.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Vis/chemical_space.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Vis/embedding.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Vis/graph_visualizer.py +0 -0
- {synkit-0.0.2 → synkit-0.0.5}/synkit/Vis/pdf_writer.py +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: Build documentation for GitHub Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
workflow_dispatch: # Enable manual action trigger
|
|
9
|
+
|
|
10
|
+
env:
|
|
11
|
+
PYTHONPATH: .
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
build_documentation_for_github_pages:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v3
|
|
18
|
+
with:
|
|
19
|
+
fetch-depth: 0
|
|
20
|
+
- uses: actions/setup-python@v4
|
|
21
|
+
with:
|
|
22
|
+
python-version: '3.11'
|
|
23
|
+
cache: 'pip' # caching pip dependencies
|
|
24
|
+
- run: pip install -r requirements.txt
|
|
25
|
+
- run: pip install sphinx sphinx-rtd-theme
|
|
26
|
+
- run: python3 -m sphinx ./doc docs
|
|
27
|
+
- name: publish doc
|
|
28
|
+
shell: bash
|
|
29
|
+
run: |
|
|
30
|
+
git config user.name "GitHub Action"
|
|
31
|
+
git config user.email "no@mail.tmp"
|
|
32
|
+
git add -f docs/
|
|
33
|
+
git commit -m "Doc build"
|
|
34
|
+
git push --force "https://github.com/TieuLongPhan/SynKit.git" `git subtree split --prefix docs/ main`:gh-pages
|
|
@@ -34,7 +34,7 @@ jobs:
|
|
|
34
34
|
run: |
|
|
35
35
|
conda create --name synkit-env python=3.11 -y
|
|
36
36
|
conda activate synkit-env
|
|
37
|
-
conda install -c jakobandersen -c conda-forge mod
|
|
37
|
+
conda install -c jakobandersen -c conda-forge mod>=0.17
|
|
38
38
|
pip install flake8 pytest
|
|
39
39
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
40
40
|
shell: bash -l {0}
|
synkit-0.0.5/.gitignore
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
*.pyc
|
|
2
|
+
*cachedir
|
|
3
|
+
*.csv
|
|
4
|
+
*/catboost_info/*
|
|
5
|
+
*.ipynb
|
|
6
|
+
*.json
|
|
7
|
+
test_mod.py
|
|
8
|
+
test_format.py
|
|
9
|
+
*dev_zone
|
|
10
|
+
*.pkl.gz
|
|
11
|
+
dev_scripts/*
|
|
12
|
+
*.pdf
|
|
13
|
+
out
|
|
14
|
+
summary
|
|
15
|
+
Data/Benchmark/its.json.gz
|
|
16
|
+
Data/Benchmark/rc.json.gz
|
|
17
|
+
*.log
|
|
18
|
+
.coverage
|
|
19
|
+
dev/*
|
|
20
|
+
*.rdf
|
|
21
|
+
Data/Testcase/hydro/aam.json.gz
|
|
22
|
+
synkit/Chem/FG/*
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
|
|
2
|
+
# Changelog v0.0.4
|
|
3
|
+
|
|
4
|
+
## Highlights
|
|
5
|
+
|
|
6
|
+
### New Features & Enhancements
|
|
7
|
+
|
|
8
|
+
#### Refactor Source Code Structure
|
|
9
|
+
- **Merged** the ITS and Graph subpackages for improved modularity.
|
|
10
|
+
- **Separated** `its_decompose` and `get_rc` into a dedicated Python file: `its_decompose.py`.
|
|
11
|
+
- **Created** a new `Utils` subpackage for future utility functions and support tools.
|
|
12
|
+
|
|
13
|
+
#### Performance Improvements
|
|
14
|
+
- **Optimized** the `BatchCluster` process for faster clustering of reaction centers.
|
|
15
|
+
|
|
16
|
+
#### Bug Fixes
|
|
17
|
+
- **Fixed** issues with *Subgraph* searching: `networkx` now handles both *monomorphism* and *induced subgraph*, whereas `GML` was limited to *monomorphism* only.
|
|
18
|
+
|
|
19
|
+
#### New Features
|
|
20
|
+
- **Implemented** `CRN` (Chemical Reaction Networks) in the `Reactor` module.
|
|
21
|
+
- **Implemented** `PathFinder` to find pathways from a starting compound to the target compound in `CRN`.
|
|
22
|
+
- **Introduced** `RetroReactor` in the `Rule` module, enabling the use of A* algorithm to search from target to starting compound without requiring a full system like `CRN`.
|
|
23
|
+
|
|
24
|
+
## Known Limitations
|
|
25
|
+
|
|
26
|
+
### Rule Composition
|
|
27
|
+
- **Bug** in the valence constraint of rule composition.
|
|
28
|
+
- **Partial matching** in rule composition may result in invalid compounds.
|
|
29
|
+
|
|
30
|
+
### Retro
|
|
31
|
+
- **Directed CRN** can only find one solution, though it is 500 times faster than expanding CRN and using `PathFinder`.
|
|
32
|
+
- **Retro framework** using rule composition may result in invalid compounds.
|
|
33
|
+
|
|
34
|
+
### Reactor
|
|
35
|
+
- `ReactorEngine` currently only supports **balanced reactions**.
|
|
36
|
+
- **Performance issue**: `ReactorEngine` is slow in certain cases.
|
|
37
|
+
- **Memory leak** in `CoreEngine` when scaled up.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# Changelog v0.0.3
|
|
43
|
+
|
|
44
|
+
## Highlights
|
|
45
|
+
|
|
46
|
+
### New Features & Enhancements
|
|
47
|
+
|
|
48
|
+
#### Reduce Dependency and Update Version
|
|
49
|
+
- Removed dependency on `drfp` and `rxnmapper`.
|
|
50
|
+
- Updated versions of `numpy` and `torch` to 2.2.0.
|
|
51
|
+
|
|
52
|
+
#### Enhance `Reactor`
|
|
53
|
+
- `CoreEngine` and `ReactorEngine` have consistent function `_inference`.
|
|
54
|
+
- `CoreEngine` is refractored to handle reagents.
|
|
55
|
+
|
|
56
|
+
#### Add Visualization
|
|
57
|
+
- Added visualization for Double Pushout rules.
|
|
58
|
+
|
|
59
|
+
#### Graph Isomorphism and Subgraph Isomorphism
|
|
60
|
+
- Separated graph and rule morphism.
|
|
61
|
+
- Implemented subgraph isomorphism in `networkx` and `gml`.
|
|
62
|
+
- Added WL hash function to filter graphs before doing isomorphism check; does not work for subgraph isomorphism.
|
|
63
|
+
|
|
64
|
+
#### Chemical Conversion
|
|
65
|
+
- Added function to add implicit and explicit hydrogen.
|
|
66
|
+
- Enhanced conversion capabilities, now can handle both implicit and explicit hydrogen effectively.
|
|
67
|
+
- Added new functions for conversion between ITS and GML.
|
|
68
|
+
|
|
69
|
+
#### Atom-Atom Map
|
|
70
|
+
- Added `FixAAM` to handle AAM generated by MOD.
|
|
71
|
+
- `ReactorEngine` now works well to generate complete AAM from partial AAM, but only in good AAM cases.
|
|
72
|
+
- Fixed `Normalize` class issue of removing hydrogen without adding the implicit hydrogen to the graph. Now it is compatible with RDKit.
|
|
73
|
+
|
|
74
|
+
#### Rule
|
|
75
|
+
- Fixed issue of memory leakage when doing rule composition by adding argument `add=False` to `ruleGMLString`.
|
|
76
|
+
|
|
77
|
+
## Known Limitations
|
|
78
|
+
|
|
79
|
+
### BatchCluster
|
|
80
|
+
- The processing speed of `BatchCluster` is slower compared to `GraphCluster`. There may be an internal issue affecting performance.
|
|
81
|
+
|
|
82
|
+
### Reactor
|
|
83
|
+
- `ReactorEngine` currently only works with balanced reactions.
|
|
84
|
+
- `ReactorEngine` performs slowly in a few cases.
|
|
85
|
+
- `CoreEngine` exhibited memory leak when scaled up.
|
|
86
|
+
|
|
87
|
+
### Subgraph Isomorphism
|
|
88
|
+
- 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.
|
|
89
|
+
- For `GML` version, it performs perfectly, but slow ~8s for searching 1 subgraph along with 33,000 graphs.
|