Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add smoldyn model #79

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added examples/smoldyn/Andrews-Min1-PUBLICATION.omex
Binary file not shown.
6 changes: 6 additions & 0 deletions examples/smoldyn/Andrews-Min1-PUBLICATION/manifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<omexManifest xmlns="http://identifiers.org/combine.specifications/omex-manifest">
<content location="model.txt" format="http://purl.org/NET/mediatypes/text/smoldyn+plain" master="false"/>
<content location="simulation.sedml" format="http://identifiers.org/combine.specifications/sed-ml" master="true"/>
<content location="metadata.rdf" format="http://identifiers.org/combine.specifications/omex-metadata" master="false"/>
</omexManifest>
57 changes: 57 additions & 0 deletions examples/smoldyn/Andrews-Min1-PUBLICATION/metadata.rdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.1" encoding="utf-8"?>
<rdf:RDF xmlns:OMEXlib="http://omex-library.org/"
xmlns:bqbiol="http://biomodels.net/biology-qualifiers/"
xmlns:bqmodel="http://biomodels.net/model-qualifiers/"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:local="http://omex-library.org/NewOmex.omex/NewModel.rdf#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://omex-library.org/Min1.omex">
<bqmodel:is rdf:resource="local:00003"/>
<bqmodel:isDescribedBy rdf:resource="local:00004"/>
<ns1:abstract xmlns:ns1="http://purl.org/dc/elements/1.1/">
E. coli Min system, based on Huang, Meir, Wingreen (HMW) with surface diffusion.

Motivation: Smoldyn is a spatial and stochastic biochemical simulator.
It treats each molecule of interest as an individual particle in continuous space,
simulating molecular diffusion, molecule-membrane interactions and chemical reactions,
all with good accuracy.
</ns1:abstract>
<ns2:contributor xmlns:ns2="http://purl.org/dc/elements/1.1/"
rdf:resource="local:00002"/>
<ns3:created xmlns:ns3="http://purl.org/dc/elements/1.1/">2024-01-15</ns3:created>
<ns4:creator xmlns:ns4="http://purl.org/dc/elements/1.1/"
rdf:resource="local:00001"/>
<ns5:license xmlns:ns5="http://purl.org/dc/elements/1.1/"
rdf:resource="local:00005"/>
<ns6:modified xmlns:ns6="http://purl.org/dc/elements/1.1/">2024-02-05</ns6:modified>
<ns7:title xmlns:ns7="http://purl.org/dc/elements/1.1/">E. coli Min system based on Huang, Meir, Wingreen (Andrews, 2009)</ns7:title>
</rdf:Description>
<rdf:Description rdf:about="local:00001">
<ns8:label xmlns:ns8="http://www.w3.org/2000/01/rdf-schema#">Steven Andrews</ns8:label>
<foaf:name>Steven Andrews</foaf:name>
</rdf:Description>
<rdf:Description rdf:about="local:00002">
<ns9:identifier xmlns:ns9="http://purl.org/dc/elements/1.1/"
rdf:resource="http://identifiers.org/orcid:0009-0002-6886-2291"/>
<ns10:label xmlns:ns10="http://www.w3.org/2000/01/rdf-schema#">Alex Patrie</ns10:label>
<foaf:accountName rdf:resource="https://orcid.org/0009-0002-6886-2291"/>
<foaf:name>Alex Patrie</foaf:name>
</rdf:Description>
<rdf:Description rdf:about="local:00003">
<ns11:identifier xmlns:ns11="http://purl.org/dc/elements/1.1/"
rdf:resource="https://github.com/ssandrews/Smoldyn/blob/master/examples/S99_more/Min/Min1.txt"/>
<ns12:label xmlns:ns12="http://www.w3.org/2000/01/rdf-schema#">smoldyn:S99_more/Min/Min1.txt</ns12:label>
</rdf:Description>
<rdf:Description rdf:about="local:00004">
<ns13:identifier xmlns:ns13="http://purl.org/dc/elements/1.1/"
rdf:resource="http://identifiers.org/doi:10.1093/bioinformatics/btw700"/>
<ns14:label xmlns:ns14="http://www.w3.org/2000/01/rdf-schema#">Steven S Andrews. Smoldyn: particle-based simulation with rule-based modeling, improved molecular interaction and a library interface. Bioinformatics 33, 5 (2017).</ns14:label>
</rdf:Description>
<rdf:Description rdf:about="local:00005">
<ns15:identifier xmlns:ns15="http://purl.org/dc/elements/1.1/"
rdf:resource="http://identifiers.org/spdx:GPL-3.0-only"/>
<ns16:label xmlns:ns16="http://www.w3.org/2000/01/rdf-schema#">GPL-3.0-only</ns16:label>
</rdf:Description>
</rdf:RDF>

115 changes: 115 additions & 0 deletions examples/smoldyn/Andrews-Min1-PUBLICATION/model.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# File Min1.txt, by Steve Andrews, 11/2009.
# E. coli Min system, based on Huang, Meir, Wingreen (HMW)
# This file is HMW system exactly, plus surface diffusion
# units are micron, second

define D_D 2.5 # MinD diffusion coefficient (um^2/s)
define D_E 2.5 # MinE diffusion coefficient (um^2/s)
define D_d 0.01 # MinD_ATP(front) diff. coeff. (um^2/s)
define D_de 0.01 # MinDMinE(front) diff. coeff. (um^2/s)
define SIGMA_D_D2T 1 # MinD phosphorylation rate (s^-1)
define SIGMA_D 0.025 # MinD_ATP adsorption coeff. (um/s)
define SIGMA_dD 0.0015 # cooperative adsorption coeff. (um^3/s)
define SIGMA_de 0.7 # desorption rate of MinDMinE (s^-1)
define SIGMA_E 0.093 # MinE binding to surface-bound MinD (um^3/s)

define UNBINDRAD 0.01 # MinD separation on surface (um)

define R 0.5 # cell radius
define L_PARAM 2 # half of cell length
define L_PARAM2 1.5 # half of cell length minus radius

define NUMBER_MIND 4000 # number of MinD in cell
define NUMBER_MINE 1400 # number of MinE in cell

define TIME_STOP 10 # stopping time

#define KICK_START 1 # start with MinD_ATP at an end

random_seed 1

#graphics opengl
#graphic_iter 100

#tiff_name movie/MinMovie
#tiff_iter 200
#tiff_min 1
#tiff_max 200

dim 3
boundaries 0 -L_PARAM L_PARAM
boundaries 1 -R R
boundaries 2 -R R
frame_thickness 0
time_start 0
time_stop TIME_STOP
time_step 0.002 # 2 millisecond time step

accuracy 5
molperbox 4

species MinD_ATP
species MinD_ADP
species MinE
species MinDMinE

molecule_lists list1 list2 list3 list4 list5
mol_list MinD_ATP(soln) list1
mol_list MinD_ATP(front) list2
mol_list MinD_ADP(all) list3
mol_list MinE(all) list4
mol_list MinDMinE(all) list5

difc MinD_ATP(solution) D_D
difc MinD_ATP(front) D_d
difc MinD_ADP(solution) D_D
difc MinE(solution) D_E
difc MinDMinE(front) D_de

color MinD_ATP(soln) 0 0 0.6 # MinD_ATP(solution) is dark blue
color MinD_ATP(front) 0 0.6 0 # MinD_ATP(front) is dark green
color MinD_ADP(soln) 0.4 0.6 1 # MinD_ADP is light blue
color MinE(soln) 1 0 0 # MinE is red
color MinDMinE(front) 0.2 1 0.2 # MinDMinE is bright green
display_size all(solution) 2
display_size all(front) 4

start_surface membrane
action both all reflect
rate MinD_ATP fsoln front SIGMA_D # reaction 1a
polygon both edge
panel cylinder -L_PARAM2 0 0 L_PARAM2 0 0 -R 20 10 cyl0
panel hemi -L_PARAM2 0 0 -R 1 0 0 20 5 hemi0
panel hemi L_PARAM2 0 0 -R -1 0 0 20 5 hemi1
neighbors cyl0 hemi0 hemi1
neighbors hemi0 cyl0
neighbors hemi1 cyl0
end_surface

start_compartment cell
surface membrane
point 0 0 0
end_compartment

reaction rxn1b MinD_ATP(fsoln) + MinD_ATP(front) -> MinD_ATP(front) + MinD_ATP(front) SIGMA_dD
product_placement rxn1b unbindrad UNBINDRAD
reaction rxn1c MinD_ATP(fsoln) + MinDMinE(front) -> MinD_ATP(front) + MinDMinE(front) SIGMA_dD
product_placement rxn1c unbindrad UNBINDRAD
reaction rxn2 MinE(fsoln) + MinD_ATP(front) -> MinDMinE(front) SIGMA_E
reaction rxn3 MinDMinE(front) -> MinD_ADP(fsoln) + MinE(fsoln) SIGMA_de
reaction rxn4 MinD_ADP -> MinD_ATP SIGMA_D_D2T

ifundefine KICK_START
surface_mol NUMBER_MIND MinD_ATP(front) membrane all all
else
surface_mol NUMBER_MIND MinD_ATP(front) membrane hemi hemi1
endif
compartment_mol NUMBER_MINE MinE cell


output_files modelout.txt
cmd i 0 TIME_STOP 2 executiontime modelout.txt
cmd i 0 TIME_STOP 2 listmols modelout.txt

end_file

147 changes: 147 additions & 0 deletions examples/smoldyn/Andrews-Min1-PUBLICATION/simulation.sedml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
<sedML xmlns="http://sed-ml.org/sed-ml/level1/version3" level="1" version="3">
<listOfModels>
<model id="model" language="urn:sedml:language:smoldyn" source="model.txt"/>
</listOfModels>
<listOfSimulations>
<uniformTimeCourse id="simulation" initialTime="0" outputStartTime="0" outputEndTime="10" numberOfPoints="5000">
<algorithm kisaoID="KISAO:0000057"/>
</uniformTimeCourse>
</listOfSimulations>
<listOfTasks>
<task id="task" modelReference="model" simulationReference="simulation"/>
</listOfTasks>
<listOfDataGenerators>
<dataGenerator id="data_generator_time" name="Time">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_time </ci>
</math>
<listOfVariables>
<variable id="variable_time" name="Time" symbol="urn:sedml:symbol:time" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinD_ADP" name="Count of species &quot;MinD_ADP&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinD_ADP </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinD_ADP" name="Count of species &quot;MinD_ADP&quot;" target="molcount MinD_ADP" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinD_ADP_compartment_cell" name="Count of species &quot;MinD_ADP&quot; in compartment &quot;cell&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinD_ADP_compartment_cell </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinD_ADP_compartment_cell" name="Count of species &quot;MinD_ADP&quot; in compartment &quot;cell&quot;" target="molcountincmpt MinD_ADP cell" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinD_ADP_surface_membrane" name="Count of species &quot;MinD_ADP&quot; in surface &quot;membrane&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinD_ADP_surface_membrane </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinD_ADP_surface_membrane" name="Count of species &quot;MinD_ADP&quot; in surface &quot;membrane&quot;" target="molcountonsurf MinD_ADP membrane" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinD_ATP" name="Count of species &quot;MinD_ATP&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinD_ATP </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinD_ATP" name="Count of species &quot;MinD_ATP&quot;" target="molcount MinD_ATP" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinD_ATP_compartment_cell" name="Count of species &quot;MinD_ATP&quot; in compartment &quot;cell&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinD_ATP_compartment_cell </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinD_ATP_compartment_cell" name="Count of species &quot;MinD_ATP&quot; in compartment &quot;cell&quot;" target="molcountincmpt MinD_ATP cell" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinD_ATP_surface_membrane" name="Count of species &quot;MinD_ATP&quot; in surface &quot;membrane&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinD_ATP_surface_membrane </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinD_ATP_surface_membrane" name="Count of species &quot;MinD_ATP&quot; in surface &quot;membrane&quot;" target="molcountonsurf MinD_ATP membrane" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinDMinE" name="Count of species &quot;MinDMinE&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinDMinE </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinDMinE" name="Count of species &quot;MinDMinE&quot;" target="molcount MinDMinE" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinDMinE_compartment_cell" name="Count of species &quot;MinDMinE&quot; in compartment &quot;cell&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinDMinE_compartment_cell </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinDMinE_compartment_cell" name="Count of species &quot;MinDMinE&quot; in compartment &quot;cell&quot;" target="molcountincmpt MinDMinE cell" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinDMinE_surface_membrane" name="Count of species &quot;MinDMinE&quot; in surface &quot;membrane&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinDMinE_surface_membrane </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinDMinE_surface_membrane" name="Count of species &quot;MinDMinE&quot; in surface &quot;membrane&quot;" target="molcountonsurf MinDMinE membrane" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinE" name="Count of species &quot;MinE&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinE </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinE" name="Count of species &quot;MinE&quot;" target="molcount MinE" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinE_compartment_cell" name="Count of species &quot;MinE&quot; in compartment &quot;cell&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinE_compartment_cell </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinE_compartment_cell" name="Count of species &quot;MinE&quot; in compartment &quot;cell&quot;" target="molcountincmpt MinE cell" taskReference="task"/>
</listOfVariables>
</dataGenerator>
<dataGenerator id="data_generator_count_species_MinE_surface_membrane" name="Count of species &quot;MinE&quot; in surface &quot;membrane&quot;">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> variable_count_species_MinE_surface_membrane </ci>
</math>
<listOfVariables>
<variable id="variable_count_species_MinE_surface_membrane" name="Count of species &quot;MinE&quot; in surface &quot;membrane&quot;" target="molcountonsurf MinE membrane" taskReference="task"/>
</listOfVariables>
</dataGenerator>
</listOfDataGenerators>
<listOfOutputs>
<report id="report">
<listOfDataSets>
<dataSet id="time" name="Time" label="Time" dataReference="data_generator_time"/>
<dataSet id="count_species_MinD_ADP" name="Count of species &quot;MinD_ADP&quot;" label="Count of species &quot;MinD_ADP&quot;" dataReference="data_generator_count_species_MinD_ADP"/>
<dataSet id="count_species_MinD_ADP_compartment_cell" name="Count of species &quot;MinD_ADP&quot; in compartment &quot;cell&quot;" label="Count of species &quot;MinD_ADP&quot; in compartment &quot;cell&quot;" dataReference="data_generator_count_species_MinD_ADP_compartment_cell"/>
<dataSet id="count_species_MinD_ADP_surface_membrane" name="Count of species &quot;MinD_ADP&quot; in surface &quot;membrane&quot;" label="Count of species &quot;MinD_ADP&quot; in surface &quot;membrane&quot;" dataReference="data_generator_count_species_MinD_ADP_surface_membrane"/>
<dataSet id="count_species_MinD_ATP" name="Count of species &quot;MinD_ATP&quot;" label="Count of species &quot;MinD_ATP&quot;" dataReference="data_generator_count_species_MinD_ATP"/>
<dataSet id="count_species_MinD_ATP_compartment_cell" name="Count of species &quot;MinD_ATP&quot; in compartment &quot;cell&quot;" label="Count of species &quot;MinD_ATP&quot; in compartment &quot;cell&quot;" dataReference="data_generator_count_species_MinD_ATP_compartment_cell"/>
<dataSet id="count_species_MinD_ATP_surface_membrane" name="Count of species &quot;MinD_ATP&quot; in surface &quot;membrane&quot;" label="Count of species &quot;MinD_ATP&quot; in surface &quot;membrane&quot;" dataReference="data_generator_count_species_MinD_ATP_surface_membrane"/>
<dataSet id="count_species_MinDMinE" name="Count of species &quot;MinDMinE&quot;" label="Count of species &quot;MinDMinE&quot;" dataReference="data_generator_count_species_MinDMinE"/>
<dataSet id="count_species_MinDMinE_compartment_cell" name="Count of species &quot;MinDMinE&quot; in compartment &quot;cell&quot;" label="Count of species &quot;MinDMinE&quot; in compartment &quot;cell&quot;" dataReference="data_generator_count_species_MinDMinE_compartment_cell"/>
<dataSet id="count_species_MinDMinE_surface_membrane" name="Count of species &quot;MinDMinE&quot; in surface &quot;membrane&quot;" label="Count of species &quot;MinDMinE&quot; in surface &quot;membrane&quot;" dataReference="data_generator_count_species_MinDMinE_surface_membrane"/>
<dataSet id="count_species_MinE" name="Count of species &quot;MinE&quot;" label="Count of species &quot;MinE&quot;" dataReference="data_generator_count_species_MinE"/>
<dataSet id="count_species_MinE_compartment_cell" name="Count of species &quot;MinE&quot; in compartment &quot;cell&quot;" label="Count of species &quot;MinE&quot; in compartment &quot;cell&quot;" dataReference="data_generator_count_species_MinE_compartment_cell"/>
<dataSet id="count_species_MinE_surface_membrane" name="Count of species &quot;MinE&quot; in surface &quot;membrane&quot;" label="Count of species &quot;MinE&quot; in surface &quot;membrane&quot;" dataReference="data_generator_count_species_MinE_surface_membrane"/>
</listOfDataSets>
</report>
<plot2D id="Figure" name="Figure">
<listOfCurves>
<curve id="curve_MinD_ADP" name="MinD_ADP" xDataReference="data_generator_time" yDataReference="data_generator_count_species_MinD_ADP"/>
<curve id="curve_MinE" name="MinE" xDataReference="data_generator_time" yDataReference="data_generator_count_species_MinE"/>
<curve id="curve_MinD_ATP" name="MinD_ATP" xDataReference="data_generator_time" yDataReference="data_generator_count_species_MinD_ATP"/>
<curve id="curve_MinDMinE" name="MinDMinE" xDataReference="data_generator_time" yDataReference="data_generator_count_species_MinDMinE"/>
</listOfCurves>
</plot2D>
</listOfOutputs>
</sedML>