chemart / srsim

View on GitHub

SRSim (rule-based spatial simulator) — Rule-based chemistry that refuses to forget geometry. Molecules are spheres carrying binding sites at fixed positions, diffusing in three dimensions, and rules are written over patterns as in any rule-based language - bu…

chemistry official · built in systems-biology fidelity: reconstructed constructive #banzhaf-yamamoto
files / preview.json · 19.9 KB · at 096abf0d1428 Raw
{"species": [{"id": "M(a[.],b[.])", "structure": "M(a[.],b[.])"}, {"id": "M(a[.],b[1]),M(a[1],b[.])", "structure": "M(a[.],b[1]),M(a[1],b[.])"}, {"id": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])", "structure": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])"}, {"id": "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])", "structure": "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])"}, {"id": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "structure": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])"}, {"id": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])", "structure": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])"}, {"id": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])", "structure": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])"}, {"id": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])", "structure": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])"}, {"id": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])", "structure": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])"}, {"id": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])", "structure": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])"}, {"id": "M13#2078c4", "structure": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[.]),M(a[6],b[5]),M(a[7],b[6]),M(a[8],b[7]),M(a[9],b[8]),M(a[10],b[9]),M(a[11],b[10]),M(a[12],b[11]),M(a[.],b[12])"}, {"id": "M10#df2d2d", "structure": "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[6]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[9]),M(a[9],b[.])"}, {"id": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "structure": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])"}], "reactions": [{"reactants": {"M(a[.],b[.])": 2}, "products": {"M(a[.],b[1]),M(a[1],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 20}, {"reactants": {"M(a[.],b[.])": 1, "M(a[.],b[1]),M(a[1],b[.])": 1}, "products": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 8}, {"reactants": {"M(a[.],b[.])": 1, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 1}, "products": {"M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 4}, {"reactants": {"M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1}, "products": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 2}, {"reactants": {"M(a[.],b[1]),M(a[1],b[.])": 1, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 1}, "products": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 3}, {"reactants": {"M(a[.],b[1]),M(a[1],b[.])": 1}, "products": {"M(a[.],b[.])": 2}, "rate": {"law": "mass-action", "k": 0.01, "rules": "grow_rev"}, "count": 3}, {"reactants": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])": 1, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 1}, "products": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M(a[.],b[1]),M(a[1],b[.])": 2}, "products": {"M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 2}, {"reactants": {"M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1, "M(a[.],b[.])": 1}, "products": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])": 1}, "products": {"M(a[.],b[1]),M(a[1],b[.])": 1, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 1}, "rate": {"law": "mass-action", "k": 0.01, "rules": "grow_rev"}, "count": 2}, {"reactants": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])": 1}, "products": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1, "M(a[.],b[1]),M(a[1],b[.])": 1}, "products": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M(a[.],b[.])": 1, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])": 1}, "products": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])": 1}, "products": {"M13#2078c4": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M(a[.],b[1]),M(a[1],b[.])": 1, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])": 1}, "products": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M(a[.],b[1]),M(a[1],b[.])": 1, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])": 1}, "products": {"M10#df2d2d": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}, {"reactants": {"M13#2078c4": 1}, "products": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])": 1, "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1}, "rate": {"law": "mass-action", "k": 0.01, "rules": "grow_rev"}, "count": 1}, {"reactants": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])": 1}, "products": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 1, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])": 1}, "rate": {"law": "mass-action", "k": 0.01, "rules": "grow_rev"}, "count": 1}, {"reactants": {"M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 1, "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1}, "products": {"M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])": 1}, "rate": {"law": "mass-action", "k": 25.656340004316643, "rules": "grow"}, "count": 1}], "status": "observed", "initial_state": {"M(a[.],b[.])": 50.0}, "inflow": null, "outflow": null, "extras": {"model": "polymer", "molecule_types": [{"name": "M", "radius": 0.5, "mass": 1.0, "diffusion": 1.0, "sites": [{"name": "a", "dist": 1.0, "theta": 90.0, "phi": 0.0}, {"name": "b", "dist": 1.0, "theta": 90.0, "phi": 90.0}]}], "rules": ["'grow' M(a) + M(b) <-> M(a!1).M(b!1) @ 0.5, 0.01"], "init": {"M": 50}, "bngl": "begin species\n  M()  50\nend species\n\nbegin reaction rules\n  'grow' M(a) + M(b) <-> M(a!1).M(b!1) @ 0.5, 0.01\nend reaction rules\n", "reaction_rules": [["grow"], ["grow"], ["grow"], ["grow"], ["grow"], ["grow_rev"], ["grow"], ["grow"], ["grow"], ["grow_rev"], ["grow"], ["grow"], ["grow"], ["grow"], ["grow"], ["grow"], ["grow_rev"], ["grow_rev"], ["grow"]], "space": {"kind": "continuous", "dimensions": 3, "units": "arbitrary (as in the paper's examples)", "box": [[0.0, 12.0], [0.0, 12.0], [0.0, 12.0]], "boundary": "periodic (minimum image)", "timestep": 0.02, "steps": 1500, "temperature": 1.0, "integrator": "langevin", "diffusion": {"M": 1.0}, "radius": {"M": 0.5}, "mass": {"M": 1.0}, "sites": {"M": [{"name": "a", "dist": 1.0, "theta": 90.0, "phi": 0.0, "states": []}, {"name": "b", "dist": 1.0, "theta": 90.0, "phi": 90.0, "states": []}]}, "ideal_angles": {"M": [[0.0, 90.0], [90.0, 0.0]]}, "tolerances": {"distance": 0.5, "angle_degrees": 30.0, "orientation": "bound-only"}, "refractory_time": 1.0, "reaction_criterion": "a bimolecular rule fires between two elementary molecules only if their distance is within distance_tolerance of the ideal bond length d_ij + d_kl and, for every bond either of them already carries, the angle between the direction to the partner and that bond is within angle_tolerance of the ideal angle; an unbound molecule has no orientation and passes (orientation='sampled': with probability (1 - cos t_ang)/2). A compatible pair then reacts with probability 1 - exp(-k dt).", "particles": [{"species": "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])", "type": "M", "position": [7.8962, 3.0905, 3.1927]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])", "type": "M", "position": [1.8895, 9.9175, 6.2548]}, {"species": "M10#df2d2d", "type": "M", "position": [5.5314, 0.5743, 3.3279]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])", "type": "M", "position": [2.7997, 4.2866, 0.0585]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "type": "M", "position": [5.708, 5.8675, 10.0254]}, {"species": "M10#df2d2d", "type": "M", "position": [6.0589, 3.0656, 2.8]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [5.4298, 4.3011, 9.7863]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [3.5156, 2.2608, 9.474]}, {"species": "M(a[.],b[.])", "type": "M", "position": [7.0711, 1.3343, 9.5085]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])", "type": "M", "position": [9.2101, 9.7503, 7.7987]}, {"species": "M10#df2d2d", "type": "M", "position": [8.0372, 2.0213, 2.7182]}, {"species": "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])", "type": "M", "position": [7.1254, 11.9533, 1.1097]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])", "type": "M", "position": [2.7855, 7.8986, 6.0069]}, {"species": "M10#df2d2d", "type": "M", "position": [4.7725, 5.81, 2.2499]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])", "type": "M", "position": [2.053, 9.7174, 11.7114]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])", "type": "M", "position": [0.2234, 11.3352, 11.516]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])", "type": "M", "position": [4.0284, 6.1343, 0.2818]}, {"species": "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])", "type": "M", "position": [9.2587, 11.2426, 2.4101]}, {"species": "M10#df2d2d", "type": "M", "position": [5.2342, 5.1713, 4.4772]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])", "type": "M", "position": [2.8915, 8.2777, 2.4634]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [8.2631, 1.9686, 8.9448]}, {"species": "M(a[.],b[1]),M(a[1],b[.])", "type": "M", "position": [11.6649, 0.9767, 8.1484]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "type": "M", "position": [5.6895, 6.7591, 8.621]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [7.5289, 2.3887, 10.9489]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])", "type": "M", "position": [0.7517, 7.5695, 3.5947]}, {"species": "M(a[.],b[.])", "type": "M", "position": [10.587, 5.3029, 5.0106]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "type": "M", "position": [7.2301, 6.7336, 10.5427]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "type": "M", "position": [5.5317, 4.4727, 8.6199]}, {"species": "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])", "type": "M", "position": [9.3483, 1.2743, 2.6854]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])", "type": "M", "position": [11.8455, 9.663, 6.0899]}, {"species": "M10#df2d2d", "type": "M", "position": [8.1235, 0.2158, 2.7318]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])", "type": "M", "position": [10.4265, 10.6145, 6.7479]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])", "type": "M", "position": [2.3571, 6.5051, 1.1739]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "type": "M", "position": [9.1934, 4.1673, 11.7001]}, {"species": "M10#df2d2d", "type": "M", "position": [7.3773, 5.0209, 5.4668]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])", "type": "M", "position": [0.6637, 11.0549, 8.7385]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])", "type": "M", "position": [1.9724, 10.3062, 7.656]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [4.8626, 2.93, 8.6156]}, {"species": "M(a[.],b[1]),M(a[1],b[.])", "type": "M", "position": [1.3463, 1.4682, 7.6576]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "type": "M", "position": [9.576, 6.077, 0.113]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [6.4108, 1.2189, 8.7752]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])", "type": "M", "position": [2.4095, 9.9606, 9.8337]}, {"species": "M10#df2d2d", "type": "M", "position": [8.4297, 1.8388, 4.3511]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [4.6887, 3.2741, 10.8031]}, {"species": "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])", "type": "M", "position": [2.4195, 6.8208, 3.7301]}, {"species": "M10#df2d2d", "type": "M", "position": [6.2185, 2.2933, 4.3794]}, {"species": "M10#df2d2d", "type": "M", "position": [5.9793, 3.4118, 5.7951]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])", "type": "M", "position": [5.8986, 2.4557, 9.8096]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])", "type": "M", "position": [8.5703, 6.3477, 10.3864]}, {"species": "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])", "type": "M", "position": [11.4804, 10.3311, 10.0305]}]}, "interaction_law": {"name": "SRSim coarse-grained molecular dynamics (LAMMPS)", "state": "each elementary molecule is a sphere with a position, a velocity, a mass, a radius and components at fixed polar coordinates", "potentials": {"bond": "E_d = K_d (d - d_ij - d_kl)^2", "angle": "E_a = K_a (alpha - alpha_ijk)^2 for every pair of bonds of one molecule", "repulsion": "E_s = A [1 + cos(pi r / r_c)] for r < r_c = r_i + r_j (soft sphere)"}, "motion": "F_i = F_i^S - gamma_0 v_i + sqrt(2 k_B T gamma_0) xi_i(t) with gamma_0 = k_B T / D (Langevin), or its overdamped limit dx = D F dt / k_B T + sqrt(2 D dt) xi (Brownian); k_B = 1", "constants": {"K_d": 5.0, "K_a": 5.0, "A": 5.0, "temperature": 1.0}, "time_step_rule": "the paper's rule of thumb: sqrt(6 D dt) should be about a tenth of a particle diameter"}, "kinetics": {"k1_micro": "k1_mic = k1_mac for monomolecular rules (additional file 2)", "k2_micro": "k2_mic = k2_mac / (V_reactor P) with P = V_react / V_reactor; both partners unoriented gives V_react = (2 pi / 3)(3 d0^2 t_dist + t_dist^3)(1 - cos t_ang)^2, orientations fixed by other bonds give the shell (8 pi / 3)(3 d0^2 t_dist + t_dist^3)", "reaction_rate": "the k of every observed reaction is the macroscopic constant of the rule that fired it: k_mic * V_react for a bimolecular rule (volume per time, so that k [A][B] is the well-stirred rate) and k_mic otherwise", "reactor_volume": 1728.0, "rules": {"grow": {"k_micro": 0.5, "order": 2, "kind": "bind", "ideal_bond_length": 2.0, "reactive_volume": 51.312680008633286, "k_macro": 25.656340004316643}, "grow_rev": {"k_micro": 0.01, "order": 2, "kind": "unbind", "ideal_bond_length": 2.0, "reactive_volume": 51.312680008633286, "k_macro": 0.01}}}, "conservation": [{"name": "elementary molecules of type M", "vector": {"M(a[.],b[.])": 1, "M(a[.],b[1]),M(a[1],b[.])": 2, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 3, "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 4, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])": 4, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])": 5, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])": 8, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])": 5, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])": 6, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])": 9, "M13#2078c4": 13, "M10#df2d2d": 10, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])": 7}}], "species_encoding": "id = structure = canonical site-graph text (colour-refined breadth-first order, sites grouped by name, bonds numbered by appearance), so isomorphic complexes are one species; a complex whose text exceeds 120 characters gets formula#hash", "analysis": {"steps": 1500, "simulated_time": 30.0, "events": 55, "events_by_rule": {"grow": 48, "grow_rev": 7}, "largest_complex": 10, "size_histogram": {"1": 2, "2": 1, "3": 2, "4": 3, "5": 1, "6": 1, "7": 1, "10": 1}, "closed_complexes": 3, "bonds": 41, "final_counts": {"M(a[.],b[.])": 2, "M(a[.],b[1]),M(a[1],b[.])": 1, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 2, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])": 1, "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])": 2, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])": 1, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])": 1, "M10#df2d2d": 1}, "mean_counts": {"M(a[.],b[.])": 2.0654205607476634, "M(a[.],b[1]),M(a[1],b[.])": 2.1588785046728973, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[.])": 2.1121495327102804, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[.])": 0.822429906542056, "M(a[.],b[1]),M(a[1],b[2]),M(a[2],b[3]),M(a[3],b[4]),M(a[4],b[5]),M(a[5],b[.])": 0.6355140186915887, "M(a[1],b[2]),M(a[.],b[1]),M(a[2],b[3]),M(a[3],b[.])": 1.0934579439252337, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[.]),M(a[4],b[3]),M(a[5],b[4]),M(a[6],b[5]),M(a[7],b[6]),M(a[.],b[7])": 0.38317757009345793, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[4],b[3])": 1.8691588785046729, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[5])": 1.0, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[.])": 0.018691588785046728, "M(a[1],b[2]),M(a[3],b[1]),M(a[2],b[4]),M(a[5],b[3]),M(a[4],b[6]),M(a[.],b[5]),M(a[6],b[7]),M(a[7],b[8]),M(a[8],b[.])": 0.205607476635514, "M10#df2d2d": 0.308411214953271, "M13#2078c4": 0.3364485981308411}, "final_state_counts": {}, "mean_state_counts": {}, "mean_refractory": 0.5420560747663551, "mean_squared_displacement": 70.02709604827066, "expected_msd_6Dt": 180.0}}, "chemistry": "srsim", "params": {"model": "polymer", "n_molecules": 50, "n_scaffolds": 10, "bond_angle": 90.0, "k_on": 0.5, "k_off": 0.01, "scaffold_binding": 1.0, "rate_scale": 1.0, "box": 12.0, "steps": 1500, "dt": 0.02, "diffusion": 1.0, "temperature": 1.0, "distance_tolerance": 0.5, "angle_tolerance": 30.0, "refractory_time": 1.0, "k_bond": 5.0, "k_angle": 5.0, "k_repulsion": 5.0, "integrator": "langevin", "orientation": "bound-only", "well_mixed": false, "molecule_types": [], "rules": [], "init": {}}, "seed": 1}