Programmable Microfluidics William Thies*, J.P. Urbanski † , Mats Cooper † , David Wentzlaff*, Todd Thorsen † , and Saman Amarasinghe * * Computer Science and Artificial Intelligence Laboratory † Hatsopoulos Microfluids Laboratory Massachusetts Institute of Technology October 12, 2004
Microfluidic Microfluidic Chips Chips • Idea: a whole biological lab on a single chip – Input/output – Actuators: Actuators: temperature, light/dark, cell lysis, etc. – Sensors: Sensors: luminescence, pH, glucose, etc. • Benefits: 1 mm – Small sample volumes – High throughput – Geometrical manipulation
Our Goal: Our Goal: Provide Abstraction Layers for this Domain Provide Abstraction Layers for this Domain • Current interface: gate-level control (Labview) • New abstraction layers will enable: – Scalability - Portability – Adaptivity - Optimization • NOT our goal: replace silicon computation
A General-Purpose Microfluidic A General-Purpose Microfluidic Chip Chip Control layer Flow layer 5 mm
A General-Purpose Microfluidic A General-Purpose Microfluidic Chip Chip Wash Wash Control layer Out Out Control Control Flow layer ports ports Mixer Mixer Wash In Wash In Storage Cells Storage Cells Sample In Sample In 5 mm
A General-Purpose Microfluidic A General-Purpose Microfluidic Chip Chip Wash Wash Control layer Out Out Control Control Latch Latch Flow layer ports ports Mixer Mixer Wash In Wash In Storage Cells Storage Cells Multiplexor Multiplexor Sample In Sample In 5 mm
Providing a Digital Abstraction Providing a Digital Abstraction • All fluid operations are lossy • How to control the error?
Providing a Digital Abstraction Providing a Digital Abstraction • All fluid operations are lossy • How to control the error? • Solution: discrete samples – throw out half of sample on each mix
Providing a Digital Abstraction Providing a Digital Abstraction • All fluid operations are lossy • How to control the error? • Solution: discrete samples – throw out half of sample on each mix
Providing a Digital Abstraction Providing a Digital Abstraction • All fluid operations are lossy • How to control the error? • Solution: discrete samples – throw out half of sample on each mix
Providing a Digital Abstraction Providing a Digital Abstraction • All fluid operations are lossy • How to control the error? • Solution: discrete samples – throw out half of sample on each mix
Providing a Digital Abstraction Providing a Digital Abstraction • All fluid operations are lossy • How to control the error? • Solution: discrete samples – throw out half of sample on each mix
Programming Model Programming Model Fluid Fluid blue = inp input (0); Fluid Fluid yellow = input input(1); for (int i=0; i<=4; i++) { mix mix(blue, i/4, yellow, 1-i/4); } New abstractions: New abstractions: - Regenerating fluids - Efficient mixing algorithms 450 Valve Operation 450 Valve Operations
Example: Fixed pH Reaction Example: Fixed pH Reaction Fluid sample = input Fluid input (0); Fluid acid = inp Fluid input(1); Fluid Fluid base = inp input(2); do { // test pH of sample Fluid Fluid pH_test = mix mix(sample, 0.9, indicator, 0.1); double pH = test_luminescence _luminescence(pH_test); // if pH is out of range, adjust sample if (pH > 7.5) { sample = mix mix (sample, 0.9, acid, 0.1); } else if (pH < 6.5) { sample = mix mix (sample, 0.9, base, 0.1); } wait wait(5); } while (detect_act detect_activity vity(sample));
Example: Fixed pH Reaction Example: Fixed pH Reaction Feedback-Intensive Feedback-Intensive Fluid sample = input Fluid input (0); Fluid Fluid acid = inp input(1); Applications: Applications: Fluid base = inp Fluid input(2); - Cell isolation do { // test pH of sample and manipulation Fluid pH_test = mix Fluid mix(sample, 0.9, indicator, 0.1); double pH = tes test_luminescence _luminescence(pH_test); - Dose-response // if pH is out of range, adjust sample curves if (pH > 7.5) { sample = mix mix (sample, 0.9, acid, 0.1); - High-throughput } else if (pH < 6.5) { screening sample = mix mix (sample, 0.9, base, 0.1); } - Long, complex wait(5); wait protocols } while (det detect_act ect_activity vity(sample));
Opportunities for Computer Scientists Opportunities for Computer Scientists • Experimental biology is becoming a digital science – What are the right abstraction layers? – We can have a large impact Software: Software: - scheduling - programming abstractions - verifying safety properties - optimizing throughput, cost Hardware: Hardware: - parallelism - error tolerance - reducing design complexity - minimizing control overhead • Vision: A defacto A defacto language for experimental science anguage for experimental science
Recommend
More recommend