AMICI-dev / AMICI

Advanced Multilanguage Interface to CVODES and IDAS
https://amici.readthedocs.io/
Other
108 stars 30 forks source link

Model import: add option to pass assumptions on parameters and states #1157

Open dweindl opened 4 years ago

dweindl commented 4 years ago

Might be helpful to add an option to pass assumptions on parameters and states during model import that might allow for better symbolic simplifications. (E.g. helpful for #1151)

Might be useful to keep track of those assumptions in the generated model, otherwise one needs to accept potential trouble in case assumptions are violated.

FFroehlich commented 4 years ago

Might be helpful to add an option to pass assumptions on parameters and states during model import that might allow for better symbolic simplifications. (E.g. helpful for #1151)

Might be useful to keep track of those assumptions in the generated model, otherwise one needs to accept potential trouble in case assumptions are violated.

How about implementing functions that automatically check those assumptions at runtime?

dweindl commented 4 years ago

Yes, that's pretty much what I meant. I think otherwise it will be too easy to shoot yourself in the foot.

Also, once such assumptions are supported, this could be easily integrated into PEtab import using parameter bounds for non-fixed parameters, and the used range for fixed parameters.

FFroehlich commented 4 years ago

Yes, that's pretty much what I meant. I think otherwise it will be too easy to shoot yourself in the foot.

Great!

Also, once such assumptions are supported, this could be easily integrated into PEtab import using parameter bounds for non-fixed parameters, and the used range for fixed parameters.

I am a bit worried that this may make simulations dependent on parameter boundaries, which might lead to weird effects that are potentially really hard to track down. At the same time models where this occurs are probably problematic anyways.

FFroehlich commented 4 years ago

Assuming strict positivity based on log-transformsof parameters probably has the biggest effect, not sure whether ranges are that important.