Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Robert Schweller Electrical Engineering and Computer Science Department Northwestern University

Similar presentations


Presentation on theme: "1 Robert Schweller Electrical Engineering and Computer Science Department Northwestern University"— Presentation transcript:

1 1 Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: schwellerr@cs.northwestern.eduschwellerr@cs.northwestern.edu http://www.cs.northwestern.edu/~schwellerr/ April 4, 2007 Programmable Self-Assembly: How to Harness (Enslave) DNA

2 2 A C G C T G C G Molecular Building Blocks

3 3 [Reif’s Group, Duke University]

4 4 DNA Scaffolding [Sung Ha Park, Constantin Pistol, Sang Jung Ahn, John H. Reif, Alvin R. Lebeck, Chris Dwyer, and Thomas H. LaBean, 2006]

5 5 Self-Assembly for Circuit Patterns [Cook, Rothemund, and Winfree, 2003]

6 6 More Examples of DNA Tiles [Winfree ’ s Group, Cal Tech]

7 7 2D Self-Assembly for Turing Machines [Winfree, Yang, and Seeman, 1998]

8 8 Paul Rothemund, Nick Papadakis, Erik Winfree, PLoS Biology 2: e424 (2004) 340nm Simulation of Cellular Automata

9 9 Example of 3D Self-Assembly [Shaw, University of Southern California]

10 10 3D DNA Cube [Seeman, New York University]

11 11 3D DNA Truncated Octahedron [Seeman, New York University]

12 12 Clonable DNA Octahedron [Shih, Quispe, Joyce, 2004]

13 13 Outline Background, Motivation Model Temperature Programming Probabilistic Programming

14 14 Tile Model of Self-Assembly (Rothemund, Winfree STOC 2000) Tile System: t : temperature, positive integer G: glue function T: tileset s: seed tile

15 15 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

16 16 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

17 17 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

18 18 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

19 19 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

20 20 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

21 21 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

22 22 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

23 23 How a tile system self assembles T = G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2

24 24 Each Shape Requires a Distinct Tile Set

25 25 Programmable, General Purpose Tile Set?

26 26 Programmable, General Purpose Tile Set?...

27 27 Outline Background, Motivation Model Temperature Programming Probabilistic Programming

28 28 Multiple Temperature Model - temperature may go up and down

29 29 Multiple Temperature Model - temperature may go up and down t

30 30 Multiple Temperature Model - temperature may go up and down t Tile Complexity:Number of Tiles Temperature Complexity:Number of Temperatures

31 31 Building k x n Rectangles k-digit, base n (1/k) counter: k n

32 32 Building k x n Rectangles k-digit, base n (1/k) counter: Tile Complexity: n k

33 33 S C1C1 C2C2 C3C3 0 ggp Build a 4 x 256 rectangle: t = 2 C0C0 g S3S3 S2S2 0 0 S S1S1

34 34 S C1C1 C2C2 C3C3 0123 0 ggp Build a 4 x 256 rectangle: t = 2 C0C0 g S3S3 S2S2 0 0 00 g g SC1C1 C2C2 C3C3 S1S1 S2S2 S3S3 S1S1 0 0 0 0 ggp

35 35 S C1C1 C2C2 C3C3 0123 0 ggp Build a 4 x 256 rectangle: t = 2 C0C0 g gg S3S3 S2S2 0 0 1 00 g g pr 0 SC1C1 C2C2 C3C3 S1S1 00 S2S2 S3S3 00 00 01 S1S1 p

36 36 S C1C1 C2C2 C3C3 0123 0 ggp Build a 4 x 256 rectangle: t = 2 C0C0 g gg S3S3 S2S2 0 0 1 00 g g pr 0 SC1C1 C2C2 C3C3 S1S1 0001 S2S2 S3S3 00 00 01 S1S1 gg

37 37 S C1C1 C2C2 C3C3 0123 0 ggp Build a 4 x 256 rectangle: t = 2 C0C0 g gg S3S3 S2S2 0 0 1 00 g g pr 0 SC1C1 C2C2 C3C3 S1S1 0001 S2S2 S3S3 00 00 01 S1S1 C0C0 C1C1 C2C2 C3C3 00 00 p

38 38 S C1C1 C2C2 C3C3 0123 0 ggp Build a 4 x 256 rectangle: t = 2 C0C0 g gg S3S3 S2S2 0 0 1 00 g g pr 0 SC1C1 C2C2 C3C3 S1S1 0001 S2S2 S3S3 00 00 01 S1S1 C0C0 C1C1 C2C2 C3C3 00 00 p 11 00 00 12 23

39 39 S C1C1 C2C2 C3C3 0123 0 ggp 12 P p 3 Build a 4 x 256 rectangle: t = 2 C0C0 g gg R 0 p r r S3S3 S2S2 0 0 1 23 00 g g pr 0 SC0C0 C1C1 C2C2 C3C3 S1S1 0001 C1C1 C2C2 C3C3 1122331223 S2S2 S3S3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 01 S1S1 p

40 40 S C1C1 C2C2 C3C3 0123 0 ggp 12 P p 3 Build a 4 x 256 rectangle: t = 2 C0C0 g gg R 0 p r r S3S3 S2S2 0 0 1 23 00 g g pr 0 SC0C0 C1C1 C2C2 C3C3 S1S1 0001 C1C1 C2C2 C3C3 1122331223 S2S2 S3S3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 01 S1S1

41 41 S C1C1 C2C2 C3C3 0123 0 ggp 12 P p 3 Build a 4 x 256 rectangle: t = 2 C0C0 g gg R 0 p r r S3S3 S2S2 0 0 1 23 00 g g pr 0 SC0C0 C1C1 C2C2 C3C3 S1S1 0001 C1C1 C2C2 C3C3 1122331223 S2S2 S3S3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P 01 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 01 S1S1

42 42 S C1C1 C2C2 C3C3 0123 0 ggp 12 P p 3 Build a 4 x 256 rectangle: t = 2 C0C0 g gg R 0 p r r S3S3 S2S2 0 0 1 23 00 g g pr 0 SC0C0 C1C1 C2C2 C3C3 S1S1 0001 C1C1 C2C2 C3C3 1122331223 S2S2 S3S3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P 01 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 01 S1S1 R

43 43 S C1C1 C2C2 C3C3 0123 0 ggp 12 P p 3 Build a 4 x 256 rectangle: t = 2 C0C0 g gg R 0 p r r S3S3 S2S2 0 0 1 23 00 g g pr 0 SC0C0 C1C1 C2C2 C3C3 S1S1 0001 C1C1 C2C2 C3C3 1122331223 S2S2 S3S3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P 01 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 01 S1S1 R C0C0 C1C1 C2C2 …

44 44 S C1C1 C2C2 C3C3 0123 0 ggp 12 P p 3 Build a 4 x 256 rectangle: t = 2 C0C0 g gg R 0 p r r S3S3 S2S2 0 0 1 23 00 g g pr 0 SC0C0 C1C1 C2C2 C3C3 S1S1 0001 C1C1 C2C2 C3C3 1122331223 S2S2 S3S3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P 01 R … 00 11 0000 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 01 S1S1

45 45 S C1C1 C2C2 C3C3 0123 0 ggp 12 P p 3 Build a 4 x 256 rectangle: t = 2 C0C0 g gg R 0 p r r S3S3 S2S2 0 0 1 23 00 g g pr 0 01 223P P P 33 33 33 33 33 212 33 33 33 33 1101 33 33 33 33 00 33 33 32 RP 333 2 3 3 2 3 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 C0C0 C1C1 C2C2 C3C3 S1S1

46 46 Building k x n Rectangles k-digit, base n (1/k) counter: Tile Complexity: n k

47 47 two temperatures 3 3 3 1 t = 4 n

48 48 t = 4 6 two temperatures n

49 49 n Tile Complexity: two temperatures t = 4 6 j = log n / (log log n – log log log n)

50 50 two temperatures 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]

51 51 Programmable, General Purpose Tile Set?...

52 52 Given: n 1011001 log n High Level Approach

53 53 Given: n 1011001 log n temp High Level Approach 1

54 54 Given: n 1011001 log n temp High Level Approach 1 1

55 55 Given: n 1011001 log n temp High Level Approach 10 10

56 56 Given: n 1011001 log n temp High Level Approach 1011... 0 1011010

57 57 temp High Level Approach 01... 1011010 0

58 58 temp High Level Approach 01... 1011010 0

59 59 temp High Level Approach 01... 1011010 0

60 60 Assembly of n x n Squares N - k k

61 61 Assembly of n x n Squares n - k k

62 62 Assembly of n x n Squares n - k k

63 63 Assembly of n x n Squares n - k k Complexity:

64 64 Assembly of n x n Squares n – log n log n Complexity:

65 65 Assembly of n x n Squares n – log n log n Complexity: seed row

66 66 Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1

67 67 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t =

68 68 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t =

69 69 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t =

70 70 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t =

71 71 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t =

72 72 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 1

73 73 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 1

74 74 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0

75 75 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ z

76 76 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z

77 77 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z

78 78 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z

79 79 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z

80 80 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z

81 81 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z

82 82 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z x

83 83 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = 0 0’ Z 1

84 84 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = Z 1 1’ z

85 85 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = Z 1’

86 86 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = Z 1’ 1

87 87 a Encoding a Single Bit 0 a Z g z g g g g g g g g g 01 0’1’ zz 1 0 1 t = Z 1’ 1 a Z t = 0 0’

88 88 Goal: 1 0 1 0 0

89 89 a 0 s Goal: 1 0 1 0 0 b temp:

90 90 a 1 s b Goal: 1 0 1 0 0 temp:

91 91 a 1 s Goal: 1 0 1 0 0 b X temp:

92 92 a 1 s Goal: 1 0 1 0 0 b Y temp:

93 93 a 1 s Goal: 1 0 1 0 0 b Y temp: a b

94 94 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0

95 95 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 X

96 96 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b

97 97 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 0

98 98 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1

99 99 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1 X

100 100 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1 Y a b

101 101 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1 Y a b 0

102 102 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1 Y a b 0 X

103 103 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1 Y a b 0 Y a b

104 104 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1 Y a b 0 Y a b 0

105 105 a 1 s Goal: 1 0 1 0 0 b Y temp: a b 0 Y a b 1 Y a b 0 Y a b 0 X

106 106 1 1 0 0 1 0 0 0 1 1 1 0 1 1

107 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

108 108 Assembly of n x n Squares n – log n log n

109 109 Assembly of n x n Squares O(log n)

110 110 Assembly of n x n Squares O(log n)

111 111 Results tile complexitytemperature complexity O(1) O(log n) O(1) ( Adleman, Cheng, Goel, Huang STOC 2001 ) n x n squares Temperature Programming

112 112 Results tile complexitytemperature complexity O(1) O(log n) O(1) ( Adleman, Cheng, Goel, Huang STOC 2001 ) ? < log n Smooth Trade off? ? < n x n squares Temperature Programming

113 113 Results tile complexitytemperature complexity O(1) O(log n) O(1) ( Adleman, Cheng, Goel, Huang STOC 2001 ) ? < log n Smooth Trade off? ? < 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 Temperature Programming

114 114 General Shapes? General Scaled Shapes [Soloveichik, Winfree 2004] –O(K s * ) Tile complexity, single temperature Combined with Temperature Programming: –O(1) Tile Complexity –O(K s ) Temperature Complexity General, Constant Scaled Shapes? –O(1) Tile Complexity –O(|S|) Temperature Complexity

115 115 Outline Background, Motivation Model Temperature Programming Probabilistic Programming

116 116 a S Assign Relative Concentrations: Probabilistic Assembly Model bc x d %5 %60 %20 %5

117 117 Probabilistic Assembly Model S a S Tileset = bcx d G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2 %5 %60 %20

118 118 Probabilistic Assembly Model S d a S Tileset = bcx d %5 %60 %20 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

119 119 Probabilistic Assembly Model a S d a S Tileset = bcx d %5 %60 %20 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

120 120 Probabilistic Assembly Model a S x d a S Tileset = bcx d %5 %60 %20 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

121 121 Probabilistic Assembly Model a S x d S d a S Tileset = bcx d %5 %60 %20 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

122 122 Probabilistic Assembly Model a S b x d S d a S Tileset = bcx d %5 %60 %20 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

123 123 Probabilistic Assembly Model a S bc x d S d Two Terminal Shapes Produced a S Tileset = bcx d %5 %60 %20 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

124 124 a S Tileset = Probabilistic Assembly Model bcx d %5 %60 %20 SS d SS ba.20/.85 = %23.5.60/.85 = %70.6.05/.85 = %5.9 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

125 125 a S Tileset = Probabilistic Assembly Model bcx d %5 %60 %20 SS d SS d a S d b S ba S d a S d bcx %23.5 %70.6 %5.9 %75%25 G(y) = 2 G(g) = 2 G(r) = 2 G(p) = 1 G(w) = 1 t = 2

126 126 Generic Tileset for all Squares

127 127 Generic Tileset for Approximate Squares n (1-e)n (1+e)n

128 128 Generic Tileset for Approximate Squares n (1-e)n (1+e)n (e, d) – Approximate Square Assembly Given: - e, d < 0 - integer n Design: A probabilistic tile system that will assemble an n’ x n’ square with: (1-e)n < n’ < (1+e)n With probability at least: 1 - d

129 129 X S Line Estimation of n

130 130 X S S Line Estimation of n

131 131 X S S Line Estimation of n

132 132 X S S Line Estimation of n

133 133 X S S Line Estimation of n

134 134 X S S Line Estimation of n

135 135 X S S Line Estimation of n

136 136 X S S Line Estimation of n

137 137 X S S Line Estimation of n

138 138 X S S Line Estimation of n

139 139 X S S Line Estimation of n

140 140 X S XS Line Estimation of n

141 141 X S XS % c % c/n % c(n-1)/n Line Estimation of n

142 142 X S XS % c % c/n % c(n-1)/n Line Estimation of n E[ Length ] = n Length has Geometric distribution with p = 1/n

143 143 X S XS % c % c/n % c(n-1)/n Line Estimation of n [Becker, Rapaport Remila, 2006] E[ Length ] = n

144 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

145 145 X S Improved Estimation of n: Binomial Distribution SX

146 146 X S % c % c/L % c(L+1)(n-1)/Ln Improved Estimation of n: Binomial Distribution % c(L+1)/Ln SX Probability of placing a red tile given either a red or green tile is placed: 1/n

147 147 X S % c % c/L % c(L+1)(n-1)/Ln Improved Estimation of n: Binomial Distribution % c(L+1)/Ln SX 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 148 X S % c % c/L % c(L+1)(n-1)/Ln Improved Estimation of n: Binomial Distribution % c(L+1)/Ln SX 1 00 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 Binary CounterLength: 10000 Reds: 100 1 0 1 1 0 0 0 1 0 0 1 0 1 0

149 149 X S % c % c/L % c(L+1)(n-1)/Ln Improved Estimation of n: Binomial Distribution % c(L+1)/Ln SX 1 00 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0010 0 1 0 1 0 0 Length: 10000 Reds: 100 Compute Length / Reds: 100 Division tiles Estimate for n

150 150 Problem: Estimation Line too Long SX Length >> n : Too long for an n x n square… Chernoff Bounds only yield high accuracy for Length >> n

151 151 S Multiple lines = HEIGHT: Determined by Geometric Distribution WIDTH: Determined by Geometric Distribution Solution: Estimation Frame Phase 1: Build dimensions of frame.

152 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 153 S 0 1 0 1 1 Sum Reds 0 1 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 154 S 0 1 0 1 1 Sum Reds 0 1 111 Sum Subtotals 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 155 S 0 1 0 1 1 Sum Reds 0 1 111 Sum Subtotals Divide: Length / Reds 1 0 0 1 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 OUTPUT Estimation

156 156 HEIGHT WIDTH Solution: Estimation Frame With high probability: HEIGHT > n Chernoff Bounds imply: Estimation is accurate with high probability: (1-epsilon)n’ < n < (1+ epsilon) n’

157 157 10110110 Finish off Square Output n approximation

158 158 Binary Counter 10110110 n n Finish off Square Output n approximation

159 159 We have a fixed size O(1) tileset that: -For any given e, d - n > C( e, d ) We can assign percentages such that: With probability at least 1- d, a size n’ x n’ square is assembled with ( 1- e )n < n’ < ( 1+ e )n Binary Counter 10110110 n n Result:

160 160 Probabilistic Results Generic size O(1) tileset that builds (e, d)- 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 161 Thanks for Listening Questions? Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: schwellerr@cs.northwestern.eduschwellerr@cs.northwestern.edu http://www.cs.northwestern.edu/~schwellerr/

162 162 Outline Background, Motivation Model Temperature Programming Probabilistic Programming Staged Assembly Overview of Additonal Work Future Work

163 163 Staged Assembly Assembly occurs in a sequence of stages, and assemblies can be separated into separate bins

164 164 Staged Assembly Assembly occurs in a sequence of stages, and assemblies can be separated into separate bins

165 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 166 Staged Assembly Assembly occurs in a sequence of stages, and assemblies can be separated into separate bins Bins = Space Complexity Stages = Time Complexity Bin Complexity: 4 Stage Complexity: 3

167 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 DemaineMIT Martin DemaineMIT Sandor FeketeTU-BS Diane SouvaineTufts Mashood IshaqueTufts Eynat RafalinGoogle

168 168 1 a 0 A 11 aAaA bBbBbB 1110 0 1 Staged Assembly Fixed size particle set: aA d D d D d D 0 1 0 0 0 1 01000 c C 1 c C 1 c C 0 0 00 Macro Tile 1 Macro Tile 2 Large Alphabet of Macro Glues: Large Macro Tileset:

169 169 Staged Assembly Fixed size particle set: Large Alphabet of Macro Glues: Complex Shapes: 1 a 0 A 11 aAaA bBbBbB 1110 0 1 aA d D d D d D 0 1 0 0 0 1 01000 c C 1 c C 1 c C 0 0 00 Macro Tile 1 Macro Tile 2 Large Macro Tileset:

170 170 Laboratory Assembly Fixed size particle set: Large Alphabet of Macro Glues: Complex Shapes: Large Macro Tileset: AG C T 1 a 0 A 11 aAaA bBbBbB 1110 0 1 aA d D d D d D 0 1 0 0 0 1 01000 c C 1 c C 1 c C 0 0 00 Macro Tile 1 Macro Tile 2

171 171 Outline Background, Motivation Model Temperature Programming Probabilistic Programming Staged Assembly Overview of Additonal Work –DNA Strand Design –Shape Verification Future Work

172 172 Glue Design ACGGTTGCCA GGGAT GTTGG CGTAC GACTC CCCTA CAACC GCATG CTGAG

173 173 Glue Design- Standard ACGGTTGCCA GGGAT GTTGG CGTAC GACTC CCCTA CAACC GCATG CTGAG

174 174 Glue Design- Standard ACGGTTGCCA GGGAT GTTGG CGTAC GACTC CCCTA CAACC GCATG CTGAG

175 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, Schweller ICALP 2006]

176 176 Flexible Glue Design

177 177 Flexible Glue Design

178 178 Flexible Glue Design Tile Complexity for n x n squares [ Adleman, Cheng, Goel, Huang ] Flexible Glue: Standard: [Aggarwal, Kao, Goldwasser, Schweller, SODA 2004] Our paper on Flexible Codeword Design: [Kao, Sanghi, Schweller, ISAAC 2006]

179 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 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

181 181 * Shape Verification: Unique-Shape Model

182 182 * x1x1 x2x2 x3x3 * Shape Verification: Unique-Shape Model

183 183 * x1x1 x2x2 x3x3 * *c2c2 c1c1 c3c3 * Shape Verification: Unique-Shape Model

184 184 * x1x1 x2x2 x3x3 * *c2c2 c1c1 c3c3 * x x x 1 0 x x Shape Verification: Unique-Shape Model

185 185 * x1x1 x2x2 x3x3 * *c2c2 c1c1 c3c3 * 0 1 1 Shape Verification: Unique-Shape Model

186 186 * x1x1 x2x2 x3x3 * *c2c2 c1c1 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

187 187 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

188 188 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

189 189 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

190 190 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

191 191 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

192 192 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

193 193 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 Shape Verification: Unique-Shape Model

194 194 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 * * * * Shape Verification: Unique-Shape Model

195 195 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 * * * *T Shape Verification: Unique-Shape Model

196 196 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 * * * *TT Shape Verification: Unique-Shape Model

197 197 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 * * * *TTT Shape Verification: Unique-Shape Model

198 198 * x1x1 x2x2 x3x3 * * ok c2c2 c1c1 c2c2 c2c2 c3c3 * c1c1 0 1 1 * * * *TTTSAT Satisfied (LaBean and Lagoudakis, 1999) Shape Verification: Unique-Shape Model

199 199 x1x1 ** x2x2 x3x3 **TTT ok c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 1 1 SAT x1x1 ** x2x2 x3x3 ** ok c2c2 c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 0 1 Satisfied (LaBean and Lagoudakis, 1999) Shape Verification: Unique-Shape Model

200 200 x1x1 ** x2x2 x3x3 **TTT ok c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 1 1 SAT x1x1 ** x2x2 x3x3 **T ok c2c2 c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 0 1 Satisfied (LaBean and Lagoudakis, 1999) Shape Verification: Unique-Shape Model

201 201 x1x1 ** x2x2 x3x3 **TTT ok c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 1 1 SAT x1x1 ** x2x2 x3x3 **TF ok c2c2 c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 0 1 Satisfied (LaBean and Lagoudakis, 1999) Shape Verification: Unique-Shape Model

202 202 x1x1 ** x2x2 x3x3 **TTT ok c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 1 1 SAT x1x1 ** x2x2 x3x3 **TFF ok c2c2 c2c2 c1c1 c2c2 c2c2 c3c3 * * * * c1c1 0 0 1 Satisfied Not Satisfied (LaBean and Lagoudakis, 1999) Shape Verification: Unique-Shape Model

203 203 TT ok c2c2 SAT * * T ok *T x3x3 x2x2 x1x1 1 1 0 c1c1 c1c1 ** c2c2 *c2c2 c3c3 * TF c2c2 c2c2 NO * * T ok *T x3x3 x2x2 x1x1 0 1 0 c1c1 c1c1 ** c2c2 *c2c2 c3c3 * Satisfied Not Satisfied Shape Verification: Multiple Temperature Model

204 204 TT ok c2c2 SAT * * T ok *T x3x3 x2x2 x1x1 1 1 0 c1c1 c1c1 ** c2c2 *c2c2 c3c3 * TT c2c2 NO * * T ok *T x3x3 x2x2 x1x1 1 1 0 c1c1 c1c1 ** c2c2 *c2c2 c3c3 * Satisfied Not Satisfied Shape Verification: Multiple Temperature Model

205 205 TT ok c2c2 SAT * * T ok *T x3x3 x2x2 x1x1 1 1 0 c1c1 c1c1 ** c2c2 *c2c2 c3c3 * TT c2c2 NO * * T ok *T x3x3 x2x2 x1x1 1 1 0 c1c1 c1c1 ** c2c2 *c2c2 c3c3 * Satisfied Not Satisfied Shape Verification: Multiple Temperature Model

206 206 * x3x3 x2x2 x1x1 * * x3x3 x2x2 x1x1 * Satisfied Not Satisfied Shape Verification: Multiple Temperature Model

207 207 * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * *c1c1 c2c2 c3c3 * FFT NO * Shape Verification: Multiple Temperature Model

208 208 * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 *c1c1 c2c2 c3c3 ** FFT NO ** Shape Verification: Multiple Temperature Model

209 209 * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 *** FFT NO **FFF Shape Verification: Multiple Temperature Model

210 210 * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 FFT NO **FFF * *FTT... Shape Verification: Multiple Temperature Model

211 211 * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 FFT NO **FFF * *FTT... Shape Verification: Multiple Temperature Model

212 212 * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 FFT NO **FFF * *FTT... Shape Verification: Multiple Temperature Model

213 213 * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 FFT NO **FFF * *FTT... * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 TTT SAT **FFF NO * *FTT... Shape Verification: Multiple Temperature Model

214 214 * x1x1 x2x2 x3x3 * * x1x1 x2x2 x3x3 * Satisfiable Not Satisfiable Shape Verification: Multiple Temperature Model

215 215 Input Shape: Shape Verification: Multiple Temperature Model

216 216 Input Shape: * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 FFT NO **FFF * *FTT... Shape Verification: Multiple Temperature Model

217 217 Input Shape: * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 FFT NO **FFF * *FTT... Equivalent to Co-SAT Co-NP-hard Shape Verification: Multiple Temperature Model

218 218 Input Shape: Shape Verification: Multiple Temperature Model

219 219 Input Shape: * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 TTT SAT **FFF NO * *FTT... Shape Verification: Multiple Temperature Model

220 220 Input Shape: Equivalent to SATNP-hard * x1x1 x2x2 x3x3 * 0 0 0 c1c1 ok c2c2 c2c2 * * * 1 0 0 c1c1 c1c1 c1c1 c2c2 c2c2 c2c2 * * * 0 1 0 *c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 **** * * * 1 1 1 ** c1c1 c2c2 c2c2 * * * c1c1 c2c2 c3c3 * c3c3 c3c3 c3c3 TTT SAT **FFF NO * *FTT... Shape Verification: Multiple Temperature Model

221 221 Shape Verification Results StandardP Flexible GlueP Multiple Temperature NP-hard Co-NP-hard Unique ShapeCo-NPC Multiple Tile NP-hard Co-NP-hard (Adleman, Cheng, Goel, Huang, Kempe, Espanes, Rothemund, STOC 2002)

222 222 Outline Background, Motivation Model Temperature Programming Probabilistic Programming Overview of Additonal Work Future Work

223 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

224 224 Shape Replication

225 225 Shape Replication drop temperature

226 226 Shape Replication drop temperature

227 227 Shape Replication drop temperature raise temperature

228 228 Shape Replication drop temperature raise temperature drop temperature

229 229 Shape Replication

230 230 Shape Replication

231 231 Shape Replication raise temperature

232 232 Shape Replication raise temperature drop temperature

233 233 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


Download ppt "1 Robert Schweller Electrical Engineering and Computer Science Department Northwestern University"

Similar presentations


Ads by Google