microfluidic chips

85
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

Upload: saber

Post on 23-Feb-2016

90 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Microfluidic  Chips

Bringing Programmability toExperimental Biology

Bill ThiesJoint work with Vaishnavi Ananthanarayanan, J.P. Urbanski,

Nada Amin, David Craig, Jeremy Gunawardena, Todd Thorsen, and Saman Amarasinghe

Microsoft Research India

ICIP 2011

Page 2: Microfluidic  Chips

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

Page 3: Microfluidic  Chips

Application to Rural Diagnostics

DisposableEnteric Card

PATH,Washington U.Micronics, Inc.,U. Washington

Targets: - E. coli, Shigella, Salmonella, C. jejuni

DxBoxU. Washington,Micronics, Inc.,Nanogen, Inc.

Targets: - malaria (done) - dengue, influenza, Rickettsial diseases, typhoid, measles (under development)

CARDRheonix, Inc.

Targets: - HPV diagnosis - Detection of specific gene sequences

Page 4: Microfluidic  Chips

Moore’s Law of Microfluidics:Valve Density Doubles Every 4 Months

Source: Fluidigm Corporation (http://www.fluidigm.com/images/mlaw_lg.jpg)

Page 5: Microfluidic  Chips

Moore’s Law of Microfluidics:Valve Density Doubles Every 4 Months

Source: Fluidigm Corporation (http://www.fluidigm.com/didIFC.htm)

Page 6: Microfluidic  Chips

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

fabricatechip

Page 7: Microfluidic  Chips

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 1 chip 2 chip 3

Page 8: Microfluidic  Chips

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 1 chip 2 chip 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]

Page 9: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Page 10: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Page 11: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Thick layer (poured)

Thin layer (spin-coated)

Page 12: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Page 13: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Page 14: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Page 15: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Page 16: Microfluidic  Chips

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

pressure

actuator

Page 17: Microfluidic  Chips

Primitive 2: A Multiplexer (Thorsen et al.)

Bit 2 Bit 1 Bit 00 1 0 1 0 1

Input

Output 0

Output 7Output 6Output 5Output 4Output 3Output 2Output 1

flow layercontrol layer

Page 18: Microfluidic  Chips

Primitive 2: A Multiplexer (Thorsen et al.)

Bit 2 Bit 1 Bit 00 1 0 1 0 1

Input

Output 0

Output 7Output 6Output 5Output 4Output 3Output 2Output 1

Example: select 3 = 011

flow layercontrol layer

Page 19: Microfluidic  Chips

Primitive 2: A Multiplexer (Thorsen et al.)

Bit 2 Bit 1 Bit 00 1 0 1 0 1

Input

Output 0

Output 7Output 6Output 5Output 4Output 3Output 2Output 1

Example: select 3 = 011

flow layercontrol layer

Page 20: Microfluidic  Chips

Primitive 2: A Multiplexer (Thorsen et al.)

Bit 2 Bit 1 Bit 00 1 0 1 0 1

Input

Output 0

Output 7Output 6Output 5Output 4Output 3Output 2Output 1

Example: select 3 = 011

flow layercontrol layer

Page 21: Microfluidic  Chips

Primitive 3: A Mixer (Quake et al.)

1. Load sample on bottom2. Load sample on top

3. Peristaltic pumping

Rotary Mixing

Page 22: Microfluidic  Chips

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 1 chip 2 chip 3

Page 23: Microfluidic  Chips

Driving Applications1. What are the best indicators for oocyte viability?

- With Mark Johnson’s andTodd 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.

Page 24: Microfluidic  Chips

CAD Tools for Microfluidic Chips• Goal: automate placement, routing, control of

microfluidic features• Why is this different than electronic CAD?

Page 25: Microfluidic  Chips

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 logicpipelined flow continuous flow

Page 26: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

Page 27: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA

Page 28: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA

Page 29: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA

Page 30: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves

Page 31: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves

Page 32: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing

Page 33: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing

Page 34: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing4. Route valves to control ports

Page 35: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing4. Route valves to control ports

Page 36: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing4. Route valves to control ports

Page 37: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing4. Route valves to control ports5. Generate an interactive GUI

Page 38: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing4. Route valves to control ports5. Generate an interactive GUI

Page 39: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing4. Route valves to control ports5. Generate an interactive GUI

Page 40: Microfluidic  Chips

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves3. Infer control sharing4. Route valves to control ports5. Generate an interactive GUI

Page 41: Microfluidic  Chips

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

f1 + f2 + f3 + f4 + f5 + f6 ≤ 1

max(f1, f4) + max(f2 , f3) + f5 + f6 ≤ 1

Page 42: Microfluidic  Chips

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

f1 + f2 + f3 + f4 + f5 + f6 ≤ 1

max(f1, f4) + max(f2 , f3) + f5 + f6 ≤ 1

Page 43: Microfluidic  Chips

Embryonic Cell Culture

Courtesy J.P. Urbanski

Page 44: Microfluidic  Chips

Embryonic Cell Culture

Courtesy J.P. Urbanski

Page 45: Microfluidic  Chips

Cell Culture with Waveform Generator

Courtesy David Craig

Page 46: Microfluidic  Chips

Cell Culture with Waveform Generator

Courtesy David Craig

Page 47: Microfluidic  Chips

Metabolite Detector

Courtesy J.P. Urbanski

Page 48: Microfluidic  Chips

Metabolite Detector

Courtesy J.P. Urbanski

Page 49: Microfluidic  Chips

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/

Page 50: Microfluidic  Chips

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

Page 51: Microfluidic  Chips

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 1 chip 2 chip 3

Page 52: Microfluidic  Chips

Toward “General Purpose” Microfluidic Chips

Inpu

ts

Out

puts

FluidicStorage(RAM)

In

Out

MixingChambers

Inpu

ts

Out

puts

FluidicStorage(RAM)

In

Out

MixingChambers

Sensorsand

Actuators

Inpu

ts

Out

puts

FluidicStorage(RAM)

In

Out

MixingChambers

Inpu

ts

Out

puts

FluidicStorage(RAM)

In

Out

MixingChambers

Sensorsand

Actuators

Page 53: 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 src1, int src2, 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

1234

Mixer

Page 54: Microfluidic  Chips

Implementation: Oil-Driven Chip

Inputs Storage Cells Background Phase Wash Phase Mixing

Chip 1 2 8 Oil — Rotary

Page 55: Microfluidic  Chips

Implementation: Oil-Driven Chip

Inputs Storage Cells Background Phase Wash Phase Mixing

Chip 1 2 8 Oil — Rotary

mix (S1, S2, D) {

1. Load S1

2. Load S2

3. Rotary mixing 4. Store into D}

50x real-time

Page 56: Microfluidic  Chips

Implementation 2: Air-Driven Chip

Inputs Storage Cells Background Phase Wash Phase Mixing

Chip 1 2 8 Oil — RotaryChip 2 4 32 Air Water In channels

Page 57: Microfluidic  Chips

Implementation 2: Air-Driven Chip

mix (S1, S2, D) {

1. Load S1

2. Load S2

3. Mix / Store into D 4. Wash S1

5. Wash S2

}

Inputs Storage Cells Background Phase Wash Phase Mixing

Chip 1 2 8 Oil — RotaryChip 2 4 32 Air Water In channels

50x real-time

Page 58: Microfluidic  Chips

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

Page 59: Microfluidic  Chips

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

Page 60: Microfluidic  Chips

Why Not Binary Search?0 13/8

1/41/2

1/23/8 5 inputs, 4 mixes

Page 61: Microfluidic  Chips

Why Not Binary Search?0 13/8

3/41/2

3/84 inputs, 3 mixes

1/41/2

1/23/8 5 inputs, 4 mixes

Page 62: Microfluidic  Chips

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

Page 63: Microfluidic  Chips

1. The mixing process can be represented by a tree.

Min-Mix Algorithm: Key Insights

BA

B

A

5/8 A, 3/8 B

Page 64: Microfluidic  Chips

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

BA

B

A

5/8 A, 3/8 B

d3

2

1

2-d

1/8

1/4

1/2

Page 65: Microfluidic  Chips

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

BA

B

A

5/8 A, 3/8 B

d3

2

1

2-d

1/8

1/4

1/2

3 = 011

0

1

1

5 = 101

1

0

1

Page 66: Microfluidic  Chips

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

4

3

2

1

B CA

B

A B

A

A

B

B

B

C

1/16

1/8

1/4

1/2

2-dd

A=5 B=7 C=4 =0101 =0111 =0100

[Natural Computing 2007]

Page 67: Microfluidic  Chips

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 1 chip 2 chip 3

Page 68: Microfluidic  Chips
Page 69: Microfluidic  Chips

“Immunological detection ... was carried out as described in the Boehringer digoxigenin-

nucleic acid detection kit with some modifications.”

Page 70: Microfluidic  Chips

- Main paper

- Ref. papers 

- References 

Page 71: Microfluidic  Chips

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?

Page 72: Microfluidic  Chips

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

Page 73: Microfluidic  Chips

Example: Plasmid DNA ExtractionAuto-Generated

Dependence Graph

Page 74: Microfluidic  Chips

• 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

Page 75: Microfluidic  Chips

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

Page 76: Microfluidic  Chips

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.

Page 77: Microfluidic  Chips

Benchmark Suite

65 protocols5800 LOC

Page 78: Microfluidic  Chips

Example: PCR

repeatthermocycling

Page 79: Microfluidic  Chips

Example: Molecular Barcodes

Preparation

+ PCR (2)

Page 80: Microfluidic  Chips

Example: DNA SequencingPreparation

PCR

Analysis

PCR PCR PCR

Page 81: Microfluidic  Chips

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

BioCoderCode

Auto-Generated Protocol

Executionin Lab

Page 82: Microfluidic  Chips

Growing a Community

Page 83: Microfluidic  Chips

Growing a Community

Page 84: Microfluidic  Chips

Growing a Community

Page 85: Microfluidic  Chips

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 experimentsthat are impossible to perform today