sys-bio / roadrunner

libRoadRunner: A high-performance SBML simulator
http://libroadrunner.org/
Other
40 stars 25 forks source link

Non-physical behavior near zero copy number for SSA #215

Closed 0u812 closed 9 years ago

0u812 commented 9 years ago

The Gillespie simulator allows the copy numbers of molecules to go negative, which should not happen.

luciansmith commented 9 years ago

There's no reason to require species to not go negative in the simulator, since some models are modelling things that can actually go negative like charge or debt. A warning is probably appropriate, though. On Oct 11, 2015 9:36 AM, "Kyle Medley" notifications@github.com wrote:

The Gillespie simulator allows the copy numbers of molecules to go negative, which should not happen.

— Reply to this email directly or view it on GitHub https://github.com/sys-bio/roadrunner/issues/215.

0u812 commented 9 years ago

True, but some models like the Mycoplasma whole-cell model apparently rely on the simulation algorithm stopping reactions before the copy number can go negative, so I'll put it behind a config flag.

hsauro commented 9 years ago

In that case its a bad model. The biophysics should be correct so that concentration will naturally not go negative. It means the model is not a good physical representation.

H

On Sun, Oct 11, 2015 at 9:48 AM, Kyle Medley notifications@github.com wrote:

True, but some models like the Mycoplasma whole-cell model apparently rely on the simulation algorithm stopping reactions before the copy number can go negative, so I'll put it behind a config flag.

— Reply to this email directly or view it on GitHub https://github.com/sys-bio/roadrunner/issues/215#issuecomment-147217290.

0u812 commented 9 years ago

Fixed. Python syntax is:

r.setIntegrator('gillespie')
r.getIntegrator().setValue('nonnegative', True)
luciansmith commented 9 years ago

I have to agree that that is a crappy model, and not an issue with the simulator. And in fact, I'm not convinced that adding a special option that makes the simulator behave incorrectly in response is a good solution, as the model will continue to be unexchangeable, and exchangeability is kind of the whole point of SBML, etc.

However, I could see a translator from that crappy model to a slightly better (but still unrealistic) model that converted reaction rates from:

f(x,y)

to:

piecewise(0, S1<=0, f(x,y))

-Lucian

On Sun, Oct 11, 2015 at 10:26 AM, Kyle Medley notifications@github.com wrote:

Closed #215 https://github.com/sys-bio/roadrunner/issues/215 via 8a50677 https://github.com/sys-bio/roadrunner/commit/8a506775b0178444714340dcfc4e1b6888d4a2c1 .

— Reply to this email directly or view it on GitHub https://github.com/sys-bio/roadrunner/issues/215#event-432419371.