Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena, Todd Thorsen, and Saman Amarasinghe Microsoft Research India ICIP 2011
Microfluidic Chips Idea: a whole biology lab on a single chip –Input/output –Sensors: pH, glucose, temperature, etc. –Actuators: mixing, PCR, electrophoresis, cell lysis, etc. Benefits: –Small sample volumes –High throughput Applications: –Biochemistry - Cell biology –Biological computing 1 mm 10x real-time
Application to Rural Diagnostics Disposable Enteric Card PATH, Washington U. Micronics, Inc., U. Washington Targets: - E. coli, Shigella, Salmonella, C. jejuni DxBox U. Washington, Micronics, Inc., Nanogen, Inc. Targets: - malaria (done) - dengue, influenza, Rickettsial diseases, typhoid, measles (under development) CARD Rheonix, Inc. Targets: - HPV diagnosis - Detection of specific gene sequences
Moore’s Law of Microfluidics: Valve Density Doubles Every 4 Months Source: Fluidigm Corporation (
Moore’s Law of Microfluidics: Valve Density Doubles Every 4 Months Source: Fluidigm Corporation (
Current Practice: Manage Gate-Level Details from Design to Operation For every change in the experiment or the chip design: 1. Manually draw in AutoCAD 2. Operate each gate from LabView fabricate chip
Abstraction Layers for Microfluidics C x86 Pentium III, Pentium IV Silicon Analog transistors, registers, … Fluidic Instruction Set Architecture (ISA) - primitives for I/O, storage, transport, mixing Protocol Description Language - architecture-independent protocol description Fluidic Hardware Primitives - valves, multiplexers, mixers, latches chip 1chip 2chip 3
Abstraction Layers for Microfluidics Fluidic Instruction Set Architecture (ISA) - primitives for I/O, storage, transport, mixing Protocol Description Language - architecture-independent protocol description Fluidic Hardware Primitives - valves, multiplexers, mixers, latches chip 1chip 2chip 3 BioCoder Language [J.Bio.Eng. 2010] Contributions Optimized Compilation [Natural Computing 2007] Demonstrate Portability [DNA 2006] Micado AutoCAD Plugin [MIT 2008, ICCD 2009] Digital Sample Control Using Soft Lithography [Lab on a Chip ‘06]
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer Thick layer (poured) Thin layer (spin-coated)
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer
Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer pressure actuator
Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit Input Output 0 Output 7 Output 6 Output 5 Output 4 Output 3 Output 2 Output 1 flow layer control layer
Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit Input Output 0 Output 7 Output 6 Output 5 Output 4 Output 3 Output 2 Output 1 Example: select 3 = 011 flow layer control layer
Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit Input Output 0 Output 7 Output 6 Output 5 Output 4 Output 3 Output 2 Output 1 Example: select 3 = 011 flow layer control layer
Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit Input Output 0 Output 7 Output 6 Output 5 Output 4 Output 3 Output 2 Output 1 Example: select 3 = 011 flow layer control layer
Primitive 3: A Mixer (Quake et al.) 1. Load sample on bottom 2. Load sample on top 3. Peristaltic pumping Rotary Mixing
Abstraction Layers for Microfluidics Fluidic Instruction Set Architecture (ISA) - primitives for I/O, storage, transport, mixing Protocol Description Language - architecture-independent protocol description Fluidic Hardware Primitives - valves, multiplexers, mixers, latches chip 1chip 2chip 3
Driving Applications 1. What are the best indicators for oocyte viability? -With Mark Johnson’s and Todd Thorsen’s groups -During in-vitro fertilization, monitor cell metabolites and select healthiest embryo for implantation 2. How do mammalian signal transduction pathways respond to complex inputs? -With Jeremy Gunawardena’s and Todd Thorsen’s groups -Isolate cells and stimulate with square wave, sine wave, etc.
CAD Tools for Microfluidic Chips Goal: automate placement, routing, control of microfluidic features Why is this different than electronic CAD?
CAD Tools for Microfluidic Chips Goal: automate placement, routing, control of microfluidic features Why is this different than electronic CAD? 1. Control ports (I/O pins) are bottleneck to scalability –Pressurized control signals cannot yet be generated on-chip –Thus, each logical set of valves requires its own I/O port 2. Control signals correlated due to continuous flows Demand & opportunity for minimizing control logic pipelined flowcontinuous flow
Our Technique: Automatic Generation of Control Layer
1. Describe Fluidic ISA
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing 4. Route valves to control ports
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing 4. Route valves to control ports
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing 4. Route valves to control ports
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing 4. Route valves to control ports 5. Generate an interactive GUI
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing 4. Route valves to control ports 5. Generate an interactive GUI
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing 4. Route valves to control ports 5. Generate an interactive GUI
Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing 4. Route valves to control ports 5. Generate an interactive GUI
Routing Algorithm Build on recent algorithm for simultaneous pin assignment & routing [Xiang et al., 2001] Idea: min cost - max flow from valves to ports Our contribution: extend algorithm to allow sharing – Previous capacity constraint on each edge: – Modified capacity constraint on each edge: Solve with linear programming, allowing sharing where beneficial f 1 + f 2 + f 3 + f 4 + f 5 + f 6 ≤ 1 max(f 1, f 4 ) + max(f 2, f 3 ) + f 5 + f 6 ≤ 1
Routing Algorithm Build on recent algorithm for simultaneous pin assignment & routing [Xiang et al., 2001] Idea: min cost - max flow from valves to ports Our contribution: extend algorithm to allow sharing – Previous capacity constraint on each edge: – Modified capacity constraint on each edge: Solve with linear programming, allowing sharing where beneficial f 1 + f 2 + f 3 + f 4 + f 5 + f 6 ≤ 1 max(f 1, f 4 ) + max(f 2, f 3 ) + f 5 + f 6 ≤ 1
Embryonic Cell Culture Courtesy J.P. Urbanski
Embryonic Cell Culture Courtesy J.P. Urbanski
Cell Culture with Waveform Generator Courtesy David Craig
Cell Culture with Waveform Generator Courtesy David Craig
Metabolite Detector Courtesy J.P. Urbanski
Metabolite Detector Courtesy J.P. Urbanski
Micado: An AutoCAD Plugin Implements ISA, control inference, routing, GUI export –Using slightly older algorithms than presented here [Amin ‘08] –Parameterized design rules –Incremental construction of chips Realistic use by at least 3 microfluidic researchers Freely available at:
Open Problems Automate the design of the flow layer –Hardware description language for microfluidics –Define parameterized and reusable modules Replicate and pack a primitive as densely as possible –How many cell cultures can you fit on a chip? Support additional primitives and functionality –Metering volumes –Sieve valves –Alternate mixers –Separation primitives –…
Abstraction Layers for Microfluidics Fluidic Instruction Set Architecture (ISA) - primitives for I/O, storage, transport, mixing Protocol Description Language - architecture-independent protocol description Fluidic Hardware Primitives - valves, multiplexers, mixers, latches chip 1chip 2chip 3
Toward “General Purpose” Microfluidic Chips
Towards a Fluidic ISA Microfluidic chips have various mixing technologies –Electrokinetic mixing –Droplet mixing –Rotary mixing Common attributes: –Ability to mix two samples in equal proportions, store result Fluidic ISA: mix (int src 1, int src 2, int dst) –Ex: mix(1, 2, 3) –To allow for lossy transport, only 1 unit of mixture retained [Quake et al.] [Fair et al.] [Levitan et al.] Storage Cells Mixer
Implementation: Oil-Driven Chip InputsStorage CellsBackground PhaseWash PhaseMixing Chip 128Oil—Rotary
Implementation: Oil-Driven Chip InputsStorage CellsBackground PhaseWash PhaseMixing Chip 128Oil—Rotary mix (S 1, S 2, D) { 1. Load S 1 2. Load S 2 3. Rotary mixing 4. Store into D } 50x real-time
Implementation 2: Air-Driven Chip InputsStorage CellsBackground PhaseWash PhaseMixing Chip 128Oil—Rotary Chip 2432AirWaterIn channels
Implementation 2: Air-Driven Chip mix (S 1, S 2, D) { 1. Load S 1 2. Load S 2 3. Mix / Store into D 4. Wash S 1 5. Wash S 2 } InputsStorage CellsBackground PhaseWash PhaseMixing Chip 128Oil—Rotary Chip 2432AirWaterIn channels 50x real-time
“Write Once, Run Anywhere” Example: Gradient generation Hidden from programmer: –Location of fluids –Details of mixing, I/O –Logic of valve control –Timing of chip operations 450 Valve Operations Fluid yellow = input (0); Fluid blue = input(1); for (int i=0; i<=4; i++) { mix(yellow, 1-i/4, blue, i/4); }
Algorithms for Efficient Mixing Mixing is fundamental operation of microfluidics –Prepare samples for analysis –Dilute concentrated substances –Control reagant volumes How to synthesize complex mixture using simple steps? –Many systems support only 50/50 mixers –Should minimize number of mixes, reagent usage –Note: some mixtures only reachable within error tolerance N Analogous to ALU operations on microprocessors Interesting scheduling and optimization problem
Why Not Binary Search? 0 1 3/8 1/4 1/2 3/8 5 inputs, 4 mixes
Why Not Binary Search? 0 1 3/8 3/4 1/2 3/8 4 inputs, 3 mixes 1/4 1/2 3/8 5 inputs, 4 mixes
Min-Mix Algorithm Simple algorithm yields minimal number of mixes –For any number of reagents, to any reachable concentration –Also minimizes reagent usage on certain chips
1.The mixing process can be represented by a tree. Min-Mix Algorithm: Key Insights B A B A 5/8 A, 3/8 B
1.The mixing process can be represented by a tree. 2.The contribution of an input sample to the overall mixture is 2 -d, where d is the depth of the sample in the tree Min-Mix Algorithm: Key Insights B A B A 5/8 A, 3/8 B d d 1/8 1/4 1/2
1.The mixing process can be represented by a tree. 2.The contribution of an input sample to the overall mixture is 2 -d, where d is the depth of the sample in the tree 3.In the optimal mixing tree, a reagent appears at depths corresponding to the binary representation of its overall concentration. Min-Mix Algorithm: Key Insights B A B A 5/8 A, 3/8 B d d 1/8 1/4 1/2 3 = =
Min-Mix Algorithm Example: mix 5/16 A, 7/16 B, 4/16 C To mix k fluids with precision 1/n: –Min-mix algorithm: O(k log n) mixes –Binary search: O(k n) mixes B C A B A B A A B B B C 1/16 1/8 1/4 1/2 2 -d d A=5 B=7 C=4 =0101 =0111 =0100 [Natural Computing 2007]
Abstraction Layers for Microfluidics Fluidic Instruction Set Architecture (ISA) - primitives for I/O, storage, transport, mixing Protocol Description Language - architecture-independent protocol description Fluidic Hardware Primitives - valves, multiplexers, mixers, latches chip 1chip 2chip 3
“Immunological detection... was carried out as described in the Boehringer digoxigenin-nucleic acid detection kit with some modifications.”
- Main paper - Ref. papers - References
BioCoder: A High-Level Programming Language for Biology Protocols 1. Enable automation via microfluidic chips 2. Improve reproducibility of manual experiments In biology publications, can we replace the textual description of the methods used with a computer program?
FluidSample f1 = measure_and_add(f0, lysis_buffer, 100*uL); FluidSample f2 = mix(f1, INVERT, 4, 6); time_constraint(f1, 2*MINUTES, next_step); Example: Plasmid DNA Extraction I. Original protocol (Source: Klavins Lab) II. BioCoder code III. Auto-generated text output Add 100 ul of 7X Lysis Buffer (Blue) and mix by inverting the tube 4-6 times. Proceed to step 3 within 2 minutes. Add 100 ul of 7X Lysis Buffer (Blue). Invert the tube 4-6 times. NOTE: Proceed to the next step within 2 mins.
Example: Plasmid DNA Extraction Auto-Generated Dependence Graph
Declaration / measurement / disposal - declare_fluid - declare_column - measure_sample - measure_fluid - volume - discard - transfer - transfer_column - declare_tissue Combination / mixing - combine - mix - combine_and_mix - addto_column - mixing_table Centrifugation - centrifuge_pellet - centrifuge_phases - centrifuge_column Temperature - set_temp - use_or_store - autoclave Timing - wait - time_constraint - store_until - inoculation - invert_dry Detection - ce_detect - gas_chromatography - nanodrop - electrophoresis - mount_observe_slide - sequencing BioCoder Language Primitives
Standardizing Ad-Hoc Language Need to convert qualitative words to quantitative scale Example: a common scale for mixing –When a protocol says “mix”, it could mean many things –Level 1: tap –Level 2: stir –Level 3: invert –Level 4: vortex / resuspend / dissolve Similar issues with temperature, timing, opacity, …
Separating Instructions from Hints How to translate abstract directions? –“Remove the medium by aspiration, leaving the bacterial pellet as dry as possible.” Hints provide tutorial or self-check information –Can be ignored if rest of protocol is executed correctly centrifuge(&medium,...); hint(pellet_dry) Aspirate and remove medium. Leave the pellet as dry as possible.
Benchmark Suite 65 protocols 5800 LOC
Example: PCR repeat thermocycling
Example: Molecular Barcodes Preparation + PCR (2)
Example: DNA Sequencing Preparation PCR Analysis PCR
Validating the Language Eventual validation: automatic execution –But BioCoder more capable than most chips today –Need to decouple language research from microfluidics research Initial validation: human execution –In collaboration with Prof. Utpal Nath’s lab at IISc –Target Plant DNA Isolation, common task for summer intern Biologist is never exposed to original lab notes To the best of our knowledge, first execution of a real biology protocol from a portable programming language Original Lab Notes BioCoder Code Auto-Generated Protocol Execution in Lab
Growing a Community
Conclusions Abstraction layers for a programmable biology –CAD tools for microfluidics –Fluidic ISA –BioCoder language Vision for microfluidics: everyone uses standard chip Vision for software: a de-facto language for protocols –Download a colleague’s code, run it on your chip –Compose modules and libraries to enable complex experiments that are impossible to perform today