synkit 1.6.1__tar.gz → 1.6.2__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.
Files changed (468) hide show
  1. {synkit-1.6.1 → synkit-1.6.2}/.gitignore +90 -82
  2. {synkit-1.6.1 → synkit-1.6.2}/PKG-INFO +3 -2
  3. {synkit-1.6.1 → synkit-1.6.2}/README.md +1 -1
  4. {synkit-1.6.1 → synkit-1.6.2}/pyproject.toml +16 -4
  5. synkit-1.6.2/synkit/CRN/Benchmark/__init__.py +105 -0
  6. synkit-1.6.2/synkit/CRN/Benchmark/crosschecks.py +377 -0
  7. synkit-1.6.2/synkit/CRN/Benchmark/data/kegg_modules.json +175 -0
  8. synkit-1.6.2/synkit/CRN/Benchmark/kegg.py +606 -0
  9. synkit-1.6.2/synkit/CRN/Benchmark/networks.py +459 -0
  10. synkit-1.6.2/synkit/CRN/Benchmark/scaling.py +541 -0
  11. synkit-1.6.2/synkit/CRN/Benchmark/validate.py +414 -0
  12. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/abstract.py +52 -65
  13. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/builder.py +80 -10
  14. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/worker.py +1 -1
  15. synkit-1.6.2/synkit/CRN/IO/__init__.py +36 -0
  16. synkit-1.6.2/synkit/CRN/IO/sbml.py +881 -0
  17. synkit-1.6.2/synkit/CRN/Pathway/__init__.py +66 -0
  18. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Pathway/_adapter.py +24 -33
  19. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Pathway/pathfinder.py +21 -24
  20. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Pathway/reachability.py +52 -69
  21. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Pathway/realizability.py +92 -130
  22. synkit-1.6.2/synkit/CRN/Petrinet/__init__.py +91 -0
  23. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Petrinet/analyzer.py +53 -73
  24. synkit-1.6.2/synkit/CRN/Petrinet/minimal_semiflows.py +388 -0
  25. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Petrinet/net.py +95 -133
  26. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Petrinet/persistence.py +4 -0
  27. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Petrinet/semiflows.py +169 -77
  28. synkit-1.6.2/synkit/CRN/Petrinet/siphon_search.py +402 -0
  29. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Petrinet/structure.py +58 -54
  30. synkit-1.6.2/synkit/CRN/Props/__init__.py +126 -0
  31. synkit-1.6.2/synkit/CRN/Props/deficiency.py +933 -0
  32. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Props/dynamics.py +59 -74
  33. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Props/helper.py +35 -3
  34. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Props/stoich.py +201 -78
  35. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Props/thermo.py +24 -32
  36. synkit-1.6.2/synkit/CRN/Query/__init__.py +62 -0
  37. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Query/kegg_api.py +11 -14
  38. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Query/kegg_extract.py +63 -79
  39. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Query/kegg_impute.py +35 -44
  40. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Query/kegg_parse.py +53 -73
  41. synkit-1.6.2/synkit/CRN/Query/to_syncrn.py +294 -0
  42. synkit-1.6.2/synkit/CRN/Structure/_graph_io.py +704 -0
  43. synkit-1.6.2/synkit/CRN/Structure/_matrices.py +88 -0
  44. synkit-1.6.2/synkit/CRN/Structure/_parse.py +544 -0
  45. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Structure/reaction.py +14 -21
  46. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Structure/rule.py +4 -6
  47. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Structure/species.py +2 -3
  48. synkit-1.6.2/synkit/CRN/Structure/syncrn.py +929 -0
  49. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/_common.py +76 -91
  50. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/_ir.py +41 -60
  51. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/automorphism.py +33 -46
  52. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/canon.py +43 -58
  53. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/isomorphism.py +31 -42
  54. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/wl_canon.py +95 -124
  55. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Visualize/layout.py +52 -65
  56. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Visualize/validation.py +33 -11
  57. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Visualize/vis.py +71 -106
  58. synkit-1.6.2/synkit/CRN/__init__.py +197 -0
  59. synkit-1.6.2/synkit/CRN/kinds.py +137 -0
  60. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Cluster/butina.py +6 -5
  61. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Fingerprint/fp_calculator.py +4 -4
  62. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Fingerprint/smiles_featurizer.py +11 -11
  63. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Fingerprint/transformation_fp.py +4 -4
  64. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/atom_features.py +12 -18
  65. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/descriptors.py +32 -44
  66. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/graph_annotator.py +3 -4
  67. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/standardize.py +83 -123
  68. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/valence.py +14 -18
  69. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/aam_validator.py +5 -5
  70. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/chem/its.py +14 -24
  71. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/branching.py +21 -29
  72. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/certificate.py +18 -26
  73. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/enumerate.py +17 -20
  74. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/exhaustive.py +14 -22
  75. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/kernel.py +35 -44
  76. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/milp.py +17 -23
  77. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/graph/automorphism.py +8 -11
  78. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/graph/blockcut.py +12 -18
  79. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/graph/refine.py +25 -35
  80. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/io/idxmapstr.py +9 -14
  81. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/slap/lap.py +22 -36
  82. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/balance_check.py +6 -6
  83. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/canon_rsmi.py +6 -8
  84. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/cleaning.py +3 -11
  85. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/deionize.py +6 -6
  86. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/explicit_h_audit.py +5 -10
  87. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/fix_aam.py +3 -3
  88. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/neutralize.py +7 -7
  89. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/radical_wildcard.py +8 -9
  90. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/standardize.py +8 -10
  91. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/tautomerize.py +5 -5
  92. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/utils.py +18 -18
  93. {synkit-1.6.1 → synkit-1.6.2}/synkit/Data/gen_partial_aam.py +3 -3
  94. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Canon/canon_algs.py +39 -65
  95. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Canon/canon_graph.py +34 -42
  96. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Context/hier_context.py +63 -50
  97. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Context/radius_expand.py +72 -62
  98. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/Descriptors/topology.py +14 -11
  99. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/Fingerprint/wl_rxn_fps.py +13 -22
  100. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/graph_descriptors.py +77 -69
  101. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/graph_fps.py +16 -15
  102. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/graph_signature.py +28 -26
  103. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/hash_fps.py +36 -31
  104. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/morgan_fps.py +18 -15
  105. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/path_fps.py +17 -15
  106. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/wl_hash.py +8 -10
  107. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Fusion/candidate.py +85 -4
  108. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Fusion/constructor.py +21 -0
  109. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Fusion/identity.py +1 -0
  110. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Fusion/interface.py +113 -25
  111. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Fusion/search.py +1 -1
  112. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Hyrogen/_misc.py +64 -81
  113. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Hyrogen/hcomplete.py +98 -65
  114. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Hyrogen/hextend.py +67 -54
  115. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/its_builder.py +9 -6
  116. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/its_construction.py +26 -37
  117. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/its_decompose.py +26 -29
  118. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/its_destruction.py +18 -22
  119. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/its_expand.py +16 -15
  120. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/its_relabel.py +7 -6
  121. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/its_reverter.py +21 -30
  122. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/normalize_aam.py +27 -24
  123. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/partial_its.py +6 -6
  124. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/rc_extractor.py +24 -30
  125. synkit-1.6.2/synkit/Graph/MTG/__init__.py +58 -0
  126. synkit-1.6.2/synkit/Graph/MTG/history.py +661 -0
  127. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/MTG/mcs_matcher.py +16 -18
  128. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/MTG/mtg_explore.py +4 -4
  129. synkit-1.6.2/synkit/Graph/MTG/process.py +562 -0
  130. synkit-1.6.2/synkit/Graph/MTG/series_parallel.py +107 -0
  131. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/MTG/utils.py +24 -25
  132. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/approx_mcs.py +106 -134
  133. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/auto_est.py +96 -139
  134. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/automorphism.py +58 -51
  135. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/batch_cluster.py +54 -45
  136. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/dedup_matches.py +32 -32
  137. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/graph_cluster.py +45 -41
  138. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/graph_matcher.py +92 -76
  139. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/graph_morphism.py +130 -85
  140. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/mcs_matcher.py +104 -148
  141. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/multi_turbo_iso.py +23 -19
  142. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/orbit.py +67 -103
  143. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/partial_matcher.py +146 -207
  144. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/sing.py +91 -63
  145. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/subgraph_matcher.py +241 -128
  146. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/turbo_iso.py +81 -18
  147. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/wl_sel.py +93 -68
  148. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Mech/conversion.py +55 -81
  149. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Mech/conversion_debug.py +3 -3
  150. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Mech/lwg_editor.py +10 -7
  151. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Mech/lwg_ops.py +7 -7
  152. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Morphism/__init__.py +22 -0
  153. synkit-1.6.2/synkit/Graph/Morphism/llg.py +918 -0
  154. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Wildcard/fuse_graph.py +19 -19
  155. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Wildcard/graph_wc.py +25 -36
  156. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Wildcard/its_merge.py +29 -41
  157. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Wildcard/radwc.py +10 -13
  158. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Wildcard/wc_matcher.py +44 -60
  159. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Wildcard/wildcard.py +15 -20
  160. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/syn_graph.py +32 -30
  161. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/utils.py +33 -48
  162. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/chem_converter.py +7 -9
  163. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/combinatorial/gml_to_graph.py +39 -70
  164. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/combinatorial/graph_to_gml.py +25 -36
  165. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/combinatorial/graph_to_smarts.py +19 -22
  166. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/combinatorial/smarts_expander.py +10 -15
  167. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/combinatorial/smarts_generalizer.py +3 -4
  168. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/combinatorial/smarts_to_graph.py +22 -26
  169. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/data_io.py +10 -10
  170. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/data_process.py +12 -10
  171. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/debug.py +2 -2
  172. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/gml_to_nx.py +4 -5
  173. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/graph_to_mol.py +2 -2
  174. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/mol_to_graph.py +16 -16
  175. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/mol_to_graph_chemistry.py +16 -16
  176. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/nx_to_gml.py +5 -5
  177. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/smiles_to_id.py +23 -18
  178. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/benchmark.py +1 -1
  179. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/model.py +63 -0
  180. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/replay.py +363 -15
  181. synkit-1.6.2/synkit/Rule/Apply/__init__.py +35 -0
  182. synkit-1.6.2/synkit/Rule/Apply/dpo.py +965 -0
  183. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Apply/rule_matcher.py +8 -8
  184. synkit-1.6.2/synkit/Rule/Compose/__init__.py +106 -0
  185. synkit-1.6.2/synkit/Rule/Compose/composition.py +848 -0
  186. synkit-1.6.2/synkit/Rule/Compose/laws.py +397 -0
  187. synkit-1.6.2/synkit/Rule/Compose/search.py +748 -0
  188. synkit-1.6.2/synkit/Rule/Compose/synrule.py +170 -0
  189. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Modify/implict_rule.py +13 -22
  190. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Modify/longest_path.py +8 -8
  191. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Modify/molecule_rule.py +23 -20
  192. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Modify/prune_templates.py +18 -15
  193. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Modify/rule_utils.py +10 -9
  194. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/generic_stereo.py +2 -2
  195. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/syn_rule.py +92 -53
  196. {synkit-1.6.1 → synkit-1.6.2}/synkit/Synthesis/MSR/path_finder.py +38 -15
  197. {synkit-1.6.1 → synkit-1.6.2}/synkit/Synthesis/Metrics/_base.py +13 -10
  198. {synkit-1.6.1 → synkit-1.6.2}/synkit/Synthesis/Metrics/_plot.py +29 -21
  199. {synkit-1.6.1 → synkit-1.6.2}/synkit/Synthesis/Metrics/_ranking.py +57 -51
  200. synkit-1.6.2/synkit/Synthesis/RBL/__init__.py +80 -0
  201. synkit-1.6.2/synkit/Synthesis/RBL/engine.py +1249 -0
  202. synkit-1.6.2/synkit/Synthesis/RBL/matching.py +652 -0
  203. synkit-1.6.2/synkit/Synthesis/RBL/overlap.py +336 -0
  204. synkit-1.6.2/synkit/Synthesis/RBL/pipeline.py +371 -0
  205. synkit-1.6.2/synkit/Synthesis/RBL/policy.py +139 -0
  206. synkit-1.6.2/synkit/Synthesis/RBL/proof.py +370 -0
  207. synkit-1.6.1/synkit/Synthesis/Reactor/rbl_reaction.py → synkit-1.6.2/synkit/Synthesis/RBL/reaction.py +205 -44
  208. synkit-1.6.2/synkit/Synthesis/RBL/state.py +169 -0
  209. synkit-1.6.2/synkit/Synthesis/RBL/validation.py +1060 -0
  210. synkit-1.6.2/synkit/Synthesis/Reactor/__init__.py +60 -0
  211. synkit-1.6.2/synkit/Synthesis/Reactor/core/__init__.py +1 -0
  212. synkit-1.6.1/synkit/Synthesis/Reactor/syn_reactor.py → synkit-1.6.2/synkit/Synthesis/Reactor/core/engine.py +160 -192
  213. synkit-1.6.1/synkit/Synthesis/Reactor/product_state.py → synkit-1.6.2/synkit/Synthesis/Reactor/core/product.py +180 -30
  214. synkit-1.6.1/synkit/Synthesis/Reactor/graph_rewrite.py → synkit-1.6.2/synkit/Synthesis/Reactor/core/rewrite.py +72 -16
  215. {synkit-1.6.1/synkit/Synthesis/Reactor → synkit-1.6.2/synkit/Synthesis/Reactor/core}/strategy.py +7 -14
  216. synkit-1.6.2/synkit/Synthesis/Reactor/matching/__init__.py +1 -0
  217. synkit-1.6.1/synkit/Synthesis/Reactor/reactor_matching.py → synkit-1.6.2/synkit/Synthesis/Reactor/matching/mixin.py +67 -122
  218. synkit-1.6.1/synkit/Synthesis/Reactor/matching_policy.py → synkit-1.6.2/synkit/Synthesis/Reactor/matching/policy.py +120 -10
  219. synkit-1.6.2/synkit/Synthesis/Reactor/matching/symmetry.py +309 -0
  220. synkit-1.6.2/synkit/Synthesis/Reactor/output/__init__.py +1 -0
  221. {synkit-1.6.1/synkit/Synthesis/Reactor → synkit-1.6.2/synkit/Synthesis/Reactor/output}/deduplication.py +270 -397
  222. {synkit-1.6.1/synkit/Synthesis/Reactor → synkit-1.6.2/synkit/Synthesis/Reactor/output}/serialization.py +111 -23
  223. synkit-1.6.2/synkit/Synthesis/Reactor/output/structural.py +893 -0
  224. synkit-1.6.2/synkit/Synthesis/Reactor/stereo/__init__.py +1 -0
  225. synkit-1.6.1/synkit/Synthesis/Reactor/reactor_stereo.py → synkit-1.6.2/synkit/Synthesis/Reactor/stereo/mixin.py +1 -1
  226. synkit-1.6.2/synkit/Synthesis/Reactor/variants/__init__.py +1 -0
  227. synkit-1.6.1/synkit/Synthesis/Reactor/imba_engine.py → synkit-1.6.2/synkit/Synthesis/Reactor/variants/imbalanced.py +10 -13
  228. synkit-1.6.1/synkit/Synthesis/Reactor/partial_engine.py → synkit-1.6.2/synkit/Synthesis/Reactor/variants/partial.py +2 -2
  229. synkit-1.6.2/synkit/Synthesis/Reactor/workflow/__init__.py +1 -0
  230. synkit-1.6.1/synkit/Synthesis/Reactor/batch_reactor.py → synkit-1.6.2/synkit/Synthesis/Reactor/workflow/batch.py +146 -33
  231. {synkit-1.6.1/synkit/Synthesis/Reactor → synkit-1.6.2/synkit/Synthesis/Reactor/workflow}/benchmark.py +7 -12
  232. {synkit-1.6.1/synkit/Synthesis/Reactor → synkit-1.6.2/synkit/Synthesis/Reactor/workflow}/rule_filter.py +17 -10
  233. {synkit-1.6.1 → synkit-1.6.2}/synkit/Synthesis/reactor_utils.py +51 -54
  234. {synkit-1.6.1 → synkit-1.6.2}/synkit/Utils/utils.py +49 -55
  235. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/__init__.py +4 -2
  236. synkit-1.6.2/synkit/Vis/crn/__init__.py +40 -0
  237. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/models.py +4 -4
  238. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/visualizer.py +32 -61
  239. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/graph_visualizer.py +13 -20
  240. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/its/__init__.py +2 -2
  241. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/its/drawer.py +3 -3
  242. synkit-1.6.2/synkit/Vis/its_drawer.py +35 -0
  243. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/molecule/__init__.py +2 -2
  244. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/molecule/drawer.py +4 -6
  245. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/molecule/reaction.py +1 -1
  246. synkit-1.6.2/synkit/Vis/molecule_drawer.py +33 -0
  247. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/mtg/__init__.py +2 -2
  248. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/mtg/drawer.py +2 -2
  249. synkit-1.6.2/synkit/Vis/mtg_drawer.py +34 -0
  250. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/pdf_writer.py +29 -24
  251. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/reaction/__init__.py +2 -2
  252. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/reaction/rxn.py +7 -7
  253. synkit-1.6.2/synkit/Vis/reaction_drawer.py +41 -0
  254. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/space/__init__.py +2 -2
  255. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/space/embedding.py +19 -17
  256. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/vis_synedu/rxn_vis.py +28 -33
  257. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/visual_drawer.py +1 -1
  258. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/visual_model.py +2 -2
  259. {synkit-1.6.1 → synkit-1.6.2}/synkit/version.py +1 -1
  260. synkit-1.6.1/synkit/CRN/Construct/DAG/syncrn.py +0 -919
  261. synkit-1.6.1/synkit/CRN/Pathway/__init__.py +0 -27
  262. synkit-1.6.1/synkit/CRN/Petrinet/__init__.py +0 -47
  263. synkit-1.6.1/synkit/CRN/Props/__init__.py +0 -85
  264. synkit-1.6.1/synkit/CRN/Structure/syncrn.py +0 -1886
  265. synkit-1.6.1/synkit/CRN/Visualize/crn_vis.py +0 -199
  266. synkit-1.6.1/synkit/CRN/__init__.py +0 -81
  267. synkit-1.6.1/synkit/CRN/dev_crn/Structure/__init__.py +0 -35
  268. synkit-1.6.1/synkit/CRN/dev_crn/Structure/backend.py +0 -87
  269. synkit-1.6.1/synkit/CRN/dev_crn/Structure/conversion.py +0 -935
  270. synkit-1.6.1/synkit/CRN/dev_crn/Structure/hyperedge.py +0 -71
  271. synkit-1.6.1/synkit/CRN/dev_crn/Structure/hypergraph.py +0 -602
  272. synkit-1.6.1/synkit/CRN/dev_crn/Structure/rxn.py +0 -482
  273. synkit-1.6.1/synkit/CRN/dev_crn/Symmetry/automorphism.py +0 -380
  274. synkit-1.6.1/synkit/CRN/dev_crn/Symmetry/canon.py +0 -438
  275. synkit-1.6.1/synkit/CRN/dev_crn/Symmetry/wl_canon.py +0 -387
  276. synkit-1.6.1/synkit/CRN/dev_crn/__init__.py +0 -83
  277. synkit-1.6.1/synkit/CRN/dev_crn/configs/loader.py +0 -203
  278. synkit-1.6.1/synkit/CRN/dev_crn/configs/models.py +0 -299
  279. synkit-1.6.1/synkit/CRN/dev_crn/constants.py +0 -47
  280. synkit-1.6.1/synkit/CRN/dev_crn/crn_formula.py +0 -455
  281. synkit-1.6.1/synkit/CRN/dev_crn/deficiency.py +0 -872
  282. synkit-1.6.1/synkit/CRN/dev_crn/enumerator.py +0 -289
  283. synkit-1.6.1/synkit/CRN/dev_crn/exceptions.py +0 -97
  284. synkit-1.6.1/synkit/CRN/dev_crn/explorer.py +0 -249
  285. synkit-1.6.1/synkit/CRN/dev_crn/helpers.py +0 -87
  286. synkit-1.6.1/synkit/CRN/dev_crn/injectivity.py +0 -692
  287. synkit-1.6.1/synkit/CRN/dev_crn/motif.py +0 -371
  288. synkit-1.6.1/synkit/CRN/dev_crn/network.py +0 -272
  289. synkit-1.6.1/synkit/CRN/dev_crn/pathway.py +0 -119
  290. synkit-1.6.1/synkit/CRN/dev_crn/properties.py +0 -310
  291. synkit-1.6.1/synkit/CRN/dev_crn/reaction.py +0 -173
  292. synkit-1.6.1/synkit/CRN/dev_crn/utils.py +0 -118
  293. synkit-1.6.1/synkit/CRN/dev_crn/viz.py +0 -494
  294. synkit-1.6.1/synkit/Rule/Apply/__init__.py +0 -0
  295. synkit-1.6.1/synkit/Rule/Compose/__init__.py +0 -0
  296. synkit-1.6.1/synkit/Rule/Modify/__init__.py +0 -0
  297. synkit-1.6.1/synkit/Synthesis/MSR/__init__.py +0 -0
  298. synkit-1.6.1/synkit/Synthesis/Metrics/__init__.py +0 -0
  299. synkit-1.6.1/synkit/Synthesis/Reactor/__init__.py +0 -30
  300. synkit-1.6.1/synkit/Synthesis/Reactor/fusion_validation.py +0 -557
  301. synkit-1.6.1/synkit/Synthesis/Reactor/rbl_engine.py +0 -1345
  302. synkit-1.6.1/synkit/Synthesis/Reactor/rbl_matching.py +0 -338
  303. synkit-1.6.1/synkit/Synthesis/Reactor/rbl_policy.py +0 -81
  304. synkit-1.6.1/synkit/Synthesis/__init__.py +0 -0
  305. synkit-1.6.1/synkit/Utils/__init__.py +0 -0
  306. synkit-1.6.1/synkit/Vis/crn/__init__.py +0 -5
  307. synkit-1.6.1/synkit/Vis/crn/visualizer.py +0 -981
  308. synkit-1.6.1/synkit/Vis/its_drawer.py +0 -615
  309. synkit-1.6.1/synkit/Vis/molecule_drawer.py +0 -565
  310. synkit-1.6.1/synkit/Vis/mtg_drawer.py +0 -769
  311. synkit-1.6.1/synkit/Vis/reaction_drawer.py +0 -285
  312. {synkit-1.6.1 → synkit-1.6.2}/LICENSE +0 -0
  313. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/__init__.py +0 -0
  314. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/arity.py +0 -0
  315. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/derivation.py +0 -0
  316. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/flattener.py +0 -0
  317. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/keys.py +0 -0
  318. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/mixtures.py +0 -0
  319. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/smiles.py +0 -0
  320. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/state.py +0 -0
  321. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Construct/strategy.py +0 -0
  322. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Structure/__init__.py +0 -0
  323. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/__init__.py +0 -0
  324. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Symmetry/symmetry.py +0 -0
  325. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Visualize/__init__.py +0 -0
  326. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Visualize/labels.py +0 -0
  327. {synkit-1.6.1 → synkit-1.6.2}/synkit/CRN/Visualize/palette.py +0 -0
  328. {synkit-1.6.1/synkit/CRN/Construct/DAG → synkit-1.6.2/synkit/Chem/Cluster}/__init__.py +0 -0
  329. {synkit-1.6.1/synkit/CRN/Query → synkit-1.6.2/synkit/Chem/Fingerprint}/__init__.py +0 -0
  330. {synkit-1.6.1/synkit/CRN/dev_crn/Symmetry → synkit-1.6.2/synkit/Chem/Molecule}/__init__.py +0 -0
  331. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/_chirality_loci.py +0 -0
  332. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/_chirality_types.py +0 -0
  333. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/_helical_loci.py +0 -0
  334. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/_stereo_axis_evidence.py +0 -0
  335. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/_stereo_element_detection.py +0 -0
  336. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/_stereo_orientation_constraints.py +0 -0
  337. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/_tetrahedral_carriers.py +0 -0
  338. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/chirality.py +0 -0
  339. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/cip_assignment.py +0 -0
  340. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/cip_ranking.py +0 -0
  341. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/coordinate_stereo.py +0 -0
  342. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/derived_stereo_naming.py +0 -0
  343. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/formula.py +0 -0
  344. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/global_stereo.py +0 -0
  345. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/stereo_evidence.py +0 -0
  346. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Molecule/stereo_perception.py +0 -0
  347. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/__init__.py +0 -0
  348. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/chem/__init__.py +0 -0
  349. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/chem/aam.py +0 -0
  350. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/chem/smiles.py +0 -0
  351. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/__init__.py +0 -0
  352. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/exact/enumeration_result.py +0 -0
  353. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/graph/__init__.py +0 -0
  354. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/graph/labeled_graph.py +0 -0
  355. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/graph/synkit_adapter.py +0 -0
  356. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/io/__init__.py +0 -0
  357. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/slap/__init__.py +0 -0
  358. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/Mapper/slap/sequential.py +0 -0
  359. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/__init__.py +0 -0
  360. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/Reaction/aam_validator.py +0 -0
  361. {synkit-1.6.1 → synkit-1.6.2}/synkit/Chem/__init__.py +0 -0
  362. {synkit-1.6.1/synkit/CRN/dev_crn/configs → synkit-1.6.2/synkit/Data}/__init__.py +0 -0
  363. {synkit-1.6.1 → synkit-1.6.2}/synkit/Data/aldol.json.gz +0 -0
  364. {synkit-1.6.1 → synkit-1.6.2}/synkit/Data/paracetamol.json.gz +0 -0
  365. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Canon/__init__.py +0 -0
  366. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Canon/exact.py +0 -0
  367. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Canon/exact_refinement.py +0 -0
  368. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Canon/nauty.py +0 -0
  369. {synkit-1.6.1/synkit/Chem/Cluster → synkit-1.6.2/synkit/Graph/Context}/__init__.py +0 -0
  370. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/__init__.py +0 -0
  371. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/api.py +0 -0
  372. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/audit.py +0 -0
  373. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/catalog.py +0 -0
  374. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/detector.py +0 -0
  375. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/model.py +0 -0
  376. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/recognizers.py +0 -0
  377. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/FG/ring_system.py +0 -0
  378. {synkit-1.6.1/synkit/Chem → synkit-1.6.2/synkit/Graph/Feature}/Fingerprint/__init__.py +0 -0
  379. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Feature/__init__.py +0 -0
  380. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Fusion/__init__.py +0 -0
  381. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Hyrogen/__init__.py +0 -0
  382. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Hyrogen/hcomplete_legacy.py +0 -0
  383. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Hyrogen/hcompletion_algorithms.py +0 -0
  384. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Hyrogen/hextend_legacy.py +0 -0
  385. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/__init__.py +0 -0
  386. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/ITS/stereo.py +0 -0
  387. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/MTG/mtg.py +0 -0
  388. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Matcher/__init__.py +0 -0
  389. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Mech/__init__.py +0 -0
  390. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Mech/electron_accounting.py +0 -0
  391. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Morphism/constraints.py +0 -0
  392. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Morphism/morphism.py +0 -0
  393. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Morphism/stereo.py +0 -0
  394. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Morphism/stereo_morphism.py +0 -0
  395. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Morphism/stereo_morphism_helpers.py +0 -0
  396. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Morphism/stereo_morphism_types.py +0 -0
  397. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/__init__.py +0 -0
  398. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/_descriptor_core.py +0 -0
  399. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/_descriptor_serialization.py +0 -0
  400. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/canonical.py +0 -0
  401. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/changes.py +0 -0
  402. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/composition.py +0 -0
  403. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/configured.py +0 -0
  404. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/couplings.py +0 -0
  405. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/descriptors.py +0 -0
  406. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/enumeration.py +0 -0
  407. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/extended_descriptors.py +0 -0
  408. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/global_configured.py +0 -0
  409. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/global_stereo.py +0 -0
  410. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/identity.py +0 -0
  411. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/interchange.py +0 -0
  412. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/legacy.py +0 -0
  413. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/matching.py +0 -0
  414. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/orbits.py +0 -0
  415. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/outcomes.py +0 -0
  416. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/pairwise.py +0 -0
  417. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/rdkit_adapter.py +0 -0
  418. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/reaction_interchange.py +0 -0
  419. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/semantics.py +0 -0
  420. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/supports.py +0 -0
  421. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/Stereo/wire.py +0 -0
  422. {synkit-1.6.1/synkit/Chem/Molecule → synkit-1.6.2/synkit/Graph/Wildcard}/__init__.py +0 -0
  423. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/__init__.py +0 -0
  424. {synkit-1.6.1 → synkit-1.6.2}/synkit/Graph/canon_graph.py +0 -0
  425. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/__init__.py +0 -0
  426. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/combinatorial/__init__.py +0 -0
  427. {synkit-1.6.1 → synkit-1.6.2}/synkit/IO/conversion.py +0 -0
  428. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/__init__.py +0 -0
  429. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/adapters.py +0 -0
  430. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/audit.py +0 -0
  431. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/compatibility.py +0 -0
  432. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/drawing.py +0 -0
  433. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/electron_models.py +0 -0
  434. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/equivalence.py +0 -0
  435. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/evidence.py +0 -0
  436. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/interchange.py +0 -0
  437. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/neighbor_stereo.py +0 -0
  438. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/radical_data.py +0 -0
  439. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/schema.py +0 -0
  440. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/stereo_state.py +0 -0
  441. {synkit-1.6.1 → synkit-1.6.2}/synkit/Mechanism/symbols.py +0 -0
  442. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Compose/_identity.py +0 -0
  443. {synkit-1.6.1/synkit/Data → synkit-1.6.2/synkit/Rule/Modify}/__init__.py +0 -0
  444. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/Modify/strip_rule.py +0 -0
  445. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/__init__.py +0 -0
  446. {synkit-1.6.1 → synkit-1.6.2}/synkit/Rule/stereo_identity.py +0 -0
  447. {synkit-1.6.1/synkit/Graph/Context → synkit-1.6.2/synkit/Synthesis/MSR}/__init__.py +0 -0
  448. {synkit-1.6.1/synkit/Graph/Feature/Fingerprint → synkit-1.6.2/synkit/Synthesis/Metrics}/__init__.py +0 -0
  449. /synkit-1.6.1/synkit/Synthesis/Reactor/serialization_policy.py → /synkit-1.6.2/synkit/Synthesis/Reactor/output/policy.py +0 -0
  450. {synkit-1.6.1/synkit/Synthesis/Reactor → synkit-1.6.2/synkit/Synthesis/Reactor/stereo}/assignment.py +0 -0
  451. /synkit-1.6.1/synkit/Synthesis/Reactor/post_syn.py → /synkit-1.6.2/synkit/Synthesis/Reactor/workflow/postprocess.py +0 -0
  452. {synkit-1.6.1/synkit/Graph/MTG → synkit-1.6.2/synkit/Synthesis}/__init__.py +0 -0
  453. {synkit-1.6.1/synkit/Graph/Wildcard → synkit-1.6.2/synkit/Utils}/__init__.py +0 -0
  454. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/__init__.py +0 -0
  455. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/arrows.py +0 -0
  456. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/chem.py +0 -0
  457. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/constants.py +0 -0
  458. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/layout.py +0 -0
  459. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/mapping.py +0 -0
  460. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/render.py +0 -0
  461. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/epd/utils.py +0 -0
  462. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/reaction/rule.py +0 -0
  463. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/space/chemical.py +0 -0
  464. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/vis_synedu/Vis/__init__.py +0 -0
  465. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/vis_synedu/Vis/dpo.py +0 -0
  466. {synkit-1.6.1 → synkit-1.6.2}/synkit/Vis/vis_synedu/vis.py +0 -0
  467. {synkit-1.6.1 → synkit-1.6.2}/synkit/__init__.py +0 -0
  468. {synkit-1.6.1 → synkit-1.6.2}/synkit/examples.py +0 -0
@@ -1,108 +1,116 @@
1
- *.pyc
1
+ # Python bytecode, environments, and tool caches
2
+ **/__pycache__/
3
+ *.py[cod]
4
+ .coverage
5
+ .mypy_cache/
6
+ .pytest_cache/
7
+ .ruff_cache/
8
+ .tox/
9
+ .venv/
10
+ venv/
2
11
  *cachedir
3
- *.csv
4
- !Experiment/Lewis/Data/all.csv
5
- !Experiment/Lewis/Data/combinatorial_all.csv
6
- !Experiment/Lewis/mech_path/Data/reconstruction_audit/polar-failures.csv
7
- !Experiment/Lewis/mech_path/Data/reconstruction_audit/radical-failures.csv
8
- !Experiment/Lewis/mech_path/Data/reconstruction_audit/radical-arrow-review.csv
9
- */catboost_info/*
12
+ */catboost_info/
10
13
 
14
+ # Build and generated documentation output
15
+ /build/
16
+ /dist/
17
+ /docs/
18
+ *.egg-info/
11
19
 
12
- *.pkl.gz
20
+ # Generated logs, reports, notebooks, and data files
21
+ *.log
13
22
  *.pdf
14
-
15
- .coverage
16
- dev/*
17
- /debug/
18
- /Test/Conformance/
19
23
  *.rdf
20
- test_syn_reactor.py
21
-
22
- Data/Benchmark/*
23
- !Data/Benchmark/partial_expand/
24
- !Data/Benchmark/partial_expand/**
25
- Data/Benchmark/partial_expand/results/
26
- !Data/Benchmark/mech/
27
- Data/Benchmark/mech/*
28
- !Data/Benchmark/mech/README.md
29
- !Data/Benchmark/mech/polar-failures.csv
30
- !Data/Benchmark/mech/radical-failures.csv
31
- *.json.gz
32
- !Experiment/Lewis/Data/benchmark.json.gz
33
- # *.png
34
-
35
- run.sh
36
- docs/*
37
- run_rdcanon.py
38
- Data/Fragment/*
39
- test_partial.py
40
- Data/Benchmark/synthesis/*
41
- Data/USPTO/*
42
- crn/*
43
- test_run.py
44
- Data/Study/CRN/case_formose/*
45
-
46
- synkit/Graph/dev/*
47
24
  *.ipynb
25
+ *.csv
48
26
  *.json
49
- # Stereo benchmark inputs are versioned for reproducible fresh-clone runs.
50
- # Generated reports stay Git-visible so completed results can be committed
51
- # explicitly, including reports created by the long raw stress stages.
52
- !Experiment/Stereo/Data/**/*.csv
53
- !Experiment/Stereo/Data/**/*.json
54
- !Data/Schema/
55
- !Data/Schema/attribute_propagation_v1_5.json
56
- !/tools/python_file_size_baseline.json
27
+ *.json.gz
28
+ *.pkl.gz
29
+ *.txt
30
+
31
+ # Package resources and repository evidence retained despite the broad rules
32
+ !LICENSES/*.txt
33
+ !synkit/CRN/Benchmark/data/kegg_modules.json
34
+ !Data/Conformance/stereomolgraph_graph_conformance.json
57
35
  !Data/Mech/polar.json
58
36
  !Data/Mech/radical.json
59
37
  !Data/Mech/stereo.json
38
+ !Data/Schema/
39
+ !Data/Schema/attribute_propagation_v1_5.json
40
+ !/tools/python_file_size_baseline.json
41
+ !Test/Synthesis/Reactor/fixtures/small_rewrite_conformance.json
42
+
43
+ # Lewis benchmark inputs and reviewed evidence
44
+ !Experiment/Lewis/Data/all.csv
45
+ !Experiment/Lewis/Data/benchmark.json.gz
46
+ !Experiment/Lewis/Data/combinatorial_all.csv
60
47
  !Experiment/Lewis/Data/hydrogen.pkl.gz
61
- # Canonical reviewed MechanismBench partitions are executable test data.
48
+ !Experiment/Lewis/mech_path/Data/MechanismBench/electrocyclic_machinery.json
62
49
  !Experiment/Lewis/mech_path/Data/MechanismBench/polar.json
63
50
  !Experiment/Lewis/mech_path/Data/MechanismBench/radical.json
64
51
  !Experiment/Lewis/mech_path/Data/MechanismBench/stereo.json
65
- !Experiment/Lewis/mech_path/Data/MechanismBench/electrocyclic_machinery.json
66
52
  !Experiment/Lewis/mech_path/Data/MechanismBench/stereo_branch_coverage.json
67
53
  !Experiment/Lewis/mech_path/Data/MechanismBench/stereo_couplings.json
68
54
  !Experiment/Lewis/mech_path/Data/MechanismBench/evidence/mechanismbench_evidence.json
55
+ !Experiment/Lewis/mech_path/Data/reconstruction_audit/polar-failures.csv
56
+ !Experiment/Lewis/mech_path/Data/reconstruction_audit/radical-arrow-review.csv
57
+ !Experiment/Lewis/mech_path/Data/reconstruction_audit/radical-failures.csv
69
58
  !Experiment/Lewis/rule_replay/Data/bidirectional-replay/results.json
70
59
  !Experiment/Lewis/rule_replay/Data/relative-lone-pair/results.json
60
+
61
+ # Stereo benchmark inputs and reproducible reports
62
+ !Experiment/Stereo/Data/**/*.csv
63
+ !Experiment/Stereo/Data/**/*.json
71
64
  !Experiment/Stereo/Data/manifest.json
72
- !Experiment/Stereo/Data/Perception/perception_conformance_cases.json
73
65
  !Experiment/Stereo/Data/Perception/full_detection_report.json
74
- !Test/Synthesis/Reactor/fixtures/small_rewrite_conformance.json
75
- !Data/Conformance/stereomolgraph_graph_conformance.json
76
- !Data/Benchmark/Stereo/
77
- !Data/Benchmark/Stereo/**
78
- *.txt
79
- !LICENSES/*.txt
80
- *.log
81
- /dist/
82
- sprint/
83
- sprint/*
84
- test_syn.py
85
- .gitignore
86
- measure_candidate_stages.py
87
- run_valid_bug_cases.py
88
- paper/*
89
- # Nested standalone Git repository.
90
- /paper/og_paper/
66
+ !Experiment/Stereo/Data/Perception/perception_conformance_cases.json
91
67
 
92
- # Fresh benchmark runs are reproducible and can be large. Retained reference
93
- # outputs live inside each experiment's Data directory.
94
- Experiment/Lewis/Runs/
68
+ # Large or reproducible data products
69
+ /Data/Benchmark/*
70
+ !/Data/Benchmark/mech/
71
+ /Data/Benchmark/mech/*
72
+ !/Data/Benchmark/mech/README.md
73
+ !/Data/Benchmark/mech/polar-failures.csv
74
+ !/Data/Benchmark/mech/radical-failures.csv
75
+ !/Data/Benchmark/partial_expand/
76
+ !/Data/Benchmark/partial_expand/**
77
+ /Data/Benchmark/partial_expand/results/
78
+ !/Data/Benchmark/Stereo/
79
+ !/Data/Benchmark/Stereo/**
80
+ /Data/Fragment/*
81
+ /Data/Study/CRN/case_formose/*
82
+ /Data/USPTO/*
83
+ /Experiment/Lewis/Runs/
95
84
 
96
- # Generated FLOWER intermediates and long-run evidence. The portable
97
- # full-reaction batch payload is intentionally retained in Git.
98
- Experiment/Lewis/FLOWER/batches/
99
- Experiment/Lewis/FLOWER/full_reactions/
100
- Experiment/Lewis/FLOWER/replay-debug/
101
- Experiment/Lewis/FLOWER/replay-runs/
102
- Experiment/Lewis/FLOWER/replay-results*/
85
+ # Generated FLOWER intermediates and long-run evidence
86
+ /Experiment/Lewis/FLOWER/batches/
87
+ /Experiment/Lewis/FLOWER/full_reactions/
88
+ /Experiment/Lewis/FLOWER/replay-debug/
89
+ /Experiment/Lewis/FLOWER/replay-results*/
90
+ /Experiment/Lewis/FLOWER/replay-runs/
103
91
  !Experiment/Lewis/FLOWER/full-reaction-batches/manifest.json
104
92
  !Experiment/Lewis/FLOWER/full-reaction-replay-summary.json
105
93
 
106
- # Keep generated Python bytecode ignored after directory re-inclusions above.
107
- **/__pycache__/
108
- *.py[cod]
94
+ # Resumable local benchmark state
95
+ /Experiment/RBL/*checkpoint*.jsonl
96
+
97
+ # Development and scratch paths
98
+ /Test/Conformance/
99
+ /crn/
100
+ /debug/
101
+ /dev/
102
+ /paper/*
103
+ /sprint/
104
+ /synkit/Graph/dev/
105
+
106
+ # Local one-off scripts and prompts
107
+ .gitignore
108
+ measure_candidate_stages.py
109
+ request.md
110
+ run.sh
111
+ run_rdcanon.py
112
+ run_valid_bug_cases.py
113
+ test_partial.py
114
+ test_run.py
115
+ test_syn.py
116
+ test_syn_reactor.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synkit
3
- Version: 1.6.1
3
+ Version: 1.6.2
4
4
  Summary: Utility for reaction modeling using graph grammar
5
5
  Project-URL: homepage, https://github.com/TieuLongPhan/SynKit
6
6
  Project-URL: source, https://github.com/TieuLongPhan/SynKit
@@ -14,6 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python :: 3
15
15
  Requires-Python: >=3.11
16
16
  Requires-Dist: networkx>=3.3
17
+ Requires-Dist: numpy>=2.2.0
17
18
  Requires-Dist: pandas>=1.5.3
18
19
  Requires-Dist: rdkit>=2025.3.1
19
20
  Requires-Dist: regex>=2024.11.6
@@ -144,7 +145,7 @@ examples.
144
145
  ## Publications
145
146
 
146
147
  - [Lewis-labeled graphs: curly arrows and fishhooks as executable electron
147
- transfers](https://arxiv.org/abs/2607.26088), arXiv:2607.26088 (2026).
148
+ transfers](https://arxiv.org/abs/2607.26088), submitted (2026).
148
149
  - [SynKit: A Graph-Based Python Framework for Rule-Based Reaction Modeling and
149
150
  Analysis](https://pubs.acs.org/doi/full/10.1021/acs.jcim.5c02123), *Journal
150
151
  of Chemical Information and Modeling* (2025).
@@ -105,7 +105,7 @@ examples.
105
105
  ## Publications
106
106
 
107
107
  - [Lewis-labeled graphs: curly arrows and fishhooks as executable electron
108
- transfers](https://arxiv.org/abs/2607.26088), arXiv:2607.26088 (2026).
108
+ transfers](https://arxiv.org/abs/2607.26088), submitted (2026).
109
109
  - [SynKit: A Graph-Based Python Framework for Rule-Based Reaction Modeling and
110
110
  Analysis](https://pubs.acs.org/doi/full/10.1021/acs.jcim.5c02123), *Journal
111
111
  of Chemical Information and Modeling* (2025).
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "synkit"
7
- version = "1.6.1"
7
+ version = "1.6.2"
8
8
  description = "Utility for reaction modeling using graph grammar"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -19,6 +19,7 @@ classifiers = [
19
19
  "Operating System :: OS Independent",
20
20
  ]
21
21
  dependencies = [
22
+ "numpy>=2.2.0",
22
23
  "scikit-learn>=1.4.0",
23
24
  "pandas>=1.5.3",
24
25
  "rdkit>=2025.3.1",
@@ -39,7 +40,7 @@ docs = [
39
40
  "pydata-sphinx-theme",
40
41
  "sphinx-rtd-theme",
41
42
 
42
- # Your enabled extensions
43
+ # Sphinx extensions
43
44
  "sphinxcontrib-bibtex",
44
45
  "sphinx-design",
45
46
  "sphinx-copybutton",
@@ -49,8 +50,7 @@ docs = [
49
50
  # (still requires the system `dot` binary to render diagrams)
50
51
  "graphviz",
51
52
 
52
- # Nice-to-have for markdown in docs if you ever add .md pages
53
- # (safe even if unused)
53
+ # Markdown source support
54
54
  "myst-parser",
55
55
  ]
56
56
 
@@ -63,12 +63,15 @@ documentation = "https://tieulongphan.github.io/SynKit/"
63
63
 
64
64
  [tool.hatch.build.targets.wheel]
65
65
  packages = ["synkit"]
66
+ core-metadata-version = "2.4"
66
67
 
67
68
  [tool.hatch.build.targets.wheel.force-include]
68
69
  "synkit/Data/aldol.json.gz" = "synkit/Data/aldol.json.gz"
69
70
  "synkit/Data/paracetamol.json.gz" = "synkit/Data/paracetamol.json.gz"
71
+ "synkit/CRN/Benchmark/data/kegg_modules.json" = "synkit/CRN/Benchmark/data/kegg_modules.json"
70
72
 
71
73
  [tool.hatch.build.targets.sdist]
74
+ core-metadata-version = "2.4"
72
75
  include = [
73
76
  "/synkit",
74
77
  "/LICENSE",
@@ -80,3 +83,12 @@ include = [
80
83
  [tool.hatch.build.targets.sdist.force-include]
81
84
  "synkit/Data/aldol.json.gz" = "synkit/Data/aldol.json.gz"
82
85
  "synkit/Data/paracetamol.json.gz" = "synkit/Data/paracetamol.json.gz"
86
+ "synkit/CRN/Benchmark/data/kegg_modules.json" = "synkit/CRN/Benchmark/data/kegg_modules.json"
87
+
88
+ [tool.coverage.run]
89
+ source = ["synkit"]
90
+
91
+ [tool.coverage.report]
92
+ fail_under = 70
93
+ precision = 1
94
+ show_missing = true
@@ -0,0 +1,105 @@
1
+ """Benchmark, validation and case-study material for :mod:`synkit.CRN`.
2
+
3
+ Three things live here, all runnable and all shipped with the package so the
4
+ results in the paper can be regenerated by a reader:
5
+
6
+ - **A validation set** (:mod:`~synkit.CRN.Benchmark.networks`,
7
+ :mod:`~synkit.CRN.Benchmark.validate`) — literature and regression networks
8
+ with the structural verdicts they must reproduce, each quantity additionally
9
+ recomputed by an independent route from
10
+ :mod:`~synkit.CRN.Benchmark.crosschecks`.
11
+ - **A scaling benchmark** (:mod:`~synkit.CRN.Benchmark.scaling`) — wall-clock
12
+ timings of the analysis stack against network size.
13
+ - **A metabolic case study** (:mod:`~synkit.CRN.Benchmark.kegg`) — cached KEGG
14
+ modules pushed through the whole chain, from pathway retrieval to
15
+ conservation laws, persistence and flux realizability.
16
+
17
+ .. rubric:: Example
18
+
19
+ .. code-block:: python
20
+
21
+ from synkit.CRN.Benchmark import run_validation, validation_table
22
+
23
+ print(validation_table(run_validation()))
24
+ """
25
+
26
+ from __future__ import annotations
27
+
28
+ from .networks import (
29
+ BENCHMARK_NETWORKS,
30
+ BenchmarkNetwork,
31
+ get_network,
32
+ network_names,
33
+ )
34
+ from .crosschecks import (
35
+ brute_force_siphons,
36
+ check_conservation_laws,
37
+ check_semiflows,
38
+ deficiency_by_rank_identity,
39
+ persistence_by_brute_force,
40
+ rank_by_svd,
41
+ )
42
+ from .scaling import (
43
+ NETWORK_FAMILIES,
44
+ ScalingRecord,
45
+ TASKS,
46
+ generate_network,
47
+ run_scaling_benchmark,
48
+ scaling_table,
49
+ )
50
+ from .kegg import (
51
+ CASE_STUDY_MODULES,
52
+ GLYCOLYSIS_FLUX,
53
+ KeggModuleAnalysis,
54
+ analyze_kegg_module,
55
+ build_kegg_crn,
56
+ check_glycolysis_flux,
57
+ kegg_case_study_report,
58
+ load_kegg_cache,
59
+ module_ids,
60
+ )
61
+ from .validate import (
62
+ NetworkValidation,
63
+ ValidationReport,
64
+ run_validation,
65
+ validate_network,
66
+ validation_table,
67
+ )
68
+
69
+ __all__ = [
70
+ # networks
71
+ "BENCHMARK_NETWORKS",
72
+ "BenchmarkNetwork",
73
+ "get_network",
74
+ "network_names",
75
+ # independent cross-checks
76
+ "brute_force_siphons",
77
+ "check_conservation_laws",
78
+ "check_semiflows",
79
+ "deficiency_by_rank_identity",
80
+ "persistence_by_brute_force",
81
+ "rank_by_svd",
82
+ # scaling benchmark
83
+ "NETWORK_FAMILIES",
84
+ "ScalingRecord",
85
+ "TASKS",
86
+ "generate_network",
87
+ "run_scaling_benchmark",
88
+ "scaling_table",
89
+ # KEGG case study
90
+ "CASE_STUDY_MODULES",
91
+ "GLYCOLYSIS_FLUX",
92
+ "KeggModuleAnalysis",
93
+ "analyze_kegg_module",
94
+ "build_kegg_crn",
95
+ "check_glycolysis_flux",
96
+ "kegg_case_study_report",
97
+ "load_kegg_cache",
98
+ "module_ids",
99
+ # validation
100
+ "NetworkValidation",
101
+ "ValidationReport",
102
+ "run_validation",
103
+ "validate_network",
104
+ "validation_table",
105
+ ]