Statecharts: A visual formalism for complex systems
Science of Computer Programming
Information Processing Letters
BioAmbients: an abstraction for biological compartments
Theoretical Computer Science - Special issue: Computational systems biology
Theoretical Computer Science
Modelling and simulation of biological processes in BlenX
ACM SIGMETRICS Performance Evaluation Review
A Language for Biochemical Systems
CMSB '08 Proceedings of the 6th International Conference on Computational Methods in Systems Biology
An Abstract Machine for the Stochastic Bioambient calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient, correct simulation of biological processes in the stochastic pi-calculus
CMSB'07 Proceedings of the 2007 international conference on Computational methods in systems biology
Scalable simulation of cellular signaling networks
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Abstract interpretation of cellular signalling networks
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
A generic abstract machine for stochastic process calculi
Proceedings of the 8th International Conference on Computational Methods in Systems Biology
Modelling, simulating and verifying turing-powerful strand displacement systems
DNA'11 Proceedings of the 17th international conference on DNA computing and molecular programming
CMSB'04 Proceedings of the 20 international conference on Computational Methods in Systems Biology
Rule-based modelling of cellular signalling
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Hi-index | 5.23 |
Numerous programming languages based on process calculi have been developed for biological modelling, many of which can generate potentially unbounded numbers of molecular species and reactions. As a result, such languages cannot rely on standard reaction-based simulation methods, and are generally implemented using custom stochastic simulation algorithms. As an alternative, this paper proposes a generic abstract machine that can be instantiated to simulate a range of process calculi using a range of simulation methods. The abstract machine functions as a just-in-time compiler, which dynamically updates the set of possible reactions and chooses the next reaction in an iterative cycle. We instantiate the generic abstract machine with two Markovian simulation methods and provide encodings for four process calculi: the agent-based pi-calculus, the compartment-based bioambient calculus, the rule-based kappa calculus and the domain-specific DNA strand displacement calculus. We present a generic method for proving that the encoding of an arbitrary process calculus into the abstract machine is correct, and we use this method to prove the correctness of all four calculus encodings. Finally, we demonstrate how the generic abstract machine can be used to simulate heterogeneous models in which discrete communicating sub-models are written using different domain-specific languages and then simulated together. Our approach forms the basis of a multi-language environment for the simulation of heterogeneous biological models.