programmable microfluidics
play

Programmable Microfluidics William Thies*, J.P. Urbanski , Mats - PowerPoint PPT Presentation

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


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

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

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

  4. A General-Purpose Microfluidic A General-Purpose Microfluidic Chip Chip Control layer Flow layer 5 mm

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

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

  7. Providing a Digital Abstraction Providing a Digital Abstraction • All fluid operations are lossy • How to control the error?

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

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

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

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

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

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

  14. 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));

  15. 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));

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