-
Notifications
You must be signed in to change notification settings - Fork 2
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
Simulation experiments on logical models #8
Comments
In my opinion, the existing SED-ML constructs are sufficient to capture simulations of logical models. For example, we now have BoolNet working with SBML-qual, SED-ML, and multiple logical simulation algorithms. This uses SED-ML uniformTimeCourse, a new KiSAO terms for an additional algorithm, and new KiSAO terms for parameters. To make it work within the current structure of SED-ML, we used JSON to encode the value of 1 parameter into SED-ML. This demonstrates that SED-ML can be used with logical simulations, or any other formalism. For portability between simulation tools, the community needs to align on the data types for these parameters. With BioSimulators, we've created a space for the community to share this information. While simulations of other formalisms can be encoded into SED-ML, SED-ML could provide more direct support for other formalisms. The advantages would be a cleaner XML encoding and more ability to validate descriptions of simulations at the SED-ML format level. However, I don't think these are strong advantages. SED-ML files are already not particularly easy for humans to read. Trying to make them more human readable would add minor value. Second, simulation experiments generally require more validation beyond whether they adhere to the syntax of SED-ML. Adding SED-ML classes for domain-specific simulations wouldn't eliminate the need for simulation tools to validate simulation experiments. I think there is a need to make SED-ML easier to use for other domains. However, I would not suggest that SED-ML try to add extensions for specific domains as proposed in the above link. Basically, the document above proposes a high barrier to entry for new domains, which will prevent their adoption of SED-ML.
Instead, I think there's a simpler and easier way to support additional domains
|
Is there anything that needs to be updated in the spec itself to make this work, insofar as it currently works at all? |
The specifications could (a) note that tools are free to be more restrictive than the SED-ML schema (i.e. only support integer-valued time courses) and point to an example (can be external to the specifications). I can share an example. The example would also be an example of how to properly deal with multiple namespacea. In my opinion, the other information needed for logical simulations has to get encoded into either model changes or algorithm parameters. This is the same as for kinetic models. |
The decision at the 6/16/21 Editor's Meeting was to create a generic 'Algorithm' class to allow this and other options. |
New text: "2.2.6.4 Analysis
Listing 2.41: The SED-ML analysis element, defining a reachability analysis of a logical model." I made up KiSAO term 972; once a real KiSAO term is created that would make a good example, this should be switched. |
One concrete example is a network free simulation (KISAO_0000263) with BioNetGen with a stop condition (KISAO_0000525) algorithm parameter. This would be better encoded with the new class because the simulation length is not known ahead of time. To work well, we'll need more KiSAO terms for initial time, output start time, etc. See SED-ML/KiSAO#96. Another example is a discrete event simulation with Smoldyn (KISAO_0000057) where output should be observed at each event rather than fixed, predetermined time intervals. |
Can you give me XML for the 'analysis' of those two examples? |
The two I mentioned are below. A third is an integration with OpenCOR over a variable other than time (currently OpenCOR+SED-ML treats this with UniformTimeCourse even though there's no time involved). There's only a small amount of work required to make all of these work. A concrete logical modeling example could be added once KiSAO terms are created. Simulate a time course until a stop condition becomes trueSimulation tool: BioNetGen <listOfSimulations>
<analysis id="time_course_to_stop_condition">
<algorithm kisaoID="KISAO:0000263">
<algorithmParameter kisaoID="KISAO:0000525" value="ObsA>9"/>
</algorithm>
</analysis >
</listOfSimulations> This isn't quite fully defined because there's no KiSAO term for maximum simulation length yet. To work more similarly to UniformTimeCourse with options for start time, output start time, and observed step size (different from integration step size), 3 more KiSAO terms need to be added. Simulate a time course and observe each eventSimulation tool: Smoldyn <listOfSimulations>
<analysis id="non_uniform_time_course">
<algorithm kisaoID="KISAO:0000057">
</algorithm>
</analysis >
</listOfSimulations> Similarly, fully specifying this requires another KiSAO term for simulation length. ODE integration over a variable other than timeSimulation tool: OpenCOR <listOfSimulations>
<analysis id="integration_over_non_time_variable">
<algorithm kisaoID="KISAO:0000019">
</algorithm>
</analysis >
</listOfSimulations> Again, fully specifying this requires a maximum integration value (analogous to the role of UniformTimeCouse.outputEndTime). |
Topic
This proposal covers logical models.
Proposal
A proposal draft for SEDML to cover models encoded in SBML Qual was written up:
This is available at
https://github.com/SED-ML/sed-ml/blob/master/specification/proposals/SEDMLextensionforSBMLQual.pdf
The text was updated successfully, but these errors were encountered: