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

Slides:



Advertisements
Similar presentations
System Integration and Performance
Advertisements

Sistemas Digitais I LESI - 2º ano Lesson 1 - Introduction U NIVERSIDADE DO M INHO E SCOLA DE E NGENHARIA Prof. João Miguel Fernandes
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
ViahanceTM: Dead Cell, Stripped Nuclei and Free Oligonucleotide Removal Kit Instructions ViahanceTM dead cell removal kit enhances the viability ratio.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
The Assembly Language Level
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
SSP Re-hosting System Development: CLBM Overview and Module Recognition SSP Team Department of ECE Stevens Institute of Technology Presented by Hongbing.
Computer-Aided Design for Microfluidic Chips Based on Multilayer Soft Lithography Nada Amin 1, William Thies 2, Saman Amarasinghe 1 1 Massachusetts Institute.
Monolithic Microfabricated Valves and Pumps by Multilayer Soft Lithography EECE 491C Unger et al. (Quake group, CALTECH) Science, 2000.
Microfluidic Biochips: Design, Programming, and Optimization Bill Thies Joint work with Vaishnavi Ananthanarayanan, J.P. Urbanski, Nada Amin, David.
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Towards a High-Level Programming Language for Standardizing and Automating Biology Protocols Vaishnavi Ananthanarayanan and William Thies Microsoft Research.
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
Towards a Programming Language for Biology Protocols Bill Thies Joint work with Vaishnavi Ananthanarayanan Microsoft Research India.
Technologies for Healthcare Delivery Bill Thies Microsoft Research India Joint work with Vaishnavi Ananthanarayanan, Michael Paik, Manish Bhardwaj, Emma.
Basic Computer Organization CH-4 Richard Gomez 6/14/01 Computer Science Quote: John Von Neumann If people do not believe that mathematics is simple, it.
Mini-Prep Plasmid Isolation and Identification. Page 3-53 in lab manual & handout.
Programmable Microfluidics Bill Thies Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology UC Berkeley – October.
Tabu Search-Based Synthesis of Dynamically Reconfigurable Digital Microfluidic Biochips Elena Maftei, Paul Pop, Jan Madsen Technical University of Denmark.
Design and Verification Tools for Continuous Fluid Flow- based Microfluidic Devices Jeffrey McDaniel, Auralila Baez, Brian Crites, Aditya Tammewar, Philip.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
Microfluidics Technology Fair, October 3, 2006 Parallel Integrated Bioreactor Arrays for Bioprocess Development Harry Lee, Paolo Boccazzi, Rajeev Ram,
Programmable Microfluidics Using Soft Lithography J.P. Urbanski Advisor: Todd Thorsen Hatsopoulos Microfluidics Lab, MIT January 25/2006.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
Automatic Synthesis of Microfluidic Large Scale Integration Chips from a Domain-Specific Language Jeffrey McDaniel, Christopher Curtis, Philip Brisk University.
Logic Synthesis for Low Power(CHAPTER 6) 6.1 Introduction 6.2 Power Estimation Techniques 6.3 Power Minimization Techniques 6.4 Summary.
1 Moore’s Law in Microprocessors Pentium® proc P Year Transistors.
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
Programmable Microfluidics William Thies*, J.P. Urbanski †, Mats Cooper †, David Wentzlaff*, Todd Thorsen †, and Saman Amarasinghe * * Computer Science.
COE 405 Design and Modeling of Digital Systems
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
1. Placement of Digital Microfluidic Biochips Using the T-tree Formulation Ping-Hung Yuh 1, Chia-Lin Yang 1, and Yao-Wen Chang 2 1 Dept. of Computer Science.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Abstraction And Technology 1 Comp 411 – Fall /28/06 Computer Abstractions and Technology 1. Layer Cakes 2. Computers are translators 3. Switches.
Introduction to Microprocessors
Computer Architecture Lecture 32 Fasih ur Rehman.
1 of 16 April 25, 2006 System-Level Modeling and Synthesis Techniques for Flow-Based Microfluidic Large-Scale Integration Biochips Contact: Wajid Hassan.
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Abstraction Layers for Scalable Microfluidic Biocomputers William Thies*, J.P. Urbanski †, Todd Thorsen † and Saman Amarasinghe * * Computer Science and.
Towards Programmable Microfluidics William Thies
Wajid Minhass, Paul Pop, Jan Madsen Technical University of Denmark
Computer Architecture
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Computer Organization IS F242. Course Objective It aims at understanding and appreciating the computing system’s functional components, their characteristics,
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
 Problem Analysis  Coding  Debugging  Testing.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
EEE2135 Digital Logic Design Chapter 1. Introduction
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Architecture Synthesis for Cost Constrained Fault Tolerant Biochips
Architecture & Organization 1
Elena Maftei Technical University of Denmark DTU Informatics
Programmable Microfluidics Bill Thies Joint work with J. P
Interfacing Memory Interfacing.
Architecture & Organization 1
BIC 10503: COMPUTER ARCHITECTURE
T Computer Architecture, Autumn 2005
Microfluidic Biochips
HIGH LEVEL SYNTHESIS.
COMS 361 Computer Organization
Computer Systems An Introducton.
Presentation transcript:

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