writing and compiling code into biochemistry marc riedel assistant professor, electrical and...

53
Writing and Compiling Code Writing and Compiling Code into Biochemistry into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics and Computational Biology University of Minnesota PSB ─ Kona, Hawaii, Jan. 7, 2010

Upload: bennett-ball

Post on 18-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Writing and Compiling Code Writing and Compiling Code into Biochemistryinto Biochemistry

Marc RiedelAssistant Professor, Electrical and Computer Engineering

Graduate Faculty, Biomedical Informatics and Computational Biology University of Minnesota

PSB ─ Kona, Hawaii, Jan. 7, 2010

Page 2: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

StudentsElectrical & Computer Engineering

University of Minnesota

Brian Fett Adam Shea Keshab ParhiDistinguished McKnightUniversity Professor;

Edgar F. Johnson Professor;Electrical & Computer Engineering

University of Minnesota

Acknowledgements

Page 3: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

“Minnesota Farmer”

• Most of the cells in his body are not his own!

• Most of the cells in his body are not even human!

• Most of the DNA in his body is alien!

Who is this guy?Acknowledgements

Page 4: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

“Minnesota Farmer”

• 100 trillion bacterial cells of at least 500 different types inhabit his body.

Who is this guy?

He’s a human-bacteria hybrid:

vs.

• only 1 trillion human cells of 210 different types.

[like all of us]

Page 5: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

“Minnesota Farmer”

Who is this guy?What’s in his gut?

• 100 trillion bacterial cells of at least 500 different types inhabit his body.

He’s a human-bacteria hybrid:

vs.

• only 1 trillion human cells of 210 different types.

[like all of us]

Page 6: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

About 3 pounds of bacteria!

What’s in his gut?“E. coli, a self-replicating object only a thousandth of a millimeter in size, can swim 35 diameters a second, taste simple chemicals in its environment, and decide whether life is getting better or worse.”

– Howard C. Berg

Page 7: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

“Stimulus, response! Stimulus response! Don’t you ever think!”

We should put these critters to

work…

Page 8: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Synthetic Biology

• Positioned as an engineering discipline.– “Novel functionality through design”.– Repositories of standardized parts.

• Driven by experimental expertise in particular domains of biology.– Gene-regulation, signaling, metabolism,

protein structures …

Page 9: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Biochemistry in a Nutshell

DNA: string of n nucleotides (n ≈ 109)

... ACCGTTGAATGACG...

},,{},,,{ 2013 aaGTCA

Nucleotides:

Amino acid: coded by a sequence of 3 nucleotides.

Proteins: produced from a sequence of m amino

acids (m ≈ 103) called a “gene”.

},,,{ GTCA

protein},,{ 201 maa

Page 10: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Biochemical Reactions: how types of molecules combine.

+ +2a b c

Playing by the Rules

Page 11: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Biochemical Reactions

9

6

7

cellproteins count

+

8

5

9

Discrete chemical kinetics; spatial homogeneity.

Page 12: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Biochemical Reactions

+

+

+

slow

medium

fast

Relative rates or (reaction propensities):

Discrete chemical kinetics; spatial homogeneity.

Page 13: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Protein-ProteinChemistry

[computational] Biochemistry

y

x

quantities

z

Biochemical [computation]

quantity

Page 14: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Multiplication

pseudo-codebiochemical code

Page 15: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Exponentiation

biochemical code

pseudo-code

Page 16: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Raising-to-a-Power

pseudo-code

biochemical code

Page 17: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

thenMario

Luigi

Biochemical rules are inherently parallel.Sequentialize?

Step 1:

Step 2:

[nearly] Rate Independent Biochemical Computation

)(1 rfg

)(2 gfb

M1

M2

Page 18: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Module Locking

slow

slow

slow

+ +slow

+ slow

Sequentialize computationwith only two rates:“fast” and “slow”.

+ fast

Page 19: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Lock phases or modules with keys.

Keys are generated by keysmiths; but indicators consume keysmiths.

Example: MultiplicationExample: Multiplication

Page 20: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Key GenerationKey Generation

Two-phase protocol to ensure only one type of key is present.

Page 21: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

LogicSynthesis

SPICE

Register Level Design

Behavioral Specification(e.g., DSP function)

Structural Description(e.g., memory and functional units)

Circuit-Level Description(e.g., NAND2 and D flip-flops)

waveforms

Integrated CircuitsIntegrated CircuitsDesign Automation forDesign Automation for

Page 22: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

BiochemistryBiochemistry

LogicSynthesis

SPICE

Register Level Design

Behavioral Specification(e.g., DSP function)

Structural Description(e.g., memory and functional units)

Biochemical Netlist(e.g., Proteins, Enzymes)

Integrated CircuitsIntegrated CircuitsDesign Automation forDesign Automation for

waveforms

BiochemicalSynthesis

SSA Engine

“Stochastic Transient Analysis of Biochemical Systems”

STA Engine

Brian’s Automated ModularBiochemical Instantiator

Verilog Elements ofRegister-basedBiochemical computation

Page 23: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

Two-Tap Moving-Average Filter:

X

1/α= 1/β=

Y

Page 24: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

Two-Tap Moving-Average Filter:

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

Page 25: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

Page 26: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

Page 27: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

Page 28: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

Page 29: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

Page 30: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

module MA(X, Y); input X; output Y; reg Xn; always begin Y = (1/2 * X) + (1/2 * Xn); Xn = X; endendmodule

Page 31: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

Two-Tap Moving-Average Filter:

Chemical Design:

Filter

Page 32: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: FIR Filter

Two-Tap Moving-Average Filter:

Page 33: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: IIR Filter

Biquad versatile infinite-impulse responses filter:

Page 34: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: IIR Filter

Biquad versatile infinite-impulse responses filter:

Page 35: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: IIR Filter

Page 36: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: IIR Filter

Page 37: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Example: IIR Filter

Page 38: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

The probability that a given reaction is the next to fire is proportional to:

• Its rate.• The quantities of its reactants.

See D. Gillespie, “Stochastic Chemical Kinetics”, 2006.

Stochastic Kinetics

+

+

+

k1

k2

k3

Page 39: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

It’s not a bug, it’s a feature.

Page 40: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

BiochemicalReactions

computationinputs outputs

Molecular Triggers

Molecular Products

Synthesizing Biological Computation

Page 41: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

How can we control the quantity of molecular product at the populational level?

Biological Computation at the Populational Level

Page 42: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

product

trigger

Engineer a probabilistic response in each cell.

with Prob. 0.3

productwith Prob. 0.7

Synthesizing Stochasticity

Page 43: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Obtain a fractional response.

Biological Computation at the Populational Level

Page 44: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Z

YX

XPrwith

Y

X

fixedBiochemicalReactions

[stochastic] Biological Computation

Page 45: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Discussion

• Synthesize a design for a precise, robust, programmable probability distribution on outcomes – for arbitrary types and reactions.

Computational Chemical Designvis-a-vis

Technology-Independent Logic Synthesis

• Implement design by selecting specific types and reactions – say from “toolkit”.

Experimental Design vis-a-vis

Technology Mapping in Circuit Design

Page 46: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

DNA Strand Displacement

X1 X2 X3+

Erik Winfree’s group at Caltech: “DNA as a Universal Substrate for Chemical Kinetics.”

Page 47: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

• Methods and CAD tools for generating nearly rate independent biochemical netlists for: nearly any memoryless function (e.g., curve-fitting).

Where are we?

• Methods for generating any register-to-register computation (e.g., DSP functions).

Where are we headed?

• A technology-independent biochemical CPU.

Discussion

Page 48: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Support

CAREER Award 0845650

MARCO (SRC/DoD) Contract 2003-NT-1107

Blue Gene DevelopmentGroup. Rochester, MN

Biomedical Informatics & Computational Biology

UMN / Mayo Clinic / IBM

Page 49: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

BCA

ACB

CBA

2

3

2 3

2

k1

k2

k3

R1R2

R3

See Dan Gillespie,

The probability that a given reaction is the next to fire is proportional to:

• Its rate.• The number of ways that the

reactants can combine.

• “Exact Stochastic Simulation of Coupled Chemical Reactions,”1977. • “Stochastic Chemical Kinetics,” 2006.

Stochastic Chemical Kinetics

Playing by the Rules

Page 50: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

S1 = [5, 5, 5] 0

Choose the next reaction according to:

Stochastic Simulation Algorithm (SSA)

Ri ikiiii XnXn 2,2,1,1,

jj

iiR

)Pr(

where

R1 R2 R3

2

2

1

1i n

X

n

Xki

Page 51: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

Ri ikiiii XnXn 2,2,1,1,R1 R2 R3

Choose the time of the next reaction according to:

S1 = [5, 5, 5] 0

dettt

jj

jj

0

00 )Pr(

Stochastic Simulation Algorithm (SSA)

Page 52: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

S1 = [5, 5, 5] 0

S2 = [4, 7, 4]

Choose R3 and t = 3 seconds.

R1 R2 R3

S3 = [2, 6, 7] 4

Choose R1 and t = 1 seconds.

S4 = [1, 8, 6] 6

Choose R3 and t = 2 seconds.

3

Choose R2 and t = 1 seconds.

Stochastic Simulation Algorithm (SSA)

Page 53: Writing and Compiling Code into Biochemistry Marc Riedel Assistant Professor, Electrical and Computer Engineering Graduate Faculty, Biomedical Informatics

S1 = [5, 5, 5] 0

S2 = [4, 7, 4]

Choose R3 and t = 3 seconds.

S3 = [2, 6, 7] 4

Choose R1 and t = 1 seconds.

S4 = [1, 8, 6] 6

Choose R3 and t = 2 seconds.

Choose R2 and t = 1 seconds.

37

Stochastic Simulation Algorithm (SSA)