domain-level nucleic acid reaction enumeration
Python Makefile
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples/literature
manuscript
peppercornenumerator
scripts
tests
.gitignore
LICENSE
Makefile
README.md
setup.py

README.md

peppercornenumerator

This package enumerates domain-level strand displacement (DSD) reaction networks assuming low concentrations, where unimolecular reaction pathways always complete before bimolecular reactions initiate. The enumerator can handle arbitrary non-pseudoknotted structures and supports a diverse set of unimolecular and bimolecular domain-level reactions: bind/unbind reactions, 3-way branch-migration and 4-way branch-migration reactions and remote toehold migration. For more background on reaction semantics we refer to the publication Grun et al. (2014).

Installation

$ python setup.py install

or

$ python setup.py install --user

Quickstart using the executable "peppercorn"

Quickstart

Load the file system.pil, write results to system-enum.pil:

$ peppercorn -o system-enum.pil < system.pil

Input/Output format

The following input format is recommended. Sequence-level details may be provided, however they will be ignored during enumeration and rate computation.

# Shohei Kotani and William L. Hughes (2017)
# Multi-Arm Junctions for Dynamic DNA Nanotechnology
# 
# Figure 2A: Single-layer catalytic system with three-arm junction substrates.

length a = long
length b = long
length c = long
length d1s = long
length d2 = long

length T2 = short
length t1 = short # name = 1 in Figure 
length t2 = short # name = 2 in Figure
length t3 = short # name = 3 in Figure

S1 = d1s T2 b( a( t2( + ) ) c*( t1* + ) )
S2 = t1( c( a( + t2* ) b*( d2 t3 + ) ) )
C1 = t1 c a

P1 = t2* a*( c*( t1*( + ) ) )
I1 = d1s T2 b( a t2 + c )
I2 = d1s T2 b( a( t2( + ) ) b*( d2 t3 + ) c*( t1* + ) )

P2 = d1s T2 b( a( t2( + ) ) ) d2 t3
P3 = b( c*( t1* + ) )
$ peppercorn -o system-enum.pil --condensed < system.pil
# File generated by peppercorn-v0.5.0

# Domain Specifications 
length a = 15
length b = 15
length c = 15
length d1s = 15
length d2 = 15
length t1 = 5
length T2 = 5
length t2 = 5
length t3 = 5

# Resting-set Complexes 
C1 = t1 c a 
I1 = d1s T2 b( a t2 + c ) 
P1 = t2* a*( c*( t1*( + ) ) ) 
P2 = d1s T2 b( a( t2( + ) ) ) d2 t3 
P3 = b( c*( t1* + ) ) 
S1 = d1s T2 b( a( t2( + ) ) c*( t1* + ) ) 
S2 = t1( c( a( + t2* ) b*( d2 t3 + ) ) ) 

# Resting-sets 
state rC1 = [C1]
state rI1 = [I1]
state rP1 = [P1]
state rP2 = [P2]
state rP3 = [P3]
state rS1 = [S1]
state rS2 = [S2]

# Condensed Reactions 
reaction [condensed      =      2220.56 /M/s ] rI1 + rP1 -> rS1 + rC1
reaction [condensed      =       756486 /M/s ] rS1 + rC1 -> rI1 + rP1
reaction [condensed      =       221956 /M/s ] rS2 + rI1 -> rP3 + rP2 + rC1

Version

0.5

Authors

Casey Grun, Stefan Badelt, Karthik Sarma, Brian Wolfe, Seung Woo Shin and Erik Winfree.