Top Banner
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
85

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

Dec 26, 2015

Download

Documents

Jemima Golden
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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

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

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

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

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

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

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

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

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

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

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

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

Thick layer (poured)

Thin layer (spin-coated)

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

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

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

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

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

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

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

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

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

Primitive 1: A Valve (Quake et al.)

Control Layer

Flow Layer

pressure

actuator

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

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

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

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

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

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

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

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

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

Primitive 3: A Mixer (Quake et al.)

1. Load sample on bottom2. Load sample on top

3. Peristaltic pumping

Rotary Mixing

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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.

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

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

microfluidic features

• Why is this different than electronic CAD?

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Our Technique:Automatic Generation of Control Layer

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

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA

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

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA

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

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA

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

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves

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

Our Technique:Automatic Generation of Control Layer

1. Describe Fluidic ISA2. Infer control valves

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

Our Technique:Automatic Generation of Control Layer

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

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

Our Technique:Automatic Generation of Control Layer

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

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

Our Technique:Automatic Generation of Control Layer

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

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

Our Technique:Automatic Generation of Control Layer

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

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

Our Technique:Automatic Generation of Control Layer

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

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Embryonic Cell Culture

Courtesy J.P. Urbanski

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

Embryonic Cell Culture

Courtesy J.P. Urbanski

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

Cell Culture with Waveform Generator

Courtesy David Craig

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

Cell Culture with Waveform Generator

Courtesy David Craig

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

Metabolite Detector

Courtesy J.P. Urbanski

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

Metabolite Detector

Courtesy J.P. Urbanski

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Implementation: Oil-Driven Chip

Inputs Storage CellsBackground

Phase Wash Phase Mixing

Chip 1 2 8 Oil — Rotary

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

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

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

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

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

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

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

“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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Why Not Binary Search?0 13/8

1/41/2

1/23/8 5 inputs, 4 mixes

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

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

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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

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

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

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,
Page 69: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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

nucleic acid detection kit with some modifications.”

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

- Main paper

- Ref. papers 

- References 

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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.

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

Example: Plasmid DNA Extraction

Auto-GeneratedDependence Graph

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

• 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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Benchmark Suite

65 protocols5800 LOC

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

Example: PCR

repeatthermocycling

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

Example: Molecular Barcodes

Preparation

+ PCR (2)

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

Example: DNA Sequencing

Preparation

PCR

Analysis

PCR PCR PCR

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

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: Bringing Programmability to Experimental Biology Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David Craig, Jeremy Gunawardena,

Growing a Community

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

Growing a Community

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

Growing a Community

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

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