Molecules as Automata - Luca Cardelli

Report 3 Downloads 184 Views
Molecules as Automata Luca Cardelli Microsoft Research BIC-TA Beijing, 2009-10-17 http://lucacardelli.name

Nano Tasks ● Sensing o Reacting to forces o Binding to molecules

Sensing

● Actuating o Releasing molecules o Producing forces

● Constructing o Spontaneous self-assembly o Catalyzed by stimuli

Computing Constructing

Actuating

● Computing o All that under 'program control' o Analog: Signal Filtering, Amplification o Digital: Logical gates

● Nucleic Acids (DNA/RNA) o Probably the only materials that can perform all these functions. o Technology relatively well developed. o Can interface to biological entities (medical implications).

Luca Cardelli

2009-10-17

2

Nano Computing

Sensing

Computing Constructing

Actuating

Higher-level languages Discrete Chemistry

Process Algebra

Boolean Networks

Finite State Automata

Abstract Machines

Petri Nets

DNA

Luca Cardelli

2009-10-17

3

What does DNA Compute? ● Electronics has electrons o o o o o

All electrons are the same All you can do is see if you have few (‘False’) or lots (‘True’) of electrons Hence Boolean logic is at the basis of digital circuit design Symbolic and numeric computation has to be encoded above that But mostly we want to compute with symbols and numbers, not with Booleans

● DNA computing has symbols (DNA words) o DNA words are not all the same o Symbolic computation can be done directly o We can also directly use molecular concurrency

● Process Algebra as the ‘Boolean Algebra’ of DNA Computing o What are the ‘gates’ of symbolic concurrent computation? o That’s what Process Algebra is about o (Process Algebra comes from the theory of concurrent systems) Luca Cardelli

2009-10-17

4

Implementing "Arbitrary" Computing Functions

Luca Cardelli

2009-10-17

5

DNA Compilation Separating Circuit Design from Gate Design Higher-level languages Discrete Chemistry

Interacting Automata

Boolean Networks

Finite State Automata

Abstract Machines

Petri Nets

Circuit Design Space Sequence Design

DNA

Luca Cardelli

2009-10-17

6

DNA Compilation Separating Circuit Design from Gate Design Higher-level languages Discrete Chemistry



Seesaw Gates

Interacting Automata Strand Algebra

Boolean Networks

Finite State Automata

Abstract Machines

Petri Nets

Circuit Design Verification of Circuit Design

(e.g. half-adders from Boolean gates)

Gate Design Space Sequence Design

DNA

Luca Cardelli

2009-10-17

7

DNA Compilation Separating Circuit Design from Gate Design Higher-level languages Discrete Chemistry



Seesaw Gates

Interacting Automata

Boolean Networks

Finite State Automata

Abstract Machines

Petri Nets

Circuit Design

Strand Algebra Verification of Gate Design

(e.g. half-adders from Boolean gates)

Gate Design

Strand Displacement

(e.g. Boolean gates from transistors)

Sequence Design

DNA

Luca Cardelli

2009-10-17

8

DNA Compilation Separating Circuit Design from Gate Design Higher-level languages Discrete Chemistry



Seesaw Gates

Other DNA Mechanisms

Interacting Automata

Boolean Networks

Finite State Automata

Circuit Design

Strand Algebra

Strand Displacement

Abstract Machines

Petri Nets

(e.g. half-adders from Boolean gates)

Other DNA Mechanisms

Gate Design Verification of Sequence Design

(e.g. Boolean gates from transistors)

Sequence Design

DNA

Luca Cardelli

2009-10-17

9

DNA Compilation Separating Circuit Design from Gate Design Higher-level languages Discrete Chemistry



Seesaw Gates

Other DNA Mechanisms

Interacting Automata

Boolean Networks

Finite State Automata

Abstract Machines

Petri Nets

Circuit Design

Strand Algebra

Strand Displacement

(e.g. half-adders from Boolean gates)

Gate Design

Other DNA Mechanisms

(e.g. Boolean gates from transistors)

Sequence Design

DNA

Rest of the talk: bottom up Luca Cardelli

2009-10-17

10

Computational Step Design

Luca Cardelli

2009-10-17

11

Toehold Mediated Strand Displacement

toehold

Irreversible

Luca Cardelli

2009-10-17

12

Toehold Exchange

Reversible

Luca Cardelli

2009-10-17

13

Gate Design

Luca Cardelli

2009-10-17

14

x.y Transducer Gate

Gb,Gt (gate backbone and trigger) form the transducer. Any history segment that is not determined by the gate structure is said to be ‘generic’ (can be anything). Any gate segment that is not a non-history segment of an input or output signal is taken to be ‘fresh’ (globally unique for the gate), to avoid possible interferences. Luca Cardelli

2009-10-17

15

Strand Displacement Language with Andrew Phillips

Luca Cardelli

2009-10-17

16

Strand Displacement Simulation Tool Transducer gate x.y (3 initial species) directive sample 30.0 1000 new [email protected],1.0 new [email protected],1.0 ( 1000 * <xh xt^ xb> | 1000 * xt^:[xb yt^]:[a] | 1000 * )

Luca Cardelli

2009-10-17

17

Circuit Design

Luca Cardelli

2009-10-17

18

Strand Algebra n x m gates

P ::= x ⋮ [x1,..,xn].[y1,..,ym] ⋮ 0 ⋮ P|P ⋮ P* x [x1,..,xn].[y1,..,ym] 0 P|P P*

is is is is is

n≥1, m≥0

a signal a gate an inert solution parallel composition of signals and gates a population (multiset) of signals and gates

Reaction Rule

x1 | .. | xn | [x1,..,xn].[y1,..,ym] → y1 | .. | ym Equivalent to (stochastic) place-transition Petri Nets.

Luca Cardelli

2009-10-17

19

Compiling Strand Algebra to DNA P ::= x ⋮ [x1,..,xn].[y1,..,ym] ⋮ 0 ⋮ P|P ⋮ P*

n≥1, m≥0

● compile(x) = ● compile([x1,..,xn].[y1,..,ym]) =

● compile(0) = empty solution ● compile(P | P’) = mix(compile(P), compile(P’)) ● compile(P*) = population(compile(P))

Luca Cardelli

2009-10-17

20

Abstract Machines

Luca Cardelli

2009-10-17

21

Boolean Networks Boolean Networks to Strand Algebra

This encoding is compositional, and can encode any Boolean network: - multi-stage networks can be assembled (combinatorial logic) - network loops are allowed (sequential logic)

Luca Cardelli

2009-10-17

22

Petri Nets Petri Nets to Strand Algebra Transitions as Gates Place markings as Signals

Luca Cardelli

2009-10-17

23

Interacting Automata !c

?a

!c

C

?a

C

?c A

B ?b

!a

?c A !b

!c

?a

B ?b

!a

?a

?c

B ?b

([A,B].[B,B])* | ([B,C].[C,C])* | ([C,A].[A,A])* | A|A|B|C

C

?c

!a

!b

!c

C

A

900xA, 500xB, 100xC

A !b

!a

B ?b

!b

This is a uniform population of identical automata, but heterogeneous populations of interacting automata can be similarly handled.

Luca Cardelli

2009-10-17

24

Sequence Design

Luca Cardelli

2009-10-17

25

Thermodynamic Sequence Design

Input

Output

http://nupack.org/

Luca Cardelli

2009-10-17

26

Conclusions

Luca Cardelli

2009-10-17

27

Conclusion ● Nucleic Acids o Programmable matter

● DNA Strand Displacement o A basic computational mechanism at the molecular level

● DNA Compilation o Abstract Machines (Boolean Networks, Petri Nets, Interacting Automata) o Via intermediate languages (Strand Algebra, Strand Displacement Language). o And sequence generation.

● Tools o Thermodynamic analysis. o Simulation. o Verification/Optimization (not yet).

● References o D. Soloveichik, G. Seelig, E. Winfree. DNA as a Universal Substrate for Chemical Kinetics Proc. DNA14. o L. Cardelli. Strand Algebras for DNA Computing. Proc. DNA15. o L. Cardelli, A. Phillips. A Programming Language for Composable DNA Circuits. Royal Society Interface Journal. Luca Cardelli

2009-10-17

28

http://lucacardelli.name

Luca Cardelli

2009-10-17

29