Skip to content
forked from jphuse/nuskell

Nucleic acid strand displacement compiler

License

Notifications You must be signed in to change notification settings

CUT-Labs/nuskell

 
 

Repository files navigation

Nuskell: nucleic acid strand displacement compiler

GitHub tag (latest by date) GitHub release (latest by date) PyPI version PyPI - License Build Status Codecov branch

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

Examples

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

Translation Schemes

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

Installation

  $ python setup.py install

Documentation

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

Version

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.

Authors

  • Stefan Badelt
  • Seung Woo Shin
  • Robert Johnson
  • Qing Dong
  • 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)].

About

Nucleic acid strand displacement compiler

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 63.7%
  • TypeScript 36.3%