1 Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: [email protected] http://www.cs.northwestern.edu/~schwellerr/ April 4, 2007 Programmable Self- Assembly: How to Harness (Enslave) DNA
Dec 30, 2015
1
Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: [email protected]
http://www.cs.northwestern.edu/~schwellerr/
April 4, 2007
Programmable Self-Assembly: How to Harness (Enslave) DNA
3
Molecular Building Blocks
A T A G CT A T C G
T G A T C G G AA C T A G C C T
A C T A G C C TA C T A G C C T
C T A G C C G TG A T C G G C A
G C T T G A C CC G A A C T G G
A G
A T
C G
A C
T C
T A G
C T
G
T A C
C G
C A
TA
T G
G C
G T A
T G
A A T
A G
CA
C T
T A T
C G
A C
T A G
C C
TA
C T A
G C
C T
A T A G CT A T C G
A T A G CT A T C G
G T A C AC A T G T
A T A
G C
T A T
C G
A T A
G C
T A T
C G
A T A
G C
T A T
C G
A T A
G C
T A T
C G
C G G T C
T T C C A
G A
C A G
T T A
G T
[Reif’s Group, Duke University]
4
DNA Scaffolding
[Sung Ha Park, Constantin Pistol, Sang Jung Ahn, John H. Reif, Alvin R. Lebeck, Chris Dwyer, and Thomas H. LaBean, 2006]
8
Paul Rothemund, Nick Papadakis, Erik Winfree, PLoS Biology 2: e424 (2004)
340nm
Simulation of Cellular Automata
14
},...,1,0{: tG
},,,{ sTGt
Tile Model of Self-Assembly(Rothemund, Winfree STOC 2000)
Tile System:
t : temperature, positive integer
G: glue function
T: tileset , , ... { }r
r
w
g
p
y yb
r
b
r
b,
s: seed tile
15
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
S
16
S a
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
17
S a
c
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
18
S a
c
d
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
19
S a b
c
d
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
20
S a b
c
d
x
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
21
S a b
c
d
x x
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
22
S a b
c
d
x x
x
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
23
S a b
c
d
x x
x x
How a tile system self assembles
x dc
baST = G(y) = 2G(g) = 2G(r) = 2G(b) = 2G(p) = 1G(w) = 1
t = 2
29
Multiple Temperature Model
Multiple Temperature Model
- temperature may go up and down
},,,{ sTGtt
< t1 , t2 , ... , tr-1 , tr >
30
Multiple Temperature Model
Multiple Temperature Model
- temperature may go up and down
},,,{ sTGtt
< t1 , t2 , ... , tr-1 , tr >
Tile Complexity: Number of Tiles
Temperature Complexity: Number of Temperatures
31
Building k x n Rectangles
k-digit, base n(1/k) counter:0
0
0
S0
0
0
0
1 2
0
0
0
0
0
1
0
0
0
1
1
2
2
2
2
2
2
2
1
2
2
2
0
. . .k
N
k
n
32
Building k x n Rectangles
k-digit, base n(1/k) counter:0
0
0
S0
0
0
0
1 2
0
0
0
0
0
1
0
0
0
1
1
2
2
2
2
2
2
2
1
2
2
2
0
. . .k
N
0
0
0
S0
0
0
0
1 2
0
0
0
0
0
1
0
0
0
1
1
2
2
2
2
2
2
2
1
2
2
2
0
. . .k
N
)( /1 knkO Tile Complexity:
n
k
34
S
C1 C2 C3
0 1 2 30
g g p
Build a 4 x 256 rectangle: t = 2
C0
g
S3
S2 0
0
0 0
g
g
S C1 C2 C3
S1
S2
S3
S1
00
0
0g g p
35
S
C1 C2 C3
0 1 2 30
g g p
Build a 4 x 256 rectangle: t = 2
C0
g
g g
S3
S2 0
0 1
0 0
g
g
p r0
S C1 C2 C3
S1 0 0
S2
S3
0 0
0 0
0 1
S1
p
36
S
C1 C2 C3
0 1 2 30
g g p
Build a 4 x 256 rectangle: t = 2
C0
g
g g
S3
S2 0
0 1
0 0
g
g
p r0
S C1 C2 C3
S1 0 0 0 1
S2
S3
0 0
0 0
0 1
S1
g g
37
S
C1 C2 C3
0 1 2 30
g g p
Build a 4 x 256 rectangle: t = 2
C0
g
g g
S3
S2 0
0 1
0 0
g
g
p r0
S C1 C2 C3
S1 0 0 0 1
S2
S3
0 0
0 0
0 1
S1
C0 C1 C2 C3
0 0
0 0
p
38
S
C1 C2 C3
0 1 2 30
g g p
Build a 4 x 256 rectangle: t = 2
C0
g
g g
S3
S2 0
0 1
0 0
g
g
p r0
S C1 C2 C3
S1 0 0 0 1
S2
S3
0 0
0 0
0 1
S1
C0 C1 C2 C3
0 0
0 0
p1 1
0 0
0 0
1 2
2 3
39
S
C1 C2 C3
0 1 2 30
g g p
1 2
Pp
3
Build a 4 x 256 rectangle: t = 2
C0
g
g g
R 0
p r
r
S3
S2 0
0 1
2 3
0 0
g
g
p r0
S C0C1 C2 C3
S1 0 0 0 1
C1 C2 C3
1 1 2 2 3 31 2 2 3
S2
S3
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
C0 C1 C2 C3 C0 C1 C2 C3
0 1
S1
p
40
S
C1 C2 C3
0 1 2 30
g g p
1 2
Pp
3
Build a 4 x 256 rectangle: t = 2
C0
g
g g
R 0
p r
r
S3
S2 0
0 1
2 3
0 0
g
g
p r0
S C0C1 C2 C3
S1 0 0 0 1
C1 C2 C3
1 1 2 2 3 31 2 2 3
S2
S3
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
P
C0 C1 C2 C3 C0 C1 C2 C3
0 1
S1
41
S
C1 C2 C3
0 1 2 30
g g p
1 2
Pp
3
Build a 4 x 256 rectangle: t = 2
C0
g
g g
R 0
p r
r
S3
S2 0
0 1
2 3
0 0
g
g
p r0
S C0C1 C2 C3
S1 0 0 0 1
C1 C2 C3
1 1 2 2 3 31 2 2 3
S2
S3
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
P
0 1
C0 C1 C2 C3 C0 C1 C2 C3
0 1
S1
42
S
C1 C2 C3
0 1 2 30
g g p
1 2
Pp
3
Build a 4 x 256 rectangle: t = 2
C0
g
g g
R 0
p r
r
S3
S2 0
0 1
2 3
0 0
g
g
p r0
S C0C1 C2 C3
S1 0 0 0 1
C1 C2 C3
1 1 2 2 3 31 2 2 3
S2
S3
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
P
0 1
C0 C1 C2 C3 C0 C1 C2 C3
0 1
S1
R
43
S
C1 C2 C3
0 1 2 30
g g p
1 2
Pp
3
Build a 4 x 256 rectangle: t = 2
C0
g
g g
R 0
p r
r
S3
S2 0
0 1
2 3
0 0
g
g
p r0
S C0C1 C2 C3
S1 0 0 0 1
C1 C2 C3
1 1 2 2 3 31 2 2 3
S2
S3
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
P
0 1
C0 C1 C2 C3 C0 C1 C2 C3
0 1
S1
R
C0 C1 C2…
44
S
C1 C2 C3
0 1 2 30
g g p
1 2
Pp
3
Build a 4 x 256 rectangle: t = 2
C0
g
g g
R 0
p r
r
S3
S2 0
0 1
2 3
0 0
g
g
p r0
S C0C1 C2 C3
S1 0 0 0 1
C1 C2 C3
1 1 2 2 3 31 2 2 3
S2
S3
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
P
0 1
R…
0 0
1 1
0 0 0 0
C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2
0 1
S1
45
S
C1 C2 C3
0 1 2 30
g g p
1 2
Pp
3
Build a 4 x 256 rectangle: t = 2
C0
g
g g
R 0
p r
r
S3
S2 0
0 1
2 3
0 0
g
g
p r00 1
2 2 3 P
P
P
3 3
3 3
3 3
3 3
3 3
21 2
3 3
3 3
3 3
3 3
110 1
3 3
3 3
3 3
3 3
00
3 3
3 3
32
RP
33 3
2
3
3
2
3
C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3C0C1 C2 C3
S1
46
Building k x n Rectangles
k-digit, base n(1/k) counter:0
0
0
S0
0
0
0
1 2
0
0
0
0
0
1
0
0
0
1
1
2
2
2
2
2
2
2
1
2
2
2
0
. . .k
N
0
0
0
S0
0
0
0
1 2
0
0
0
0
0
1
0
0
0
1
1
2
2
2
2
2
2
2
1
2
2
2
0
. . .k
N
)( /1 knkO Tile Complexity:
n
k
49
)nO(j 1/j )n loglog
n logO(
k
N
j
n
Tile Complexity:
two temperaturest = 4 6
j = log n / (log log n – log log log n)
50
two temperatures
k
N
j
n
t = 4 6
j = log n / (log log n – log log log n)
[Aggarwal, Goldwasser, Kao, Schweller, SODA 2004]
Kolmogorov Complexity[Rothemund, Winfree STOC 2000]
Standard Model
[Aggarwal, Goldwasser, Kao, Schweller, SODA 2004]
)(/1
k
N k
)loglog
log(
N
N
)( /1 jnjO )loglog
log(
n
nO
87
a
Encoding a Single Bit
0
a
Z
g
z
g
g
g
g
g
g
g
g
g
0 1
0’ 1’zz
10
1
t = < 2, 5 >
Z
1’
1
a
Z
t = < 2 >
0
0’
100
a
1
s
Goal: 1 0 1 0 0
b
Y
temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 >
a
b
0
Y
a
b
1
Y
a
b
101
a
1
s
Goal: 1 0 1 0 0
b
Y
temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 >
a
b
0
Y
a
b
1
Y
a
b
0
102
a
1
s
Goal: 1 0 1 0 0
b
Y
temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 >
a
b
0
Y
a
b
1
Y
a
b
0
X
103
a
1
s
Goal: 1 0 1 0 0
b
Y
temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 >
a
b
0
Y
a
b
1
Y
a
b
0
Y
a
b
104
a
1
s
Goal: 1 0 1 0 0
b
Y
temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 >
a
b
0
Y
a
b
1
Y
a
b
0
Y
a
b
0
105
a
1
s
Goal: 1 0 1 0 0
b
Y
temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 >
a
b
0
Y
a
b
1
Y
a
b
0
Y
a
b
0
X
107
1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0
111
Results
tile complexity temperature complexity
O(1) O(log n)
O(1))loglog
log(
n
nO
(Adleman, Cheng,Goel, Huang STOC 2001)
n x n squares
TemperatureProgramming
112
Results
tile complexity temperature complexity
O(1) O(log n)
O(1))loglog
log(
n
nO
(Adleman, Cheng,Goel, Huang STOC 2001)
? < log nSmooth Trade off? n
n
loglog
log? <
n x n squares
TemperatureProgramming
113
Results
tile complexity temperature complexity
O(1) O(log n)
O(1))loglog
log(
n
nO
(Adleman, Cheng,Goel, Huang STOC 2001)
? < log nSmooth Trade off? n
n
loglog
log? <
For almost all n, no tileset can achieve both o(log n/ loglog n) tile complexity and o(log n) temperature complexity simultaneously
n x n squares
TemperatureProgramming
114
General Shapes?
• General Scaled Shapes [Soloveichik, Winfree 2004]
– O(Ks*) Tile complexity, single temperature
• Combined with Temperature Programming:– O(1) Tile Complexity– O(Ks) Temperature Complexity
• General, Constant Scaled Shapes?– O(1) Tile Complexity– O(|S|) Temperature Complexity
117
Probabilistic Assembly Model
S
aS
Tileset =
b c
xd
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
%5 %5
%5
%5
%60
%20
118
Probabilistic Assembly Model
S
d
aS
Tileset =
b c
xd
%5 %5
%5
%5
%60
%20
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
119
Probabilistic Assembly Model
aS
d
aS
Tileset =
b c
xd
%5 %5
%5
%5
%60
%20
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
120
Probabilistic Assembly Model
aS
xd
aS
Tileset =
b c
xd
%5 %5
%5
%5
%60
%20
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
121
Probabilistic Assembly Model
aS
xd
S
d
aS
Tileset =
b c
xd
%5 %5
%5
%5
%60
%20
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
122
Probabilistic Assembly Model
aS b
xd
S
d
aS
Tileset =
b c
xd
%5 %5
%5
%5
%60
%20
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
123
Probabilistic Assembly Model
aS b c
xd
S
d
Two Terminal Shapes Produced
aS
Tileset =
b c
xd
%5 %5
%5
%5
%60
%20
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
124
aS
Tileset =
Probabilistic Assembly Model
b c
xd
%5 %5
%5
%5
%60
%20
S
S
d
S S ba
.20/.85 = %23.5.60/.85 = %70.6
.05/.85 = %5.9
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
125
aS
Tileset =
Probabilistic Assembly Model
b c
xd
%5 %5
%5
%5
%60
%20
S
S
d
S
S
d
a S
d
b
S ba
S
d
a S
d
b c
x
%23.5%70.6 %5.9
%75 %25
G(y) = 2G(g) = 2G(r) = 2G(p) = 1G(w) = 1
t = 2
128
Generic Tileset for Approximate Squares
n(1-n (1+n
() – Approximate Square Assembly
Given:
- , - integer n
Design:A probabilistic tile system that will assemble an n’ x n’ square with:
(1-)n < n’ < (1+)n
With probability at least:
1 -
142
X
S
XS
% c
% c/n
% c(n-1)/n
Line Estimation of n
E[ Length ] = n
Length has Geometric distributionwith p = 1/n
144
X
S
XS
% c
% c/n
% c(n-1)/n
Line Estimation of n
- Assembles all n x n squares.
-Expected dimension specified by percentages.
-Geometric distribution:
Huge variance
[Becker, Rapaport Remila, 2006]
E[ Length ] = n
146
X
S % c
% c/L
% c(L+1)(n-1)/Ln
Improved Estimation of n: Binomial Distribution
% c(L+1)/Ln
S X
Probability of placing a red tile given either a red or green tile is placed:
1/n
147
X
S % c
% c/L
% c(L+1)(n-1)/Ln
Improved Estimation of n: Binomial Distribution
% c(L+1)/Ln
S X
Probability of placing a red tile given either a red or green tile is placed:
1/n
To compute estimation of n:Compute LENGTH / REDS
148
X
S % c
% c/L
% c(L+1)(n-1)/Ln
Improved Estimation of n: Binomial Distribution
% c(L+1)/Ln
S X
1 0 0 1
1 0
1 1
1 0
0 1
0 0
1 0
1 1
0 0
1 0
0 0
1 1
1 0
1 0
1 1
1 0
0 1
0 1
0 0
1 1
0 1
0 0
1 0
0 1
1 1
0 0
1 0
1 1
1 1
0 0
1 0
0 1
0 1
1 0
1 0
1 0
0 0
1 1
1 0
0 0
1 0
1 1
1 0
Binary Counter Length: 10000Reds: 100
1 0
1 0
1 0
1 1
1 0
0 0
0 0
0 1
0 0
0 0
0 0
0 1
0 0
1 0 1 0
149
X
S % c
% c/L
% c(L+1)(n-1)/Ln
Improved Estimation of n: Binomial Distribution
% c(L+1)/Ln
S X
1 0 0 1
1 0
1 1
1 0
0 1
0 0
1 0
1 1
0 0
1 0
0 0
1 1
1 0
1 0
1 1
1 0
0 1
0 1
0 0
1 1
0 1
0 0
1 0
0 1
1 1
0 0
1 0
1 1
1 1
0 0
1 0
0 1
0 1
1 0
1 0
1 0
0 0
1 1
1 0
0 0
1 0
1 1
1 01 0
1 0
1 0
1 1
1 0
0 0
0 0
0 1
0 0
0 0 1 0
0 0
0 0
0 1
0 0
1 0 1 0
0
Length: 10000Reds: 100
Compute Length / Reds: 100
Division tiles
Estimate for n
150
Problem: Estimation Line too Long
S X
Length >> n :Too long for an n x n square…
Chernoff Bounds only yield high accuracy for Length >> n
151
S
Multiple lines = HEIGHT: Determined by Geometric Distribution
WIDTH: Determined by Geometric Distribution
Solution: Estimation Frame
Phase 1: Build dimensions of frame.
152
S
Multiple lines = HEIGHT: Determined by Geometric Distribution
WIDTH: Determined by Geometric Distribution
Solution: Estimation Frame
Phase 1: Build dimensions of frame.
Phase 2:Build Sampling Lines
153
S
01
01
1
Sum Reds
Sum Reds
Sum Reds
01Sum Reds
Multiple lines = HEIGHT: Determined by Geometric Distribution
WIDTH: Determined by Geometric Distribution
Solution: Estimation Frame
Phase 1: Build dimensions of frame.
Phase 2:Build Sampling Lines
Phase 3: Sum Reds and Length for each Line
154
S
01
01
1
Sum Reds
Sum Reds
Sum Reds
01Sum Reds
1 1 1
Su
m S
ub
tota
ls
Multiple lines = HEIGHT: Determined by Geometric Distribution
WIDTH: Determined by Geometric Distribution
Solution: Estimation Frame
Phase 1: Build dimensions of frame.
Phase 2:Build Sampling Lines
Phase 3: Sum Reds and Length for each Line
Phase 4: Sum subtotals
155
S
01
01
1
Sum Reds
Sum Reds
Sum Reds
01Sum Reds
1 1 1
Su
m S
ub
tota
ls
Divide: Length / Reds
1001
Multiple lines = HEIGHT: Determined by Geometric Distribution
WIDTH: Determined by Geometric Distribution
Solution: Estimation Frame
Phase 1: Build dimensions of frame.
Phase 2:Build Sampling Lines
Phase 3: Sum Reds and Length for each Line
Phase 4: Sum subtotals
Phase 5: Compute Length to Reds ratio
OUTPUTEstimation
156
HEIGHT
WIDTH
Solution: Estimation Frame
With high probability: HEIGHT < nWIDTH < n
Frame fits within n x n square
With high probability: HEIGHT x WIDTH >> n Chernoff Bounds imply:
Estimation is accurate with high probability:(1-epsilon)n’ < n < (1+ epsilon) n’
159
We have a fixed size O(1) tileset that:
-For any given - n > C( )
We can assign percentages such that:
With probability at least 1- , a size n’ x n’
square is assembled with
( 1- )n < n’ < ( 1+ )n
Binary Counter
Bin
ary Co
un
ter
10110110
n
n
Result:
160
Probabilistic Results
• Generic size O(1) tileset that builds ()-approximate squares.
• Approximation Frame has many potential applications– Encode arbitrary programs
• General shapes• Encode input of computational problems
• Extension to 3 dimensions– Approximation accuracy increases for n x n x n cubes,
possibly exact assembly of cubes with high probability
161
Thanks for Listening
Questions?
Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: [email protected]
http://www.cs.northwestern.edu/~schwellerr/
162
Outline
• Background, Motivation
• Model
• Temperature Programming
• Probabilistic Programming
• Staged Assembly
• Overview of Additonal Work
• Future Work
163
Staged Assembly• Assembly occurs in a sequence of stages, and
assemblies can be separated into separate bins
164
Staged Assembly• Assembly occurs in a sequence of stages, and
assemblies can be separated into separate bins
165
Staged Assembly• Assembly occurs in a sequence of stages, and
assemblies can be separated into separate bins
Bin Complexity: 4
Stage Complexity: 3
Mix pattern:
166
Staged Assembly• Assembly occurs in a sequence of stages, and
assemblies can be separated into separate bins
Bins = Space ComplexityStages = Time Complexity
Bin Complexity: 4
Stage Complexity: 3
167
Staged Assembly• Assembly occurs in a sequence of stages, and
assemblies can be separated into separate bins
Bin Complexity: 4
Stage Complexity: 3
• Results: – Use O(1) tiles to build arbitrary
shapes.– Complexity tradeoffs: Bins vs.
Stages– Close to information theoretic
optimal tradeoffs– Models laboratory and biology
• Cells act as bins
Work in collaboration with:Eric Demaine MITMartin Demaine MITSandor Fekete TU-BS
Diane Souvaine TuftsMashood Ishaque TuftsEynat Rafalin Google
168
1
a
0
A
11
a Aa A
b B b Bb B
1 1 10
0
1
Staged Assembly
Fixed size particle set:
b B b Bb B
1 1 10
c
C
1
c
C
1
c
C
0
a
0
A
1
a Aa A
d
D
d
D
d
D
0
1
1
0
b B b Bb B
10
a A a Aa A
d
D
d
D
d
D
0
1
0
0
0
1
0 1000
c
C
1
c
C
1
c
C
0
0
00
Macro Tile 1 Macro Tile 2
Large Alphabetof Macro Glues:
Large MacroTileset:
169
Staged Assembly
Fixed size particle set:
Large Alphabetof Macro Glues:
Complex Shapes:
1
a
0
A
11
a Aa A
b B b Bb B
1 1 10
0
1
b B b Bb B
1 1 10
c
C
1
c
C
1
c
C
0
a
0
A
1
a Aa A
d
D
d
D
d
D
0
1
1
0
b B b Bb B
10
a A a Aa A
d
D
d
D
d
D
0
1
0
0
0
1
0 1000
c
C
1
c
C
1
c
C
0
0
00
Macro Tile 1 Macro Tile 2Large MacroTileset:
170
Laboratory Assembly
Fixed size particle set:
Large Alphabetof Macro Glues:
Complex Shapes:
Large MacroTileset:
A G CT
A T A G CT A T C G
T G A T C G G AA C T A G C C T
A C T A G C C TA C T A G C C T
C T A G C C G TG A T C G G C A
G C T T G A C CC G A A C T G G
A G
A T
C G
A C
T C
T A G
C T
G
T A C
C G
C A
TA
T G
G C
G T A
T G
A A T
A G
CA
C T
T A T
C G
A C
T A G
C C
TA
C T A
G C
C T
A T A G CT A T C G
A T A G CT A T C G
G T A C AC A T G T
A T A
G C
T A T
C G
A T A
G C
T A T
C G
A T A
G C
T A T
C G
A T A
G C
T A T
C G
C G G T C
T T C C A
G A
C A G
T T A
G T
A T A G CT A T C G
T G A T C G G AA C T A G C C T
A C T A G C C TA C T A G C C T
C T A G C C G TG A T C G G C A
G C T T G A C CC G A A C T G G
A G
A T
C G
A C
T C
T A G
C T
G
T A C
C G
C A
TA
T G
G C
G T A
T G
A A T
A G
CA
C T
T A T
C G
A C
T A G
C C
TA
C T A
G C
C T
A T A G CT A T C G
A T A G CT A T C G
G T A C AC A T G T
A T A
G C
T A T
C G
A T A
G C
T A T
C G
A T A
G C
T A T
C G
A T A
G C
T A T
C G
C G G T C
T T C C A
G A
C A G
T T A
G T
1
a
0
A
11
a Aa A
b B b Bb B
1 1 10
0
1
b B b Bb B
1 1 10
c
C
1
c
C
1
c
C
0
a
0
A
1
a Aa A
d
D
d
D
d
D
0
1
1
0
b B b Bb B
10
a A a Aa A
d
D
d
D
d
D
0
1
0
0
0
1
0 1000
c
C
1
c
C
1
c
C
0
0
00
Macro Tile 1 Macro Tile 2
171
Outline
• Background, Motivation• Model• Temperature Programming• Probabilistic Programming• Staged Assembly• Overview of Additonal Work
– DNA Strand Design– Shape Verification
• Future Work
175
Glue Design- Standard
ACGGT
GGGAT
GTTGG
CGTAC
GACTC
Design n strings such that each pair of strings has Hamming distance
at least .
-Include more biologically motivated constraints.
-Lot’s of work done here, including ours:
[Kao, Sanghi, SchwellerICALP 2006]
178
Flexible Glue Design
Tile Complexity for n x n squares
)n loglog
n log(
[Adleman, Cheng, Goel, Huang]
)n log(Flexible Glue:
Standard:
[Aggarwal, Kao, Goldwasser, Schweller, SODA 2004]
Our paper on Flexible Codeword Design:[Kao, Sanghi, Schweller,ISAAC 2006]
179
Outline
• Background, Motivation• Model• Temperature Programming• Probabilistic Programming• Staged Assembly• Overview of Additonal Work
– DNA Strand Design– Staged Assembly– Shape Verification
• Future Work
180
Shape Verification
Shape Verification Problem
Input: T, a tile system S, a shape
Question: Does T uniquely assemble S.
Standard: P (Adleman, Cheng, Goel, Huang, Kempe,
Flexible glue: P Espanes, Rothemund, STOC 2002)
Unique Shape: Co-NPC Multiple Temperature: NP-hard, Co-NP-hard Multiple Tile: NP-hard, Co-NP-hard
183
*
x1
x2
x3
*
* c2c1 c3 *
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
184
*
x1
x2
x3
*
* c2c1 c3 *
x
x
x
1
0
x
x
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
185
*
x1
x2
x3
*
* c2c1 c3 *
0
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
186
*
x1
x2
x3
*
* c2c1 c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
187
*
x1
x2
x3
*
*
ok
c2c1 c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
188
*
x1
x2
x3
*
*
ok
ok
c2c1 c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
189
*
x1
x2
x3
*
*
ok
ok
c2c1
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
190
*
x1
x2
x3
*
*
ok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
191
*
x1
x2
x3
*
*
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
192
*
x1
x2
x3
*
*
ok
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
193
*
x1
x2
x3
*
*
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
Shape Verification: Unique-Shape Model
194
*
x1
x2
x3
*
*
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
*
*
*
*
Shape Verification: Unique-Shape Model
195
*
x1
x2
x3
*
*
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
*
*
*
* T
Shape Verification: Unique-Shape Model
196
*
x1
x2
x3
*
*
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
*
*
*
* T T
Shape Verification: Unique-Shape Model
197
*
x1
x2
x3
*
*
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
*
*
*
* T T T
Shape Verification: Unique-Shape Model
198
*
x1
x2
x3
*
*
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
c10
1
1
)(
)(
)(
321
321
321
xxx
xxx
xxx
*
*
*
* T T T SAT
Satisfied
(LaBean and Lagoudakis, 1999)
Shape Verification: Unique-Shape Model
199
x1
* *
x2
x3
* * T T T
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
1
1
SAT
x1
* *
x2
x3
* *
ok
ok
ok
c2ok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
0
1
Satisfied
(LaBean and Lagoudakis, 1999)
Shape Verification: Unique-Shape Model
200
x1
* *
x2
x3
* * T T T
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
1
1
SAT
x1
* *
x2
x3
* * T
ok
ok
ok
c2ok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
0
1
Satisfied
(LaBean and Lagoudakis, 1999)
Shape Verification: Unique-Shape Model
201
x1
* *
x2
x3
* * T T T
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
1
1
SAT
x1
* *
x2
x3
* * T F
ok
ok
ok
c2ok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
0
1
Satisfied
(LaBean and Lagoudakis, 1999)
Shape Verification: Unique-Shape Model
202
x1
* *
x2
x3
* * T T T
ok
ok
ok
okok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
1
1
SAT
x1
* *
x2
x3
* * T F F
ok
ok
ok
c2ok
ok
c2c1
c2
c2
c3 *
*
*
*
c10
0
1
Satisfied Not Satisfied
(LaBean and Lagoudakis, 1999)
Shape Verification: Unique-Shape Model
203
T T
ok ok ok
c2
SAT
*
*
T
ok
* T
x3
x2
x1
1
1
0
ok
c1
c1* *
c2 ok
*c2 c3
*
T F
ok c2 ok
c2
NO
*
*
T
ok
* T
x3
x2
x1
0
1
0
ok
c1
c1* *
c2 ok
*c2 c3
*
Satisfied Not Satisfied
Shape Verification: Multiple Temperature Model
204
T T
ok ok ok
c2
SAT
*
*
T
ok
* T
x3
x2
x1
1
1
0
ok
c1
c1* *
c2 ok
*c2 c3
*
T T
ok ok ok
c2
NO
*
*
T
ok
* T
x3
x2
x1
1
1
0
ok
c1
c1* *
c2 ok
*c2 c3
*
Satisfied Not Satisfied
Shape Verification: Multiple Temperature Model
205
T T
ok ok ok
c2
SAT
*
*
T
ok
* T
x3
x2
x1
1
1
0
ok
c1
c1* *
c2 ok
*c2 c3
*
T T
ok ok ok
c2
NO
*
*
T
ok
* T
x3
x2
x1
1
1
0
ok
c1
c1* *
c2 ok
*c2 c3
*
Satisfied Not Satisfied
Shape Verification: Multiple Temperature Model
206
*
x3
x2
x1
*
*
x3
x2
x1
*
Satisfied Not Satisfied
Shape Verification: Multiple Temperature Model
207
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
* c1 c2 c3 *
FFT NO*
Shape Verification: Multiple Temperature Model
208
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
* c1 c2 c3 * *
FFT NO **
Shape Verification: Multiple Temperature Model
209
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
* c1 c1c2 c2c3 c3* * *
FFT NO ** FF F NO
Shape Verification: Multiple Temperature Model
210
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
FFT NO ** FF F NO * NO * FTT NO
...
Shape Verification: Multiple Temperature Model
211
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
FFT NO ** FF F NO * NO * FTT NO
...
Shape Verification: Multiple Temperature Model
212
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
FFT NO ** FF F NO * NO * FTT NO
...
Shape Verification: Multiple Temperature Model
213
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
FFT NO ** FF F NO * NO * FTT NO
...
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
ok
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
TTT SAT ** FF F NO * NO * FTT NO
...
Shape Verification: Multiple Temperature Model
214
*
x1
x2
x3
*
*
x1
x2
x3
*
Satisfiable
Not Satisfiable
Shape Verification: Multiple Temperature Model
216
Input Shape:
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
FFT NO ** FF F NO * NO * FTT NO
...
Shape Verification: Multiple Temperature Model
217
Input Shape:
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
c2
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
FFT NO ** FF F NO * NO * FTT NO
...
Equivalent to Co-SAT Co-NP-hard
Shape Verification: Multiple Temperature Model
219
Input Shape:
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
ok
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
TTT SAT ** FF F NO * NO * FTT NO
...
Shape Verification: Multiple Temperature Model
220
Input Shape:
Equivalent to SAT NP-hard
*
x1
x2
x3
*
0
0
0
c1
ok
ok
c2
c2
ok
ok
ok
ok *
*
*
1
0
0
c1
c1
c1
c2
c2
c2
ok
ok
ok *
*
*
0
1
0
* c1 c1c2 c2c3 c3* * * *
*
*
*
1
1
1
* *
c1
ok
ok
c2
c2
ok
*
*
*
c1 c2 c3 *
c3
c3
c3
TTT SAT ** FF F NO * NO * FTT NO
...
Shape Verification: Multiple Temperature Model
221
Shape Verification Results
Standard P
Flexible Glue P Multiple Temperature NP-hard
Co-NP-hard
Unique Shape Co-NPC
Multiple Tile NP-hard Co-NP-hard
(Adleman, Cheng, Goel, Huang, Kempe,Espanes, Rothemund, STOC 2002)
222
Outline
• Background, Motivation
• Model
• Temperature Programming
• Probabilistic Programming
• Overview of Additonal Work
• Future Work
223
• Shape Replicaton• Exact Assembly for Probabilistic Programming• Lab Work
– Experimental tests for Temperature Programming– Experiments for Probabilistic Programming
• Flexible Glue Design– Tighten bounds– More biological constraints
Future Work
231
Shape Replication
8 9765 4 3 2 1
10 11
12
13 14
1515
15
15
54 3 2 1
89
10
11
7
6
15
17
16
18
19
2021
22
raise temperature
232
Shape Replication
8 9765 4 3 2 1
10 11
12
13 14
1515
15
15
54 3 2 1
89
10
11
7
6
15
17
16
18
19
2021
22
8 9765 4 3 2 1
10 11
12
13 14 15 16
17
18
19
20
21
8 9765 4 3 2 1
10 11
12
13 14
1515
15
15
raise temperature
drop temperature