Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

non-negativity in coupled ODE-jump models #1156

Open
isaacsas opened this issue Dec 31, 2024 · 2 comments
Open

non-negativity in coupled ODE-jump models #1156

isaacsas opened this issue Dec 31, 2024 · 2 comments

Comments

@isaacsas
Copy link
Member

One thing we should investigate once the hybrid ODE-jump model support is merged is mechanisms to ensure solutions stay non-negative. If one has a species that is modified by a mix of ODE reactions and jump reactions, there is a possibility of it becoming negative when the population is low (say if the ODE drives the population to less than 1, and then the stochastic reaction occurs). Maybe we just need to attach the appropriate callback by default?

@TorkelE
Copy link
Member

TorkelE commented Dec 31, 2024

I think we discussed this generally as well? #88

I feel there is quite couple of theoretical considerations, so happy wo use whichever approach you think is appropriate. Not sure if it could be made a keyword in the convert (and in extension XProblem) call? I.e. the non-negativity strategy is part of the model itself. The alternative is to attach it as a callback on sovle.

@isaacsas
Copy link
Member Author

I think it is actually more of a (specialized) concern in hybrid models than in ODE models, because the ODEs can lead to states in (0,1), for which the jump reaction can then take you negative the next time it occurs (or propensities for reactions can be negative). Negative jump rates can lead to silent issues. I can think of lots of things we could do to get around this in various ways (set propensities to zero if there is less than one substrate, ensure affect functions can't update to make the population negative), but I'm not sure yet what the best approach to take is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants