SciML / SciML/JumpProcesses.jl
List of SSAs to consider implementing
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 150
- Forks
- 41
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 28
Description
A nice review that summarizes many SSA methods is in [1] Ch. 3.
Some SSAs they we might consider implementing (there are others that could be added that they don't examine):
- Sorting Direct Method (SDM) (McCollum et al, Comp. Biol. and Chem., 30 (2006))
- Next Reaction Method (NRM) (Gibson and Bruck, J. Phys. Chem. A, 104 (9), (2000))
- Table-based NRM (Sanft and Othmer, J. Chem. Phys., 143, 0074108 (2015))
- Direct Method with Composition-Rejection (DM-CR) (Slepoy et al, J. Chem. Phys, 128, (2008))
- Rejection-based SSA (RSSA) See [1]
- RSSA with Composition-Rejection (RSSA-CR) See [1]
- Partial Propensity Direct Method (PDM) (Ramaswamy et al, J. Chem. Phys. 2009)
- PDM combined with Composition-Rejection (PDM-CR) (Ramaswamy et al, J. Chem. Phys. 2010)
- PDM-RSSA, (Thanh, Mathematical Biosciences, 292, 2017)
- FRM-based RSSA? (Maybe something like this which is not accessible).
I included NRM not for its performance, which is often not so great compared to those other methods, but as it is very popular and widely known. It would be good to have a reference implementation.
Many of these share common features, like dependency graphs or jump rate data structures, so we should be able to reuse a number of subcomponents in the methods.
[1] reports large network benchmarks for which RSSA/RSSA-CR and the PDM/PDM-CR give the best performance. (The RSSA methods are by the authors of [1].) [2] compares open source simulators and generally finds that the simulator based on PDM/PDM-CR gives the best performance as the number of molecules and network complexity increases, with BioNetgen coming in second (the latter uses SDM -- but it's not clear exactly why they get such good performance).
[1] Marchetti et al. Simulation Algorithms for Computational Systems Biology, see ch 3.
[2] Gupta and Mendes, An Overview of Network-Based and -Free Approaches for Stochastic Simulation of Biochemical Systems, Computation, 6, 9, 2018.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing SSA implementations and the references listed in the issue, then determine which unchecked method is in scope. The issue names no files or tests; done would require an agreed method, implementation scope, and validation approach.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100