2.34k likes | 2.47k Views
Programmable Self-Assembly: How to Harness (Enslave) DNA. April 4, 2007. Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: schwellerr@cs.northwestern.edu http://www.cs.northwestern.edu/~schwellerr/. Molecular Building Blocks. T G C G.
E N D
Programmable Self-Assembly: How to Harness (Enslave) DNA April 4, 2007 Robert SchwellerElectrical Engineering and Computer Science Department Northwestern University Email: schwellerr@cs.northwestern.edu http://www.cs.northwestern.edu/~schwellerr/
Molecular Building Blocks T G C G A C G C
Molecular Building Blocks [Reif’s Group, Duke University]
DNA Scaffolding [Sung Ha Park, Constantin Pistol, Sang Jung Ahn, John H. Reif, Alvin R. Lebeck, Chris Dwyer, and Thomas H. LaBean, 2006]
Self-Assembly for Circuit Patterns [Cook, Rothemund, and Winfree, 2003]
More Examples of DNA Tiles [Winfree’s Group, Cal Tech]
2D Self-Assembly for Turing Machines [Winfree, Yang, and Seeman, 1998]
Simulation of Cellular Automata Paul Rothemund, Nick Papadakis, Erik Winfree, PLoS Biology 2: e424 (2004) 340nm
[Shaw, University of Southern California] Example of 3D Self-Assembly
3D DNA Cube [Seeman, New York University]
3D DNA Truncated Octahedron [Seeman, New York University]
Clonable DNA Octahedron [Shih, Quispe, Joyce, 2004]
Outline • Background, Motivation • Model • Temperature Programming • Probabilistic Programming
Tile Model of Self-Assembly (Rothemund, Winfree STOC 2000) Tile System: t : temperature, positive integer G: glue function T: tileset s: seed tile
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =
Outline • Background, Motivation • Model • Temperature Programming • Probabilistic Programming
Multiple Temperature Model Multiple Temperature Model - temperature may go up and down
Multiple Temperature Model Multiple Temperature Model - temperature may go up and down t < t1 , t2 , ... , tr-1 , tr >
Multiple Temperature Model Multiple Temperature Model - temperature may go up and down t < t1 , t2 , ... , tr-1 , tr > Tile Complexity: Number of Tiles Temperature Complexity: Number of Temperatures
Building k x n Rectangles k-digit, base n(1/k) counter: k n
Building k x n Rectangles k-digit, base n(1/k) counter: k n Tile Complexity:
Build a 4 x 256 rectangle: t = 2 S3 0 S2 0 S1 0 S g g g p C0 C1 C2 C3 S
Build a 4 x 256 rectangle: t = 2 S3 0 g S2 0 0 1 2 3 0 0 g S1 0 S g g g p C0 C1 C2 C3 0 S3 0 S2 0 0 S1 g g p S C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 g S1 0 S g g g p C0 C1 C2 C3 S3 0 0 S2 0 0 S1 0 0 p S C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 g S1 0 S g g g p C0 C1 C2 C3 S3 0 0 S2 0 0 g g S1 0 0 0 1 S C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 g S1 0 S g g g p C0 C1 C2 C3 S3 0 0 0 0 S2 0 0 0 0 S1 0 0 0 1 p S C1 C2 C3 C0 C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 S g g g p 2 3 C0 C1 C2 C3 S3 0 0 0 0 0 0 S2 0 0 0 0 0 0 S1 0 0 0 1 1 1 p S C1 C2 C3 C0 C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 p r S P R g g g p 3 0 2 3 p r C0 C1 C2 C3 S3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S1 0 0 0 1 1 1 1 2 2 2 2 3 3 3 p S C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 p r S P R g g g p 3 0 2 3 p r C0 C1 C2 C3 S3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S1 0 0 0 1 1 1 1 2 2 2 2 3 3 3 P S C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 p r S P R g g g p 3 0 2 3 p r C0 C1 C2 C3 S3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 S1 0 0 0 1 1 1 1 2 2 2 2 3 3 3 P S C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 p r S P R g g g p 3 0 2 3 p r C0 C1 C2 C3 S3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 S1 0 0 0 1 1 1 1 2 2 2 2 3 3 3 P R S C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 p r S P R g g g p 3 0 2 3 p r C0 C1 C2 C3 S3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 S1 0 0 0 1 1 1 1 2 2 2 2 3 3 3 P R … S C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 p r S P R g g g p 3 0 2 3 p r C0 C1 C2 C3 S3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 … S1 0 0 0 1 1 1 1 2 2 2 2 3 3 3 P R 0 0 S C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2
Build a 4 x 256 rectangle: t = 2 g g 0 1 0 1 S3 0 p r g S2 0 0 1 2 3 0 0 1 2 g S1 0 p r S P R g g g p 3 0 2 3 p r C0 C1 C2 C3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 P 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 P 3 3 P R 0 0 0 1 1 1 1 2 2 2 2 3 3 3 P C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3 C0 C1 C2 C3
Building k x n Rectangles k-digit, base n(1/k) counter: k n Tile Complexity:
two temperatures t= 4 3 1 3 3 n
two temperatures t = 4 6 n
two temperatures t = 4 6 n Tile Complexity: j = log n / (log log n – log log log n)
t = 4 6 n two temperatures