SED-ML / KiSAO

Ontology of algorithms for analyzing biological models, their parameters, and their outputs
Artistic License 2.0
9 stars 0 forks source link

Request: New base 'simulate in time' algorithm #109

Closed luciansmith closed 1 year ago

luciansmith commented 1 year ago

Right now, there's no base term for both LSODA-like and CVODE-like algorithms. They are different from each other, but if one simulator uses one of them, a different simulator could probably use the other and obtain largely similar results.

This is in contrast to the other children of the 'modeling and simulation algorithm' base class that contains things like steady state solvers, or logical modeling analyses.

I think in general, the children of the 'modeling and simulation algorithm' term should be groups of algorithms that all take the same basic input and produce the same basic output.

Right now with SED-ML, it's the UniformTimeCourse' class itself that is fulfilling this role: if a UniformTimeCourse object has an LSODA KiSAO term, the simulator knows it can probably use CVODE instead. But for the 'Analysis' class, this is no longer the case: if you wanted to define (say) a time course with no set end time, but instead a set number of variable steps, you would have to pick either LSODA or CVODE as your base , and there would be no programmatic way for another simulator to know they could probably use the other branch.

jonrkarr commented 1 year ago

This information is encoded using characteristics, rather than the parent-child hierarchy. As I understand, this was by design to enable KiSAO to more flexibly capture information than what's possible with just parent-child relationships.

luciansmith commented 1 year ago

Ah, that makes sense. However, I would still like a 'time course' KiSAO term, because then I can create more generic SED-ML files for the Analysis class (and the UniformTimeCourse class).

jonrkarr commented 1 year ago

Time is not a special quantity to these algorithms. This is a mismatch between SED-ML UniformTimeCourse (where the variable of integration can only be time) and KiSAO (where the variable of integration can have any semantic meaning). While time is often the variable of integration, time is not always the variable of integration. In other words, time or time course is not a characteristic of these algorithms. If this information is encoded into KiSAO, it should encoded in a way that conveys that the variable of integration can, but does not have to be, time.

luciansmith commented 1 year ago

Sure, that works. And then you could specify that you were integrating over time with a child term.