It seems to me that there are simply multiple ways to stochastically
simulate an SBML model with units (which, remember, all L2 models had).
You could chunk your stochastic events at the molecular level, or you
could chunk your stochastic events at the molar level. Either one might
be appropriate depending on what you wanted to accomplish. If a tool
wanted to, they could even expose that choice to the user, letting them
set the granularity of the stochastic events to 'molecular' or 'substance
units' or even let them set it to some other unit (you can imagine
tweaking this to decrease the runtime). So, I guess I am voting for both
1 *and* 2 as options, clearly defined for the user (and if your tool only
does one, letting the user know that).
It is a more interesting question what to do in L3, where species do have
units of 'substance' but what 'substance' means in terms of molecules
might be undefined. At that point, the only solution I can see is to drop
the 'molecular' setting and instead only allow 'substance units', or
It does point out that when we get a stochastic test suite up and running,
this 'granularity' setting will be important.
While I agree that reproducibility on different platforms is important, I
also think that the diversity of the various SBML tools is also important.
Some tools do things that no other tool does, and some tools do the same
things, but more efficiently/more precisely/with hooks to different
programming systems than others. This only becomes a problem when a user
thinks they are doing the same thing on two systems, but is actually doing
different things. The main goal of SBML software developmen has to be to
get tools into the hands of users that allow them to do what they need to
do with their models. As both of your programs have a user base, I assume
that there are users who need molecular granularity, and users who need
'substance' granularity. Having two tasks and two programs at least means
that if one does what they want, they can use it. As you say, it would
also be nice to allow more direct comparison of the tools, but the primary
goal has to be allowing users to accomplish modeling tasks, and
secondarily to allow users to accomplish the same modeling task on
different platforms for comparison/verification purposes.
As far as making models that will behave the same on both platforms, you
can do that currently by setting the units of substance to equal 1
molecule. At that point, 'substance granularity' is the same as
* Chris J. Myers <firstname.lastname@example.org> [2011-11-29 19:56] writes:
> Hi All,
> Currently, the SBML specification does not describe how to perform stochastic simulation on an SBML model. This has led to different tools implementing it differently making stochastic models not portable from one tool to another. Therefore, we would like to come up with a precise semantics for stochastic simulation to solve this problem. There is a subtlety though that complicates things. Consider the following model:
> Species A has an initial amount of 1 mole while species B has an initial amount of 0 moles. There is one reaction with A as a reactant and B as a product. The question is what happens to the state when this reaction occurs.
> 1) 1 mole of A is converted into 1 mole of B
> Pro: simple interpretation that is independent of units (namely, units can be dropped without any change in behavior).
> Con: typical interpretation of stochastic formulations is that reactions update molecule counts.
> 2) 1 molecule of A is converted into 1 molecule of B
> Pro: matches the typical interpretation.
> Con: the behavior is no longer independent of units (namely, a unit conversion must be performed implicitly).
> In an implementation of (2), one would need to convert the species initial amounts into units of individual molecule counts. In the case of moles, this would mean multiplying each species by Avogadro's number (6.02e23). If the units are changed to nanoMoles, then a different conversion is necessary.
> So, the question is which is more important:
> 1) Avoiding having implicit unit conversions and having units affect simulation behavior.
> 2) Keeping an individual molecule interpretation of stochastic reactions.
> To manage your sbml-discuss list subscription, visit
> For a web interface to the sbml-discuss mailing list, visit
> For questions or feedback about the sbml-discuss list,
> contact email@example.com
To manage your sbml-discuss list subscription, visit
For a web interface to the sbml-discuss mailing list, visit
For questions or feedback about the sbml-discuss list,