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