Nuskell: nucleic acid strand displacement compiler
Nuskell is software framework to compile formal chemical reaction networks
(CRNs) into domain-level strand displacement (DSD) systems. As there are many
ways to do such a translation, we provide a library of translation schemes
(i.e. variations of CRN-to-DSD translations) that the user can select from.
In order to proof/disproof the correctness of a particular translation,
Nuskell includes the domain-level reaction enumeration package
Peppercorn [Badelt et al. (2020)] and the CRN verification package
Peppercorn finds intended and potentially unintended reaction pathways, the crnverifier then checks if the implementation CRN is a correct implementation of the formal CRN using the stochastic trajectory-type CRN correctness notions of bisimulation [Johnson et al. (2019)] and pathway decomposition [Shin et al. (2019)].
Implement a formal CRN using a particular translation-scheme:
$ echo "A + B <=> X + Y; X -> A" | nuskell --ts srinivas2017.ts --verify crn-bisimulation
for options see:
$ nuskell --help
Detailed information about translation schemes can be found in the translation schemes directory.
$ python setup.py install
A preview of the documentation for release v1.0 can be found at: documentation.
0.8 -- basically a complete rewrite, python>=3.8 only.
- nuskell.dsdcompiler is now a subpackage to compile from CRN to DSD.
- crnverifier is now an independent package and therefore a dependency.
- enumeration interface updated to peppercornenumerator-v1.1.
- nuskell now uses the prototype objects provided by the dsdobjects library.
- Stefan Badelt
- Seung Woo Shin
- Robert Johnson
- Qing Dong
- 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)].