Design small conditional RNAs (scRNAs) for conditional Dicer substrate formation (Hochrein et al., J Am Chem Soc, 2013; see Figure 3).
See the accompanying design specification (PDF files). See also the LaTeX spec file that you can edit to make your own design specs in a standardized format.
This is a 2-step reaction. To design N orthogonal scRNA systems, there are 3 elementary step tubes per system plus 1 global crosstalk tube.
Target test tubes:
Material: RNA
Temperature: 23 C
# Import Python NUPACK module
from nupack import *
# Define physical model
my_model = Model(material='rna', celsius=37)
# Set number of orthogonal systems
systems = 2
# Initialize working variables
crosstalk_targets = {}
crosstalk_excludes = []
step_tubes = []
# Loop over orthogonal systems
for i in range(systems):
# Define sequence domains
a = Domain('N6', name=['a', i])
c = Domain('N8', name=['c', i])
b = Domain('N4', name=['b', i])
w = Domain('N2', name=['w', i])
y = Domain('N4', name=['y', i])
x = Domain('N12',name=['x', i])
z = Domain('N3', name=['z', i])
s = Domain('N5', name=['s', i])
# Define strands containing these domains
sC_out = TargetStrand([w, x, y, s], name=['sC_out', i])
sA = TargetStrand([~c, ~b, ~a, ~z, ~y], name=['sA', i])
sA_toe = TargetStrand([~c], name=['sA_toe', i])
sC = TargetStrand([w, x, y, s, ~a, ~z, ~y, ~x, ~w], name=['sC', i])
sC_loop = TargetStrand([s, ~a, ~z], name=['sC_loop', i])
sB = TargetStrand([x, y, z, a, b], name=['sB', i])
sX = TargetStrand([a, b, c], name=['sX', i])
# Define target complexes
C = TargetComplex([sC], 'D2 D12 D4( U5 U6 U3 )', name=['C', i])
B = TargetComplex([sB], 'U12 U4 U3 U6 U4', name=['B', i])
C_loop = TargetComplex([sC_loop], 'U14', name=['C_loop', i])
AB = TargetComplex([sA, sB], 'U8 D4 D6 D3 D4(+ U12)', name=['AB', i])
X = TargetComplex([sX], 'U18', name=['X', i])
XA = TargetComplex([sX, sA], 'D6 D4 D8(+) U3 U4', name=['XA', i])
C_out = TargetComplex([sC_out], 'U23', name=['C_out', i])
BC = TargetComplex([sB, sC], 'D12 D4 D3 D6 (U4 + U2 U12 U4 U5) U2', name=['BC', i])
A_toe = TargetComplex([sA_toe], 'U8', name=['A_toe', i])
# Define 3 elementary step tubes for each orthogonal system
Step_0 = TargetTube({C: 1e-08, X: 1e-08, AB: 1e-08},
off_targets=SetSpec(max_size=2, include=[[sA], BC], exclude=[XA]), name=['Step_0', i])
Step_1 = TargetTube({XA: 1e-08, B: 1e-08},
off_targets=SetSpec(max_size=2, include=[X, AB]), name=['Step_1', i])
Step_2 = TargetTube({BC: 1e-08},
off_targets=SetSpec(max_size=2, include=[B, C]), name=['Step_2', i])
step_tubes += [Step_0, Step_1, Step_2]
# Store contributions to global crosstalk tube
crosstalk_targets.update({
AB: 1e-08,
C: 1e-08,
X: 1e-08,
B: 1e-08,
C_out: 1e-08,
C_loop: 1e-08,
A_toe: 1e-08,
})
crosstalk_excludes += [XA, BC, [sX, sA_toe], [sB, sC_loop]]
# Define 1 global crosstalk tube
crosstalk_tube = TargetTube(crosstalk_targets,
off_targets=SetSpec(max_size=2, exclude=crosstalk_excludes), name='Crosstalk')
# Define tube set
my_tubes = step_tubes + [crosstalk_tube]
# Define defect weight of N for global crosstalk tube
# (maintain balance between elementary step tubes and global crosstalk tube as number of
# orthogonal systems increases)
my_weights = Weights(my_tubes)
my_weights[:,:,:,crosstalk_tube] *= systems
# Set a stop condition of 5%
# Set seed for random number generation to get a reproducible result for this demo
my_options = DesignOptions(f_stop=0.05, seed=93)
# Define and run the test tube design job
my_design = tube_design(tubes=my_tubes, defect_weights=my_weights, model=my_model, options=my_options)
my_results = my_design.run(trials=1)[0]
# Display the design results
my_results
Domain | Sequence |
---|---|
a[0] | CACGAU |
a[0]* | AUCGUG |
a[1] | AACACU |
a[1]* | AGUGUU |
b[0] | UUAC |
b[0]* | GUAA |
b[1] | CCGG |
b[1]* | CCGG |
c[0] | GCUGCACU |
c[0]* | AGUGCAGC |
c[1] | UCCACAUG |
c[1]* | CAUGUGGA |
s[0] | AAAUC |
s[0]* | GAUUU |
s[1] | AGUUG |
s[1]* | CAACU |
w[0] | CA |
w[0]* | UG |
w[1] | CA |
w[1]* | UG |
x[0] | AUACCUCCCAGC |
x[0]* | GCUGGGAGGUAU |
x[1] | GAACAAUAUAAA |
x[1]* | UUUAUAUUGUUC |
y[0] | CCAA |
y[0]* | UUGG |
y[1] | AACA |
y[1]* | UGUU |
z[0] | UUA |
z[0]* | UAA |
z[1] | UAC |
z[1]* | GUA |
Strand | Sequence |
---|---|
sC[1] | CAGAACAAUAUAAAAACAAGUUGAGUGUUGUAUGUUUUUAUAUUGUUCUG |
sA_toe[0] | AGUGCAGC |
sC_out[1] | CAGAACAAUAUAAAAACAAGUUG |
sC_out[0] | CAAUACCUCCCAGCCCAAAAAUC |
sA[0] | AGUGCAGCGUAAAUCGUGUAAUUGG |
sC_loop[1] | AGUUGAGUGUUGUA |
sC[0] | CAAUACCUCCCAGCCCAAAAAUCAUCGUGUAAUUGGGCUGGGAGGUAUUG |
sA[1] | CAUGUGGACCGGAGUGUUGUAUGUU |
sX[1] | AACACUCCGGUCCACAUG |
sA_toe[1] | CAUGUGGA |
sB[1] | GAACAAUAUAAAAACAUACAACACUCCGG |
sX[0] | CACGAUUUACGCUGCACU |
sC_loop[0] | AAAUCAUCGUGUAA |
sB[0] | AUACCUCCCAGCCCAAUUACACGAUUUAC |
Objective type | Value |
---|---|
Weighted ensemble defect | 0.0499 |
Complex | Complex defect (nt) | Normalized complex defect |
---|---|---|
BC[1] | 2.85 | 0.0361 |
C_loop[1] | 0.0801 | 0.00572 |
C[0] | 2.58 | 0.0516 |
A_toe[1] | 0.0401 | 0.00502 |
B[0] | 1.45 | 0.0500 |
C[1] | 2.11 | 0.0422 |
C_out[0] | 0.115 | 0.00501 |
AB[1] | 1.03 | 0.0190 |
BC[0] | 1.76 | 0.0223 |
X[1] | 0.940 | 0.0522 |
XA[1] | 1.03 | 0.0239 |
A_toe[0] | 0.0449 | 0.00561 |
B[1] | 0.600 | 0.0207 |
C_loop[0] | 0.198 | 0.0141 |
AB[0] | 0.635 | 0.0118 |
C_out[1] | 2.67 | 0.116 |
X[0] | 1.94 | 0.108 |
XA[0] | 1.13 | 0.0262 |
Tube | Tube defect (M) | Normalized tube defect |
---|---|---|
Step_0[0] | 6.81e-08 | 0.0558 |
Step_1[0] | 2.75e-08 | 0.0382 |
Step_2[0] | 4.31e-08 | 0.0545 |
Step_0[1] | 4.17e-08 | 0.0342 |
Step_1[1] | 2.84e-08 | 0.0394 |
Step_2[1] | 3.03e-08 | 0.0384 |
Crosstalk | 1.74e-07 | 0.0443 |
Tube | On-target complex | Structural defect (M) | Concentration defect (M) | Total defect (M) |
---|---|---|---|---|
Step_0[0] | C[0] | 2.54e-08 | 8.30e-09 | 3.37e-08 |
Step_0[0] | X[0] | 1.94e-08 | 3.69e-11 | 1.95e-08 |
Step_0[0] | AB[0] | 6.25e-09 | 8.73e-09 | 1.50e-08 |
Step_1[0] | XA[0] | 1.13e-08 | 1.08e-09 | 1.23e-08 |
Step_1[0] | B[0] | 1.45e-08 | 7.28e-10 | 1.52e-08 |
Step_2[0] | BC[0] | 1.70e-08 | 2.60e-08 | 4.31e-08 |
Step_0[1] | C[1] | 2.11e-08 | 3.03e-10 | 2.14e-08 |
Step_0[1] | X[1] | 9.38e-09 | 2.83e-10 | 9.67e-09 |
Step_0[1] | AB[1] | 1.03e-08 | 3.27e-10 | 1.06e-08 |
Step_1[1] | XA[1] | 1.01e-08 | 7.36e-09 | 1.75e-08 |
Step_1[1] | B[1] | 5.90e-09 | 5.00e-09 | 1.09e-08 |
Step_2[1] | BC[1] | 2.85e-08 | 1.83e-09 | 3.03e-08 |
Crosstalk | AB[0] | 6.35e-09 | 1.64e-13 | 6.35e-09 |
Crosstalk | C[0] | 2.58e-08 | 2.28e-10 | 2.60e-08 |
Crosstalk | X[0] | 1.92e-08 | 1.59e-09 | 2.08e-08 |
Crosstalk | B[0] | 1.45e-08 | 5.40e-10 | 1.50e-08 |
Crosstalk | C_out[0] | 1.15e-09 | 9.80e-10 | 2.13e-09 |
Crosstalk | C_loop[0] | 1.97e-09 | 3.73e-10 | 2.34e-09 |
Crosstalk | A_toe[0] | 4.49e-10 | 1.86e-11 | 4.67e-10 |
Crosstalk | AB[1] | 1.03e-08 | 3.21e-18 | 1.03e-08 |
Crosstalk | C[1] | 2.11e-08 | 4.54e-10 | 2.15e-08 |
Crosstalk | X[1] | 8.70e-09 | 1.35e-08 | 2.22e-08 |
Crosstalk | B[1] | 6.00e-09 | 1.64e-10 | 6.16e-09 |
Crosstalk | C_out[1] | 2.66e-08 | 6.24e-10 | 2.72e-08 |
Crosstalk | C_loop[1] | 7.32e-10 | 1.19e-08 | 1.27e-08 |
Crosstalk | A_toe[1] | 4.01e-10 | 2.21e-11 | 4.23e-10 |
Tube | Complex | Concentration (M) | Target concentration (M) |
---|---|---|---|
Step_0[0] | C[0] | 9.83e-09 | 1.00e-08 |
Step_0[0] | X[0] | 1.00e-08 | 1.00e-08 |
Step_0[0] | AB[0] | 9.84e-09 | 1.00e-08 |
Step_1[0] | XA[0] | 9.97e-09 | 1.00e-08 |
Step_1[0] | B[0] | 9.97e-09 | 1.00e-08 |
Step_2[0] | BC[0] | 9.67e-09 | 1.00e-08 |
Step_0[1] | C[1] | 9.99e-09 | 1.00e-08 |
Step_0[1] | X[1] | 9.98e-09 | 1.00e-08 |
Step_0[1] | AB[1] | 9.99e-09 | 1.00e-08 |
Step_1[1] | XA[1] | 9.83e-09 | 1.00e-08 |
Step_1[1] | B[1] | 9.83e-09 | 1.00e-08 |
Step_2[1] | BC[1] | 9.98e-09 | 1.00e-08 |
Crosstalk | AB[0] | 1.00e-08 | 1.00e-08 |
Crosstalk | C[0] | 1.00e-08 | 1.00e-08 |
Crosstalk | X[0] | 9.91e-09 | 1.00e-08 |
Crosstalk | B[0] | 9.98e-09 | 1.00e-08 |
Crosstalk | C_out[0] | 9.96e-09 | 1.00e-08 |
Crosstalk | C_loop[0] | 9.97e-09 | 1.00e-08 |
Crosstalk | A_toe[0] | 1.00e-08 | 1.00e-08 |
Crosstalk | AB[1] | 1.00e-08 | 1.00e-08 |
Crosstalk | C[1] | 9.99e-09 | 1.00e-08 |
Crosstalk | X[1] | 9.25e-09 | 1.00e-08 |
Crosstalk | B[1] | 9.99e-09 | 1.00e-08 |
Crosstalk | C_out[1] | 9.97e-09 | 1.00e-08 |
Crosstalk | C_loop[1] | 9.15e-09 | 1.00e-08 |
Crosstalk | A_toe[1] | 1.00e-08 | 1.00e-08 |
Tube | Complex | Concentration (M) |
---|---|---|
Step_0[0] | (sA[0]) | 1.62e-10 |
Step_0[1] | — | — |
Step_2[0] | B[0] | 3.30e-10 |
Step_2[0] | C[0] | 3.29e-10 |
Step_1[1] | AB[1] | 1.71e-10 |
Step_1[1] | X[1] | 1.71e-10 |
Crosstalk | (sC_loop[1]+sX[1]) | 7.31e-10 |
Step_2[1] | — | — |