dna self-assembly the complexity of self-assembled shapes

58
DNA Self- Assembly The complexity of self-assembled shapes

Post on 21-Dec-2015

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DNA Self-Assembly The complexity of self-assembled shapes

DNA Self-Assembly

The complexity of

self-assembled shapes

Page 2: DNA Self-Assembly The complexity of self-assembled shapes

Self-Assembly

“The process by which an organized structure can spontaneously form from simple parts”

Tile Assembly Model2-D self-assembly of square units called tiles.

Promising applicationsNanofabrication

Page 3: DNA Self-Assembly The complexity of self-assembled shapes

Self-Assembly & Computation

Self-assembled “shape” = Output of computational process.

We are interested in shape complexity (defined later on):Kolmogorov ComplexityTile Complexity

Page 4: DNA Self-Assembly The complexity of self-assembled shapes

Tile Assembly Model

Page 5: DNA Self-Assembly The complexity of self-assembled shapes

Grid of unit square locations

i Z

j Z

(i, j)

Page 6: DNA Self-Assembly The complexity of self-assembled shapes

Directions: d D = {N,E,S,W}

i Z

j Z

N

S

EW

N (i, j) = (i, j+1)

W (i, j) = (i-1, j)

S (i, j) = (i, j-1)

E (i, j) = (i+1, j)

N = S-1, S = N-1

W = E-1, E = W-1

Page 7: DNA Self-Assembly The complexity of self-assembled shapes

Bond types: σ Σ

A bond type describes a ‘side’ of a tile (in terms of interaction with adjacent).

Special bond type for no interaction:

σ1 : σ2 : σ3 :

null:

Page 8: DNA Self-Assembly The complexity of self-assembled shapes

Tile types: t = (σN, σΕ, σS, σW) Σ4

Defined by its four bonds

Special tile:

t1 = (σ1, null, σ1, null) =

t2 = (null, null, σ2, σ3) =

empty = (null, null, null, null)

t T

Page 9: DNA Self-Assembly The complexity of self-assembled shapes

Tile (instance) t = (t, (i, j)) TZ2

A tile t is defined by its type t and its position (i, j) in the grid.

jExample:

t = (t2, (2, 2))

u = (t2, (3, 1))

v = (t1, (1, 1))

t

uv

i

Page 10: DNA Self-Assembly The complexity of self-assembled shapes

Helper functions

Let t = (t, (i, j)) = ((σN, σE, σS, σW), (i, j))

type(t) = t pos(t) = (i, j) bondd(t) = bondd(t) = σd

adj(t,u) = true if dD: pos(t) = d(pos(u))

Page 11: DNA Self-Assembly The complexity of self-assembled shapes

Helper functions (example)

type(t) = t2, pos(t) = (2, 2), bondS(t) = σ2

S(W(pos(t)) = pos(v) = (1,1)

j

t

uv

t = (t2, (2, 2))

u = (t2, (3, 1))

v = (t1, (1, 1))

σ1 : σ2 : σ3 :

i

Page 12: DNA Self-Assembly The complexity of self-assembled shapes

Configuration

A configuration is a set of tiles, with exactly one tile in every location (i, j)

For any configuration A, notation A(i, j) indicates the tile at location (i, j)

Practically, specify a set of non-empty tiles; all other tiles are implicitly empty.

Page 13: DNA Self-Assembly The complexity of self-assembled shapes

Strength functions (definition)

Bond strength function: g(σ, σ´) : Σ2 → ZDefined for all pairs of bonds (including null)

Tile strength function: Γ(t, u)Defined for adjacent tiles t and uEquals to g(σ, σ´) where σ and σ´ are the

bond types of the adjacent sides of t and u respectively

Page 14: DNA Self-Assembly The complexity of self-assembled shapes

Strength functions (example)

σ1 σ2 σ3 null

σ1

σ2

σ3

null

1 0 0 0

0 7 0 0

0 0 2 0

0 0 0 0

Example of g

t u

v

Γ(t, u) = g(σ1, σ1) = 1

Γ(u, v) = g(σ2, σ2) = 7

Formally:

otherwise0,

d direction in u)adj(t, if (u)),bond(t),g(bondu)Γ(t, dd 1

Page 15: DNA Self-Assembly The complexity of self-assembled shapes

Strength function properties

g is symmetric g(σ, null) = 0 g is non-negative g is diagonal

Diagonal means that only matching bond types can interact!

Page 16: DNA Self-Assembly The complexity of self-assembled shapes

Tile system T = (T, ts, g, τ)

A tile system T is defined by:

A set Τ of tile types

A seed tile ts, with type(ts) T

A strength function g

A threshold τ

t1 t2 . . .

Page 17: DNA Self-Assembly The complexity of self-assembled shapes

Self-Assembly (definition)

Self assembly is defined by a relation between configurations

Suppose A and B are identical configs, except for t, which exists in B but not in A:A(pos(t)) = empty, B(pos(t)) = t

Self assembly:A→B if ΣdDΓ(t, A(d(pos(t)))) ≥ τ

Page 18: DNA Self-Assembly The complexity of self-assembled shapes

Self-Assembly (example)

σ1 σ2 σ3 null

σ1

σ2

σ3

null

1 0 0 0

0 7 0 0

0 0 2 0

0 0 0 0

Contents of g

x

y

x t

y

Configuration A Configuration B

A→B only if Γ(t,x) + Γ(t,y) = 1 + 7 ≥ τ

Page 19: DNA Self-Assembly The complexity of self-assembled shapes

Transitive Closure

The reflexive transitive closure of → is denoted as . (That is, we say that A B if we can keep adding tiles to A and reach B: A → A2 → A3 → ... → B).

We are interested in self-assemblies from a single seed tile ts!

Page 20: DNA Self-Assembly The complexity of self-assembled shapes

Assemblies for a tile system T

Prod(T) = {A, such that {ts} A)All the configurations reachable from ts in T.

Term(T) = {A Prod(T), B≠A: A B}All the terminal assemblies reachable from ts

T uniquely produces A if Term(T) = {A}.

Page 21: DNA Self-Assembly The complexity of self-assembled shapes

Threshold τ

A common choice is τ = 2, where the strength function ranges over {0, 1, 2}.

Systems with τ = 1 and a strength function ranging over {0, 1} are rather limited.

Page 22: DNA Self-Assembly The complexity of self-assembled shapes

Example of T = (T, ts, g, τ)

Set T of tile types:

ts = (ts, (2, 4)) g = I = diag{1} τ = 1

N E S W

ts - - - σ1

t1 - σ1 - σ2

t2 - σ2 σ3 -

t3 σ3 - σ4 -

t4 σ4 σ5 - -

t5 - σ6 - σ5

t6 - - σ7 σ6

t7 σ7 - σ8 -

t8 σ8 - - σ9

t9 - σ9 - σ10

t10 - σ10 - -

ts

σ1

t1

σ2 σ1

t2

σ2

σ3

Page 23: DNA Self-Assembly The complexity of self-assembled shapes

What does it assemble to?N E S W

ts - - - σ1

t1 - σ1 - σ2

t2 - σ2 σ3 -

t3 σ3 - σ4 -

t4 σ4 σ5 - -

t5 - σ6 - σ5

t6 - - σ7 σ6

t7 σ7 - σ8 -

t8 σ8 - - σ9

t9 - σ9 - σ10

t10 - σ10 - -

ts

σ1

Page 24: DNA Self-Assembly The complexity of self-assembled shapes

What does it assemble to?N E S W

ts - - - σ1

t1 - σ1 - σ2

t2 - σ2 σ3 -

t3 σ3 - σ4 -

t4 σ4 σ5 - -

t5 - σ6 - σ5

t6 - - σ7 σ6

t7 σ7 - σ8 -

t8 σ8 - - σ9

t9 - σ9 - σ10

t10 - σ10 - -

ts

σ1

t1

σ2 σ1

Page 25: DNA Self-Assembly The complexity of self-assembled shapes

What does it assemble to?N E S W

ts - - - σ1

t1 - σ1 - σ2

t2 - σ2 σ3 -

t3 σ3 - σ4 -

t4 σ4 σ5 - -

t5 - σ6 - σ5

t6 - - σ7 σ6

t7 σ7 - σ8 -

t8 σ8 - - σ9

t9 - σ9 - σ10

t10 - σ10 - -

ts

σ1

t1

σ2 σ1

t2

σ2

σ3

Page 26: DNA Self-Assembly The complexity of self-assembled shapes

What does it assemble to?N E S W

ts - - - σ1

t1 - σ1 - σ2

t2 - σ2 σ3 -

t3 σ3 - σ4 -

t4 σ4 σ5 - -

t5 - σ6 - σ5

t6 - - σ7 σ6

t7 σ7 - σ8 -

t8 σ8 - - σ9

t9 - σ9 - σ10

t10 - σ10 - -

Page 27: DNA Self-Assembly The complexity of self-assembled shapes

Shape scaling

Coordinated* shape of assembly A:SA = {(i, j) such that A(i, j) ≠ empty}

(This is a single connected component) For a set of locations S, and cZ+, define

a c-scaling of S:Sc = {(i, j) such that }(This is a magnification of S by a factor of c)

Sj/c,i/c

*shape within a fixed coordinate system

Page 28: DNA Self-Assembly The complexity of self-assembled shapes

Shape equivalence

Coordinated shapes S1 and S2 are scale-equivalent if c,dZ+ such that S1

c = S2d

Coordinated shapes S1 and S2 are translation-equivalent if they can be made equivalent by translation.

We write S1 S2 if c,dZ+ such that S1c is

translation-equivalent to S2d

Page 29: DNA Self-Assembly The complexity of self-assembled shapes

Shape equivalence (example)

S1 S2 S3

S1 is translation-equivalent to S2

S2 is scale-equivalent to S3

S1 S3

Page 30: DNA Self-Assembly The complexity of self-assembled shapes

Equivalence class

Scale-equivalence, translation-equivalence and are equivalence relations.

The equivalence class of coordinated shapes under the relation “” is called the shape Ŝ. We say that Ŝ is the shape of assembly A if SAŜ.

Page 31: DNA Self-Assembly The complexity of self-assembled shapes

Tile complexity

The tile complexity of a coordinated shape S is the minimum number n of tile types needed by a tile system T to uniquely produce that shape.Ksa(S) = min{n: T with |T|=n, {ts} S*}

Definition directly extended for a shape Ŝ

*Formally, {ts} A, and S is the coordinated shape of A

Page 32: DNA Self-Assembly The complexity of self-assembled shapes

Tile complexity (examples)

Let’s examine Stanford’s initials

ts

ts

Page 33: DNA Self-Assembly The complexity of self-assembled shapes

Tile complexity (“S”)

Minimum Solution: Ksa=11

ts

N E S W

ts - - - σ1

t1 - σ1 - σ2

t2 - σ2 σ3 -

t3 σ3 - σ4 -

t4 σ4 σ5 - -

t5 - σ6 - σ5

t6 - - σ7 σ6

t7 σ7 - σ8 -

t8 σ8 - - σ9

t9 - σ9 - σ10

t10 - σ10 - -

As complex as it can get (need as many tile types as tiles)!

Page 34: DNA Self-Assembly The complexity of self-assembled shapes

Tile complexity (“U”)

Possible solution: n=11

t9

t5

t2

t4

t3 t8

t10

t7

t1 t6ts

N E S W

ts - σ6 - σ1

t1 σ2 σ1 - -

t2 σ3 - σ2 -

t3 σ4 - σ3 -

t4 σ5 - σ4 -

t5 - - σ5 -

t6 σ7 - - σ6

t7 σ8 - σ7 -

t8 σ9 - σ8 -

t9 σ10 - σ9 -

t10 - - σ10 -

Can we do better?

Page 35: DNA Self-Assembly The complexity of self-assembled shapes

Tile complexity (“U”)

Optimal solution: Ksa=7

t4

t5

t2

t4

t3 t3

t5

t2

t1 t6ts

N E S W

ts - σ6 - σ1

t1 σ2 σ1 - -

t2 σ3 - σ2 -

t3 σ4 - σ3 -

t4 σ5 - σ4 -

t5 - - σ5 -

t6 σ72 - - σ6

t7 σ8 - σ7 -

t8 σ9 - σ8 -

t9 σ10 - σ9 -

t10 - - σ10 -

Notice that the leg formed by t2 to t5 is the same as t7 to t10.

Modify t6 by placing bond type σ2 north (instead of σ7).

The assembly will reuse t2 to t5!

Page 36: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

Ksa=?

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Page 37: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

tsL

U

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Page 38: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Page 39: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Assembly grows in this direction

Matching “inputs”

“Outputs”

Type of tile can be determined by two input conditions, and can forward two outputs

Page 40: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

I am the same as my SOUTH, unless it’s time to FLIP!

But how to determine if it’s time to FLIP?

Page 41: DNA Self-Assembly The complexity of self-assembled shapes

Time to flip?

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0Black = Same as SOUTH

Red = Different than south, cause it’s time to flip!

FLIP up to the first 1 from the right, therefore nice property to propagate EAST-to-WEST

Page 42: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

FLIP input

FLIP output

NUM input

NUM output

Page 43: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Flip OFF Flip ON

NUM = 0

NUM = 1

Page 44: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Flip OFF Flip ON

NUM = 0

NUM = 1

0

Page 45: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Flip OFF Flip ON

NUM = 0

NUM = 1

0 1

Page 46: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Flip OFF Flip ON

NUM = 0

NUM = 1

0

1

1

Page 47: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Flip OFF Flip ON

NUM = 0

NUM = 1

0

01

1

Page 48: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

Ksa=7

tsL

U

1

00

1

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Page 49: DNA Self-Assembly The complexity of self-assembled shapes

Binary Counter

0

0

0

1

1

10

1

1

0

0

1

1 1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1 0 0 0

Page 50: DNA Self-Assembly The complexity of self-assembled shapes

Variant of Sierpinski Triangle

Ksa=7

1

1 1

11

1 1

0

11

01 00 1

1 11 0 0 1

0 1 0 1 0

1 1

0 0

Page 51: DNA Self-Assembly The complexity of self-assembled shapes

Compute the tile complexity?

Given a coordinated shape S, can I compute its complexity Ksa(S)?(Combinatorial optimization problem)

Yes, but it’s hard (NP-complete)!

Page 52: DNA Self-Assembly The complexity of self-assembled shapes

Turing Machine

A Turing Machine is a simple computation model which can be used to compute any function.

Most common form:1-dimensional infinite tape with 0s and 1sHead located at some position on the tape Internal state, programCan read/write tape, move head

Page 53: DNA Self-Assembly The complexity of self-assembled shapes

Kolmogorov Complexity

The Kolmogorov complexity of a binary string x with respect to a universal Turing machine U is the smallest program p that outputs x: KU(x) = min{|p|: U(p) = x}

The Kolmogorov complexity of a shape S is the smallest program that can output it as a list of locations encoded in some binary form <S>: K(S) = min{|s|: U(s) = <S>} (directly extended for Ŝ)

Page 54: DNA Self-Assembly The complexity of self-assembled shapes

Complexity theorem

a0, b0, a1, b1, such that Ŝ:

a0K(Ŝ)+b0 ≤ Ksa(Ŝ)logKsa(Ŝ) ≤ a1K(Ŝ)+b1

Therefore K = Θ(nlogn)

Page 55: DNA Self-Assembly The complexity of self-assembled shapes

Proof for first part

Create a Turing machine that simulates self-assembly.Write a fixed-size program p0 to do the

assembly of a tile system T that reproduces Ŝ.Final program p = p0 + <T>

<T> is binary encoding of tile system T. What is the size of <T>?

In other words, how many bits are needed to describe T?

Page 56: DNA Self-Assembly The complexity of self-assembled shapes

Size of <T> = <(T, ts, g, τ)>

T contains n = Ksa(Ŝ) tile types. Each tile type is specified by four bonds At most 4n different bond types For every tile type, 4log(4n) bits

Therefore, T is specified in 4nlog(4n) bits Note: ts is included in T.

g, τ are not directly needed; for each tile type, specify which of the 16 subsets of D it can bind Needs 16n bits

Page 57: DNA Self-Assembly The complexity of self-assembled shapes

Proof (cont)

Therefore final size of program: cnlogn+d

K(Ŝ) = min{programs} ≤ cnlogn+d

Thus:

a0K(Ŝ)+b0 ≤ Ksa(Ŝ)logKsa(Ŝ)

Page 58: DNA Self-Assembly The complexity of self-assembled shapes

Compute the tile complexity? (v2)

Given a shape class Ŝ, can I compute its complexity Ksa(Ŝ)?

No, Ksa(Ŝ) is uncomputable!

In other words, language L is undecidable:

L = { (ℓ, n) s.t. ℓ = <S> for some SŜ and Ksa(Ŝ)≤n }