HARMONY proposal #1: new KiSAO terms for multiple algorithms in one SED-ML file

7 views
Skip to first unread message

Lucian Smith

unread,
May 2, 2023, 4:41:05 PM5/2/23
to sed-ml-editors, sed-ml-...@googlegroups.com
Hey, everyone!  At HARMONY, we discussed how best to encode information in a SED-ML file so it could contain information about the algorithm parameters for multiple algorithms.  We talked about how we might do it just in KiSAO (which seemed sort of hacky, but could be done without a change to the SED-ML spec) vs. changing the spec slightly to allow it (which would be 'cleaner', but would necessitate a spec change).

After thinking about it, I think I have a way to do it in KiSAO that seems less hacky, at least to me, and I'd love to hear people's feedback on it.

Basically, we would add two new KiSAO terms:

#1:  "ODE Solver":  This would be (in essence) the parent of both LSODA and CVODE.  It would be used for any model experiment where the particular solver used shouldn't matter to the results.  This would do for uniform time course what term 407 ('steady state solver') does for the steady state simulation.

#2:  "Parameters For":  This could be used as a child of any KiSAO term that had a more specific child term (i.e. 'ODE Solver" -> 'CVODE' or 'steady state solver' -> 'NLEQ1').  Its value would be the more specific term, and its children would be the parameters to apply when using that more specific version.  

Here's an outline of these terms in use:

Algorithm:  ODE Solver
    Relative Tolerance:  1e-6
    ParametersFor: CVODE
          stiff: True
    ParametersFor: LSODA
          Max internal steps:  10000

Or, in XML form (with 991==#1, 992=#2):

    <uniformTimeCourse id="sim1" initialTime="0" outputStartTime="0" outputEndTime="12000" numberOfSteps="1000">
      <algorithm name="ODE Solver" kisaoID="KISAO_0000991">
        <listOfAlgorithmParameters>
          <algorithmParameter name="Relative Tolerance" kisaoID="KISAO:0000209" value="1e-06"/>
          <algorithmParameter name="Parameters For" kisaoID="KISAO:0000993" value="KISAO:0000019">
            <listOfAlgorithmParameters>
              <algorithmParameter name="use stiff method" kisaoID="KISAO:0000671" value="True"/>
            </listOfAlgorithmParameters>
          </algorithmParameter>
          <algorithmParameter name="Parameters For" kisaoID="KISAO:0000993" value="KISAO:0000560">
            <listOfAlgorithmParameters>
              <algorithmParameter name="Max Internal Steps" kisaoID="KISAO:0000415" value="10000"/>
            </listOfAlgorithmParameters>
          </algorithmParameter>
        </listOfAlgorithmParameters>
      </algorithm>
    </uniformTimeCourse>

Lucian Smith

unread,
May 24, 2023, 3:17:56 PM5/24/23
to sed-ml-editors, sed-ml-...@googlegroups.com
These are now implemented in KiSAO, as 694 for 'ODE Solver' (with 'CVODE-like method', 'Livermore solver' and 'one-step method' moved to be children of it), and 695 as 'parameters for'.  I managed to at least partially create a release for it using the github actions Jonathan Karr set up; unfortunately, some of them now fail because the systems the actions relied on have changed.  But it did at least get uploaded to bioportal (unlike the last release, for some reason.)

The next step is to actually implement support for those terms in our various SED-ML interpreters.  I'm working on this for Tellurium and Biosimulations, and will file an issue for Copasi; are there other SED-ML interpreters out there that need to know about this sort of change?

-Lucian
Reply all
Reply to author
Forward
0 new messages