writing and compiling code into biochemistry marc riedel assistant professor, electrical and...
TRANSCRIPT
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
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
“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
“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]
“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]
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
“Stimulus, response! Stimulus response! Don’t you ever think!”
We should put these critters to
work…
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 …
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
Biochemical Reactions: how types of molecules combine.
+ +2a b c
Playing by the Rules
Biochemical Reactions
9
6
7
cellproteins count
+
8
5
9
Discrete chemical kinetics; spatial homogeneity.
Biochemical Reactions
+
+
+
slow
medium
fast
Relative rates or (reaction propensities):
Discrete chemical kinetics; spatial homogeneity.
Protein-ProteinChemistry
[computational] Biochemistry
y
x
quantities
z
Biochemical [computation]
quantity
Multiplication
pseudo-codebiochemical code
Exponentiation
biochemical code
pseudo-code
Raising-to-a-Power
pseudo-code
biochemical code
thenMario
Luigi
Biochemical rules are inherently parallel.Sequentialize?
Step 1:
Step 2:
[nearly] Rate Independent Biochemical Computation
)(1 rfg
)(2 gfb
M1
M2
Module Locking
slow
slow
slow
+ +slow
+ slow
Sequentialize computationwith only two rates:“fast” and “slow”.
+ fast
Lock phases or modules with keys.
Keys are generated by keysmiths; but indicators consume keysmiths.
Example: MultiplicationExample: Multiplication
Key GenerationKey Generation
Two-phase protocol to ensure only one type of key is present.
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
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
Example: FIR Filter
Two-Tap Moving-Average Filter:
X
1/α= 1/β=
Y
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
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
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
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
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
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
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
Example: FIR Filter
Two-Tap Moving-Average Filter:
Chemical Design:
Filter
Example: FIR Filter
Two-Tap Moving-Average Filter:
Example: IIR Filter
Biquad versatile infinite-impulse responses filter:
Example: IIR Filter
Biquad versatile infinite-impulse responses filter:
Example: IIR Filter
Example: IIR Filter
Example: IIR Filter
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
It’s not a bug, it’s a feature.
BiochemicalReactions
computationinputs outputs
Molecular Triggers
Molecular Products
Synthesizing Biological Computation
How can we control the quantity of molecular product at the populational level?
Biological Computation at the Populational Level
product
trigger
Engineer a probabilistic response in each cell.
with Prob. 0.3
productwith Prob. 0.7
Synthesizing Stochasticity
Obtain a fractional response.
Biological Computation at the Populational Level
Z
YX
XPrwith
Y
X
fixedBiochemicalReactions
[stochastic] Biological Computation
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
DNA Strand Displacement
X1 X2 X3+
Erik Winfree’s group at Caltech: “DNA as a Universal Substrate for Chemical Kinetics.”
• 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
Support
CAREER Award 0845650
MARCO (SRC/DoD) Contract 2003-NT-1107
Blue Gene DevelopmentGroup. Rochester, MN
Biomedical Informatics & Computational Biology
UMN / Mayo Clinic / IBM
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
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
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)
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)
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)