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).
$ python setup.py install
$ python setup.py install --user
Quickstart using the executable "peppercorn"
Load the file
system.pil, write results to
$ peppercorn -o system-enum.pil < system.pil
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
Casey Grun, Stefan Badelt, Karthik Sarma, Brian Wolfe, Seung Woo Shin and Erik Winfree.