Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Similar presentations


Presentation on theme: "Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,"— Presentation transcript:

1 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

2 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

3 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

4 Moore’s Law of Microfluidics: Valve Density Doubles Every 4 Months Source: Fluidigm Corporation (http://www.fluidigm.com/images/mlaw_lg.jpg)

5 Moore’s Law of Microfluidics: Valve Density Doubles Every 4 Months Source: Fluidigm Corporation (http://www.fluidigm.com/didIFC.htm)

6 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

7 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

8 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]

9 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer

10 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer

11 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer Thick layer (poured) Thin layer (spin-coated)

12 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer

13 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer

14 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer

15 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer

16 Primitive 1: A Valve (Quake et al.) Control Layer Flow Layer pressure actuator

17 Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit 0 0 1 0 1 0 1 Input Output 0 Output 7 Output 6 Output 5 Output 4 Output 3 Output 2 Output 1 flow layer control layer

18 Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit 0 0 1 0 1 0 1 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

19 Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit 0 0 1 0 1 0 1 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

20 Primitive 2: A Multiplexer (Thorsen et al.) Bit 2Bit 1Bit 0 0 1 0 1 0 1 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

21 Primitive 3: A Mixer (Quake et al.) 1. Load sample on bottom 2. Load sample on top 3. Peristaltic pumping Rotary Mixing

22 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

23 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.

24 CAD Tools for Microfluidic Chips Goal: automate placement, routing, control of microfluidic features Why is this different than electronic CAD?

25 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

26 Our Technique: Automatic Generation of Control Layer

27 1. Describe Fluidic ISA

28 Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA

29 Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA

30 Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves

31 Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves

32 Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing

33 Our Technique: Automatic Generation of Control Layer 1. Describe Fluidic ISA 2. Infer control valves 3. Infer control sharing

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

42 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

43 Embryonic Cell Culture Courtesy J.P. Urbanski

44 Embryonic Cell Culture Courtesy J.P. Urbanski

45 Cell Culture with Waveform Generator Courtesy David Craig

46 Cell Culture with Waveform Generator Courtesy David Craig

47 Metabolite Detector Courtesy J.P. Urbanski

48 Metabolite Detector Courtesy J.P. Urbanski

49 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: http://groups.csail.mit.edu/cag/micado/

50 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 –…

51 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

52 Toward “General Purpose” Microfluidic Chips

53 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 1 2 3 4 Mixer

54 Implementation: Oil-Driven Chip InputsStorage CellsBackground PhaseWash PhaseMixing Chip 128Oil—Rotary

55 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

56 Implementation 2: Air-Driven Chip InputsStorage CellsBackground PhaseWash PhaseMixing Chip 128Oil—Rotary Chip 2432AirWaterIn channels

57 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

58 “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); }

59 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

60 Why Not Binary Search? 0 1 3/8 1/4 1/2 3/8 5 inputs, 4 mixes

61 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

62 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

63 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

64 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 3 2 1 2 -d 1/8 1/4 1/2

65 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 3 2 1 2 -d 1/8 1/4 1/2 3 = 011 0 1 1 5 = 101 1 0 1

66 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 4321 4321 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]

67 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

68

69 “Immunological detection... was carried out as described in the Boehringer digoxigenin-nucleic acid detection kit with some modifications.”

70 - Main paper - Ref. papers - References

71 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?

72 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.

73 Example: Plasmid DNA Extraction Auto-Generated Dependence Graph

74 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

75 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, …

76 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.

77 Benchmark Suite 65 protocols 5800 LOC

78 Example: PCR repeat thermocycling

79 Example: Molecular Barcodes Preparation + PCR (2)

80 Example: DNA Sequencing Preparation PCR Analysis PCR

81 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

82 Growing a Community

83

84

85 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


Download ppt "Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,"

Similar presentations


Ads by Google