Nuskell: Nucleic acid strand displacement compiler
Nuskell compiles formal chemical reaction networks (CRNs) into domain-level
strand displacement (DSD) systems. It provides a library of
translation schemes (i.e. variations of CRN-to-DSD translations) to exploit the diversity
of DSD circuits implementing the same CRN.
In order to proof/disproof the correctness of a particular translation,
Nuskell includes the domain-level reaction enumerator
et al. (2014) to find intended and unintended reaction pathways and then
provides two notions of stochastic trajectory-type CRN equivalence:
bisimulation Johnson et al. (2016) and pathway decomposition Shin et al. (2014).
The domain-level reactions and their approximate rates can be exported in form of an ODE system to simulate the dynamics of the compiled DSD network.
Implement a formal CRN using a particular translation-scheme:
$ echo "A + B <=> X + Y; X -> A" | nuskell --ts scheme.ts --verify modular-bisimulation
for options see:
$ nuskell --help
Detailed information about translation schemes can be found in the
$ python setup.py install
$ python setup.py install --user
A preview of the documentation for release v1.0 can be found at: documentation.
- Seung Woo Shin
- Qing Dong
- Robert Johnson
- Stefan Badelt
- Erik Winfree
Stefan Badelt, Seung Woo Shin, Robert F. Johnson, Qing Dong, Chris Thachuk, and Erik Winfree (2017) "A General-Purpose CRN-to-DSD Compiler with Formal Verification, Optimization, and Simulation Capabilities" [Badelt et al. (2017)].