bringing programmability to experimental biology bill thies joint work with vaishnavi...

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: jemima-golden

Post on 26-Dec-2015

223 views

Category:

Documents


2 download

TRANSCRIPT

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

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

DisposableEnteric 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 (http://www.fluidigm.com/images/mlaw_lg.jpg)

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

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

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

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

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]

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 2 Bit 1 Bit 00 1 0 1 0 1

Input

Output 0

Output 7

Output 6

Output 5

Output 4

Output 3

Output 2

Output 1

flow layercontrol layer

Primitive 2: A Multiplexer (Thorsen et al.)

Bit 2 Bit 1 Bit 00 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 layercontrol layer

Primitive 2: A Multiplexer (Thorsen et al.)

Bit 2 Bit 1 Bit 00 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 layercontrol layer

Primitive 2: A Multiplexer (Thorsen et al.)

Bit 2 Bit 1 Bit 00 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 layercontrol layer

Primitive 3: A Mixer (Quake et al.)

1. Load sample on bottom2. 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 1 chip 2 chip 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 logicpipelined flow continuous flow

Our Technique:Automatic Generation of Control Layer

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 ISA2. Infer control valves

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves

Our Technique:Automatic Generation of Control Layer

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

Our Technique:Automatic Generation of Control Layer

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

Our Technique:Automatic Generation of Control Layer

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

Our Technique:Automatic Generation of Control Layer

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

Our Technique:Automatic Generation of Control Layer

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

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

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

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

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

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

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

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

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

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

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

Implementation: Oil-Driven Chip

Inputs Storage CellsBackground

Phase Wash Phase Mixing

Chip 1 2 8 Oil — Rotary

Implementation: Oil-Driven Chip

Inputs Storage CellsBackground

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

Implementation 2: Air-Driven Chip

Inputs Storage CellsBackground

Phase Wash Phase Mixing

Chip 1 2 8 Oil — Rotary

Chip 2 4 32 Air Water In channels

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 CellsBackground

Phase Wash Phase Mixing

Chip 1 2 8 Oil — Rotary

Chip 2 4 32 Air Water In 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 13/8

1/41/2

1/23/8 5 inputs, 4 mixes

Why Not Binary Search?0 13/8

3/41/2

3/8

4 inputs, 3 mixes

1/41/2

1/23/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

BA

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

BA

B

A

5/8 A, 3/8 B

d

3

2

1

2-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

BA

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

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]

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

“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-GeneratedDependence 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 protocols5800 LOC

Example: PCR

repeatthermocycling

Example: Molecular Barcodes

Preparation

+ PCR (2)

Example: DNA Sequencing

Preparation

PCR

Analysis

PCR PCR 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

BioCoderCode

Auto-Generated Protocol

Executionin Lab

Growing a Community

Growing a Community

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