chemart / toychem
View on GitHubToyChem (graph-based toy model of chemistry) — The chemistry that feels most like chemistry. Molecules are structural formulas - labelled graphs of atoms and bonds - and reactions are graph rewriting rules that must conserve atoms and bond order. What makes it distin…
{"species": [{"id": "C=O", "structure": "C=O"}, {"id": "O=CCO", "structure": "O=CCO"}, {"id": "OC=CO", "structure": "OC=CO"}, {"id": "O=CC(O)CO", "structure": "O=CC(O)CO"}, {"id": "O=CC(O)C(O)CO", "structure": "O=CC(O)C(O)CO"}, {"id": "OC=C(O)CO", "structure": "OC=C(O)CO"}, {"id": "OC=C(O)C(O)CO", "structure": "OC=C(O)C(O)CO"}, {"id": "O=C(CO)CO", "structure": "O=C(CO)CO"}, {"id": "O=C(CO)C(O)CO", "structure": "O=C(CO)C(O)CO"}, {"id": "O=CC(O)(CO)CO", "structure": "O=CC(O)(CO)CO"}, {"id": "OCC(O)=C(O)CO", "structure": "OCC(O)=C(O)CO"}], "reactions": [{"reactants": {"O=CCO": 1}, "products": {"OC=CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 131.11036505407327, "reactivity": 0.17588653643431806, "rules": "keto-enol"}, "count": null}, {"reactants": {"OC=CO": 1}, "products": {"O=CCO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 137.97957985078907, "reactivity": 0.16713015088854197, "rules": "keto-enol"}, "count": null}, {"reactants": {"C=O": 1, "OC=CO": 1}, "products": {"O=CC(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 106.95649437718302, "reactivity": 0.215606804750694, "rules": "aldol"}, "count": null}, {"reactants": {"O=CCO": 1, "OC=CO": 1}, "products": {"O=CC(O)C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 88.27936923241182, "reactivity": 0.2612223920550319, "rules": "aldol"}, "count": null}, {"reactants": {"O=CC(O)CO": 1}, "products": {"OC=C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 130.82968441387322, "reactivity": 0.1762638815748351, "rules": "keto-enol"}, "count": null}, {"reactants": {"O=CC(O)C(O)CO": 1}, "products": {"OC=C(O)C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 130.82082709909778, "reactivity": 0.1762758156431121, "rules": "keto-enol"}, "count": null}, {"reactants": {"OC=C(O)CO": 1}, "products": {"O=C(CO)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 124.60595143283525, "reactivity": 0.185067789578494, "rules": "keto-enol"}, "count": null}, {"reactants": {"OC=C(O)CO": 1}, "products": {"O=CC(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 124.60595143283525, "reactivity": 0.185067789578494, "rules": "keto-enol"}, "count": null}, {"reactants": {"OC=C(O)C(O)CO": 1}, "products": {"O=C(CO)C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 124.33340531322227, "reactivity": 0.18547346903195952, "rules": "keto-enol"}, "count": null}, {"reactants": {"OC=C(O)C(O)CO": 1}, "products": {"O=CC(O)C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 124.33340531322227, "reactivity": 0.18547346903195952, "rules": "keto-enol"}, "count": null}, {"reactants": {"C=O": 1, "OC=C(O)CO": 1}, "products": {"O=C(CO)C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 107.4525194253242, "reactivity": 0.21461151514484766, "rules": "aldol"}, "count": null}, {"reactants": {"C=O": 1, "OC=C(O)CO": 1}, "products": {"O=CC(O)(CO)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 107.4525194253242, "reactivity": 0.21461151514484766, "rules": "aldol"}, "count": null}, {"reactants": {"O=C(CO)CO": 1}, "products": {"OC=C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 122.67942342810865, "reactivity": 0.1879740494013139, "rules": "keto-enol"}, "count": null}, {"reactants": {"O=C(CO)C(O)CO": 1}, "products": {"OC=C(O)C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 122.52753234286943, "reactivity": 0.18820707117049865, "rules": "keto-enol"}, "count": null}, {"reactants": {"O=C(CO)C(O)CO": 1}, "products": {"OCC(O)=C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 122.52753234286943, "reactivity": 0.18820707117049865, "rules": "keto-enol"}, "count": null}, {"reactants": {"OCC(O)=C(O)CO": 1}, "products": {"O=C(CO)C(O)CO": 1}, "rate": {"law": "arrhenius", "A": 1.0, "Ea": 112.30982558220896, "reactivity": 0.20532974635527376, "rules": "keto-enol"}, "count": null}], "status": "complete", "initial_state": null, "inflow": null, "outflow": null, "extras": {"network": "formose", "seed": ["C=O", "O=CCO"], "rules": ["keto-enol", "aldol"], "reaction_rules": [["keto-enol"], ["keto-enol"], ["aldol"], ["aldol"], ["keto-enol"], ["keto-enol"], ["keto-enol"], ["keto-enol"], ["keto-enol"], ["keto-enol"], ["aldol"], ["aldol"], ["keto-enol"], ["keto-enol"], ["keto-enol"], ["keto-enol"]], "energies": {"units": "kcal/mol", "model": "caricature Extended Hueckel Theory on the orbital graph: overlap integrals read off Table 1 of Benko, Flamm & Stadler (2003) by orbital type instead of being integrated in space, H_ij = kappa (H_ii + H_jj) S_ij / 2 (Wolfsberg-Helmholtz) with H_ii = -I_i, then H c = E S c and E = sum_alpha n_alpha E_alpha over doubly occupied orbitals", "reference": "total atomization energy: the molecule's energy minus the valence-state energy of its separated atoms", "total_atomization_energy": {"C=O": -1722.4610511528983, "O=CCO": -3454.7132309616263, "OC=CO": -3428.8253749013184, "O=CC(O)CO": -5174.495065290401, "O=CC(O)C(O)CO": -6894.278083461269, "OC=C(O)CO": -5161.063266576606, "OC=C(O)C(O)CO": -6880.8563507781155, "O=C(CO)CO": -5185.399475916418, "O=C(CO)C(O)CO": -6905.172795412979, "O=CC(O)(CO)CO": -6893.492558041022, "OCC(O)=C(O)CO": -6892.997712908061}, "homo_ev": {"C=O": -15.64428655713682, "O=CCO": -15.62646765960845, "OC=CO": -13.769139905659955, "O=CC(O)CO": -15.626119143931716, "O=CC(O)C(O)CO": -15.626104723971942, "OC=C(O)CO": -13.790649587396103, "OC=C(O)C(O)CO": -13.790898649001043, "O=C(CO)CO": -15.615001948624966, "O=C(CO)C(O)CO": -15.614749287370818, "O=CC(O)(CO)CO": -15.625832751073919, "OCC(O)=C(O)CO": -13.805283566612815}, "lumo_ev": {"C=O": -9.131067368217089, "O=CCO": -9.940984163983225, "OC=CO": -7.785779065718551, "O=CC(O)CO": -9.952807112757382, "O=CC(O)C(O)CO": -9.953176782316012, "OC=C(O)CO": -8.387224160002303, "OC=C(O)C(O)CO": -8.39929193986203, "O=C(CO)CO": -10.295118681839257, "O=C(CO)C(O)CO": -10.301452641390444, "O=CC(O)(CO)CO": -9.962448615191617, "OCC(O)=C(O)CO": -8.935068618459416}, "reaction_energy": [25.887856060307968, -25.887856060307968, -23.208639236184354, -10.739477598323901, 13.431798713794706, 13.421732683153095, -24.33620933981183, -13.431798713794706, -24.31644463486373, -13.421732683153095, -21.648477683474994, -9.968240311517548, 24.33620933981183, 24.31644463486373, 12.175082504918464, -12.175082504918464], "activation_energy": [131.11036505407327, 137.97957985078907, 106.95649437718302, 88.27936923241182, 130.82968441387322, 130.82082709909778, 124.60595143283525, 124.60595143283525, 124.33340531322227, 124.33340531322227, 107.4525194253242, 107.4525194253242, 122.67942342810865, 122.52753234286943, 122.52753234286943, 112.30982558220896], "activation_model": "Frontier Molecular Orbital theory: the reactivity of a channel is inversely proportional to the frontier gap E_LUMO - E_HOMO of the two partners (the paper's simplification Delta E = xi / (E_zeta - E_alpha) of the Klopman-Salem formula). The gap is used as the Arrhenius activation energy and xi / gap is reported as the paper's reactivity index."}, "conservation": [{"name": "atoms of type C", "vector": {"C=O": 1, "O=CCO": 2, "OC=CO": 2, "O=CC(O)CO": 3, "O=CC(O)C(O)CO": 4, "OC=C(O)CO": 3, "OC=C(O)C(O)CO": 4, "O=C(CO)CO": 3, "O=C(CO)C(O)CO": 4, "O=CC(O)(CO)CO": 4, "OCC(O)=C(O)CO": 4}}, {"name": "atoms of type H", "vector": {"C=O": 2, "O=CCO": 4, "OC=CO": 4, "O=CC(O)CO": 6, "O=CC(O)C(O)CO": 8, "OC=C(O)CO": 6, "OC=C(O)C(O)CO": 8, "O=C(CO)CO": 6, "O=C(CO)C(O)CO": 8, "O=CC(O)(CO)CO": 8, "OCC(O)=C(O)CO": 8}}, {"name": "atoms of type O", "vector": {"C=O": 1, "O=CCO": 2, "OC=CO": 2, "O=CC(O)CO": 3, "O=CC(O)C(O)CO": 4, "OC=C(O)CO": 3, "OC=C(O)C(O)CO": 4, "O=C(CO)CO": 3, "O=C(CO)C(O)CO": 4, "O=CC(O)(CO)CO": 4, "OCC(O)=C(O)CO": 4}}], "parameters": {"kappa": 1.75, "semi_direct_scale": 0.1, "hyperconjugation": 0.8, "ring_scale": {"3": 0.7, "4": 0.8}, "xi": 1.0, "temperature": 298.15, "barrier_cutoff": 0.0}, "species_encoding": "id = structure = canonical SMILES of the structure formula, so molecules are identified up to graph isomorphism by string comparison, as in the 2003 paper", "rewrite_rules": "graph rewriting on the structure formula, conserving vertex labels (atoms) and total bond order (valence electrons); bimolecular mechanisms are a half rule per educt plus a join rule", "analysis": {"substrate_graph": {"nodes": 11, "edges": 16, "mean_degree": 2.909090909090909, "mean_path_length": 2.0727272727272728, "mean_clustering": 0.4666666666666667, "random_path_length": 2.245555381045321, "random_clustering": 0.2909090909090909, "small_world": true, "degree_sequence": [5, 5, 4, 4, 3, 3, 2, 2, 2, 1, 1]}, "rewrite_mode": "all", "max_carbons": 4}}, "chemistry": "toychem", "params": {"network": "formose", "seed_molecules": [], "rules": [], "max_species": 60, "max_carbons": 4, "barrier_cutoff": 0.0, "xi": 1.0, "arrhenius_prefactor": 1.0, "temperature": 298.15, "kappa": 1.75, "semi_direct_scale": 0.1, "rewrite_mode": "all"}, "seed": 1}