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

investigate where auto-alg should switch methods #434

Open
isaacsas opened this issue Aug 6, 2024 · 3 comments
Open

investigate where auto-alg should switch methods #434

isaacsas opened this issue Aug 6, 2024 · 3 comments

Comments

@isaacsas
Copy link
Member

isaacsas commented Aug 6, 2024

#351 adds a default algorithm, but we should follow up and benchmark / examine existing benchmarks to better determine where the switch points between methods should be.

@isaacsas
Copy link
Member Author

isaacsas commented Aug 6, 2024

Relevant benchmarks to look at:

Catalyst paper:
https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1011530

SciMLBenchmarks:
https://docs.sciml.ai/SciMLBenchmarksOutput/stable/

And probably we should cook up some hybrid models and variable rate jump models to test with too.

@Vilin97
Copy link
Contributor

Vilin97 commented Aug 16, 2024

There are several variables that affect the relative performance of SSAs in the order of importance:

  1. Number of reactions in the network. More reactions = worse performance of Direct and better performance of e.g. RSSA-CR (and other more advanced SSAs).
  2. Number of species in the network.
  3. Average number of dependent species and reaction. More dependents (higher average/median degree of the reaction dependency graph) = better performance of RSSA and RSSA-CR.
  4. Ratio between the reaction propensity between the highest and lowest propensity. Low ratio (highest and lowest propensities are similar) = better performance of rejection-based SSAs like RDirect, Direct-CR, RSSA-CR.
  5. Type of reactions (massaction jumps, constant rate, variable rate).

@isaacsas , am I forgetting anything in this list?

Ideally, we would cook up an example of a network that varies one of these dimensions and holds others constant for a fair comparison. One convenient way of cooking up examples is to make a spatial massaction jumps network and use a non-spatial SSA, so that the number of spatial species is proportional to the number of nodes in the spatial graph.

@isaacsas
Copy link
Member Author

That sounds like a good list for what can be examined (more) easily.

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

No branches or pull requests

2 participants