Nucleic acid strand displacement compiler
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
nuskell
schemes
scripts
tests
.gitignore
LICENSE
README.md
setup.py

README.md

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 Peppercorn Grun 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.

Examples

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

Translation Schemes

Detailed information about translation schemes can be found in the /schemes directory.

Installation

  $ python setup.py install

or

  $ python setup.py install --user

Documentation

A preview of the documentation for release v1.0 can be found at: documentation.

Version

0.5.1

Authors

  • Seung Woo Shin
  • Qing Dong
  • Robert Johnson
  • Stefan Badelt
  • Erik Winfree

License

MIT

Cite

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)].