CellML Discussion List

Text archives Help


[cellml-discussion] Leftover thoughts from the CellML workshop


Chronological Thread 
  • From: lpsmith at spod-central.org (Lucian Smith)
  • Subject: [cellml-discussion] Leftover thoughts from the CellML workshop
  • Date: Tue, 16 Mar 2010 22:02:31 +0000

(Whoops, I meant to send this to the list, but replied directly to Poul
instead...)

----- Forwarded message from Lucian Smith <lpsmith at spod-central.org> -----

A couple follow-up thoughts:

* Poul Nielsen <p.nielsen at auckland.ac.nz> [2010-03-11 03:28] writes:
> Dear Lucian
>
> Many thanks for your participation in the CellML workshop and subsequent
> comments.
>
> On 2010-02-27, at 08:43, Lucian Smith wrote:
>
> > CellML 1.2:
> > One thing I noticed was the claim that events could be stored in
> > CellML as piecewise formulas. I'm pretty sure that won't be the case
> > with
> > SBML events, which are 'fire once' events instead of 'true while' events.
> >
> > Maybe one could come up with a piecewise hack to store SBML events, but
> > if
> > a goal is to become more amenable to SBML-translated models, you might
> > want to think about how best to translate SBML events. Or maybe I'm
> > wrong
> > and there's already a way to do it?
> > Another thing I noticed was a reluctance to add too many new features
> > to the language in the fear that interpreters might not be able or
> > willing
> > to handle them. One way to mitigate this would be to allow models to
> > claim somewhere in the header whether the model required that feature or
> > not--an interpreter could then more cleanly note whether it was able to
> > correctly interpret a given model, while still being able to interpret
> > other 1.2 models.
>
> I don't think the goal is necessarily to become more amenable to
> SBML-translated models. What we are most strongly motivated by is to
> come up with simple, powerful generic mechanisms for representing events
> and behaviours that depend on them. I would value your thoughts on why
> piecewise representations are insufficient for handling events.

Certainly I don't think SBML translation is *the* goal of CellML 1.2, I
just posited that it might be *a* goal.

Piecewise functions say "while (condition), the following is always true".
SBML events say "when (condition) becomes true, set the following to be
true at that instant, and let it change after that."

Depending on the nature of the condition, these can be very different
beasts. As an example, you could have a species X controlled by various
reactions, and at regular intervals, it's being injected into the system
(daily feeding, say). An SBML event would just say something like 'when
time is a multiple of 24, X = X+5'. A piecewise function would have to
incorporate that event into all the other things that change X. It might
be possible, but the resulting expression will probably be very
complicated. And it might be impossible to write any sort of automatic
translator that translated SBML events to CellML.

At the core, SBML events allow you to separate 'the sort of math the
normally happens to these variables' from 'these things happen every so
often, and the model adjusts accordingly'. If you require those two
things to be mushed together into piecewise functions, I *think* you could
probably end up with a function that produced the same output (though
there might be some counter-examples), but it would be complicated. I'm
not saying you definitely should add SBML-style events to CellML, but the
tradeoff is simplicity for interpreters if you leave it as-is vs.
simplicity for modelers if you add some new construct.

-Lucian




Archive powered by MHonArc 2.6.18.

Top of page