User:Jonathan Cline/Notebook/Sensomatic/20130323

From OpenWetWare

<html> <script> function addStylesheet(url) {

   // presentation mode
   if (document.createStyleSheet) {
   else {
       var styles = "@import url('" + url +  "');";
       var newSS=document.createElement('link');

} if (location.href.indexOf('action=render') > 0) {

   document.write("<head><title>Presentation</title></head>"); // need this for some browsers for addStylesheet to work
   document.write('<script src="" type="text/javascript"><' + '/script>');
   document.write('<script type="text/javascript">wgBreakFrames = false;<' + '/script>'); // for wikibits.js
   document.write('<script src="/skins/common/wikibits.js" type="text/javascript"><' + '/script>');
   document.write('<script src="/index.php?title=-&action=raw&smaxage=0&gen=js" type="text/javascript"><' + '/script>');

} else {

   // wiki mode
   if (wgServer)
       document.write('<a href="' + wgServer + '/index.php?title=' + wgPageName + '&action=render"><b><em>=> Start web presentation</em></b></a>');

} </script> </html>

Microbiology Sensor/Controller Board: The Sensomatic

Jonathan Cline

© 2013

Engineered Biology - Let's Do Something "Simple"

  • Make biology easier to engineer
  • Make biology more reliable to engineer


  • Methods: Improving the means and methods for bio/synthetic design;
  • Predictability: Improving repeatability and trust of experimental results and procedure;
  • Reusability: Engineering biological components and biological tools to be reusable across designs or across experiments.


  • Increased productivity
    • Less busywork, more Design time
    • Less human interaction means less human error
  • Decreased financial cost
    • More experiments possible per day per person per lab

(Contrary to popular belief, lab techs & their time are not "free")

Engineered Biology - Let's Do Something "Simple"

Let's perform a cell culturing experiment and isolate some bacteria for bioengineering targets!

  • Cory Tobin 2012-2013 (LA Biohackers ; Cal Tech)
    • Nitrogenase Directed Evolution
      • Plants need nitrogen in the form of ammonia, nitrates or nitrites (artificially via 'ammonium nitrate fertilizers')
      • "The directed evolution of a thermophilic nitrogenase ... so that productivity of farmland crops would not be dependent on a non-renewable resource whose price can fluctuate drastically due to speculation, weather or global conflicts."

Sounds great!

Engineered Biology - Let's Do Something "Simple"

Assuming we've got a potential soil sample which might contain the desired bacterial strain..

  • Problem - Culture specific soil samples which might grow something.
  • Problem - Identify if something grows.
  • Problem - Isolate the bacteria which grows.
  • Problem - Identify if the bacteria is the desired strain.
  • Problem - Lather, rinse, repeat until the sequence matches.

Then finally begin the real experiment with the target bacteria!

These are lab automation and scalability problems.

  • Also known as Bring-Up Issues (industry slang).

Engineered Biology - Let's Do Something "Simple"

Let's Automate this as a bio-protocol and remove the busy-work!

Cory's First Solution (Image Copyright 2012 Cory Tobin)

  • Small scale bioreactor with valves
  • Arduino breadboarded with various electronics and hand-wired connections.

"Found out the arduino has all these limitations and does not work here."

Spent months.. to bring up an environment to do the real experiment.

Engineered Biology - Let's Do Something "Simple"

Cory's Second Solution (Image Copyright 2012 Cory Tobin)

  • Cheap Wal-mart insulated cooler.
  • Give up on electronics and do everything by hand.
    • Measure and adjust temperature multiple times per day.
    • Refill reagents every other day.

"Finally successful, one time through. Same amount of effort to run through again."

  • High maintenance.
  • Human error.

Engineered Biology - Let's Do Something "Simple"

Jonathan Cline's version: The Sensomatic

  • Use industrial-grade, low cost electronics; not Arduino
  • Simple programmability, set up by any computer
Achieve simplicity, integration of function, and low cost
Solve a specific problem

Sense and Control:

  • Temperature
  • CO2
  • OD
  • Shaker
  • Pump
  • 120VAC outlet

Engineered Biology - Let's Do Something "Simple"

Jonathan Cline's version: The Sensomatic

  • Low cost electronics
  • Industry standard
  • Open source design, available in volume
  • Replaceable components

Engineered Biology - User/Software/Hardware Model

Prior Art (non-integrated, single function devices)

Industry-standard robotic automation systems (like Tecan or Beckman) use proprietary, high-level script commands (shown) and proprietary low level device operations unique to each device.

Engineered Biology - User/Software/Hardware Model

  • Today's usage for devices is monolithic: each device is programmed separately
    • Each device has it's own programming method
    • Difficult to re-use software written for one device, on another device
  • Biologist has to work harder; each experiment has unique elements

Engineered Biology - User/Software/Hardware Model

  • Bio-protocol application can be re-used
  • Robotics software framework abstracts "hardware operations" from real devices or network devices

Device data is stored in the database

  • Each device has operational data and environmental data
  • One-time setup that is YAML and sharable
  • Standardization of environment is one of the most important aspects of automation

Engineered Biology - Data Format

Data storage formats are very important:

  • Make the data usable today
  • Make the data editable today
  • Make the data survive into the future; no obtuse or ridiculously hard to learn format
  • Make the data sharable

Watch out -

  • Computer scientists love inventing data formats
    • Leading to the problem of... too much complexity
  • Vendors love inventing data formats
    • Leading to the problem of... patent / proprietary lockup
  • Open formats are important for innovation and scalability over long term

Engineered Biology - Data Format

  • Need to represent robotic environment and bio-protocol actions
    • Computer Scientist response: "Oh, but we can simplify that with XML"
  <?xml version="1.0"?>
  <Experiment Name="JCSG Erbeta+Org1+Org2">
    <Container>Corning pZero 3550</Container>
      <ExperimentPlate PlateNumber="1">
        <DateDispensed>10/4/2007 12:45:40 PM</DateDispensed>
          <Well WellNumber="15">
              <Drop DropNumber="3" ProteinFormulation="Erbeta+Org2" ProteinVolume=
  "0.25" WellVolume="0.25" />
              <Drop DropNumber="2" ProteinFormulation="BufferC" ProteinVolume="0.2
  5" WellVolume="0.25" />
              <Drop DropNumber="1" ProteinFormulation="Erbeta+Org1" ProteinVolume=
  "0.25" WellVolume="0.25" />

Just say No to XML

  • Much too difficult to edit this
  • Much too difficult to read this
  • Much too difficult to learn this
  • Now needs extra files to describe the custom format
    • XML, HTML, anything that ugly, is a Bad Idea

Engineered Biology - Data Format - Device data

  • Each device has control commands (a dozen or several hundred).
  • Storing that data in an easily readable and editable format is very important for software re-use.
  • YAML Format is Human readable, Human editable and Computer Readable
  • YAML allows references to prior definitions and either simple or complex assignments

  %YAML 1.1
  --- # Fialab-Microsia
      syringe: A
      valve: C
      peristaltic: D
      external: B
      send: # delay after cmds 100ms - 1 sec
              desc: set number of physical ports
              opcode: NP
                  - 1
                  - numport:4-12
              redundancy: 2 # send cmd twice
              delay: 100 # ms
                  ok: ~
                  err: ~
              desc: get number of physical ports
              opcode: NP
                  - 0
              redundancy: 2 # send cmd twice
              delay: 100 # ms
                  ok: ~
                  err: ~
      send: # delay after cmds 100ms - 1 sec
              desc: set pump speed
              opcode: G
                  - 1
                  - speed:0-100
              delay: 100
                  ok: ~
                  err: ~       
              desc: set pump direction, direction:1=counterclockwise or 2=clockwise
              opcode: W
                  - 1
                  - direction:1-2:default=1
              delay: 5000
                  ok: ~
                  err: ~        
      send: # delay after cmds 100ms - 1 sec
              desc: init all (both) pumps
              opcode: _Z0R
                  - 0
              delay: 100
                  ok: ~
                  err: ~       
              desc: position valve in for given pump
              opcode: /$1IR
                  - 1
                  - pumpnum:1-2:default=1
              delay: 100
                  ok: ~
                  err: ~
  • Made to be readable and editable
  • Made to be scalable
  • Contains all definitions of a device's operation
  • YAML is Best current practice for readable data format

Engineered Biology - Data Format - Environmental data

  • Each device has environment data associated with operating it.
    • Points in space
    • Containers
    • Solids, liquids, gases
  • Storing that data in an easily readable and editable format is very important for software re-use.
  • YAML Format is Human readable, Human editable and Computer Readable
  %YAML 1.1
  version: 2009-09-04
          magnet-hover: '14056,1850,980,1800'
          magnet-place: '14056,1850,687,1800'
          sampletray-hover: '14057,2828,980,1800'
          sampletray-place: '14057,2828,582,1800'
          shaker-hover: '1780,3569,1535,1800'
          shaker-put: '1780,3569,865,1800'
          shaker-take: '1780,3569,865,1800'
          shakerlock-1: '1762,1177,1535,900'
          shakerlock-2: '1762,1177,815,900'
          shakerlock-3: '1191,1177,808,900'
          shakerlock-4: '1762,1177,815,900'
          shakerlock-5: '1762,1177,1535,900'
          shakerlock-6: '1780,3569,1535,1800'
          shakerlock-hover: '1780,3569,1535,1800'
          HOME1: '11165,2525,980,1800'

Engineered Biology - Benefits

  • Write scripts into the framework to build up scale and reuse; rather than typical stand-alone scripts which are 1-time throw-away
  • Allows many devices to be controlled from the same user program ("hardware integration")
  • Allows device operations not supported by the vendor
    • This includes much better error handling & re-trying
  • Allows abstraction of the devices: swap out one device for another
    • Removes vendor lock-in, creating more competitive forces to drive innovation among various devices
  • Plug in new custom devices, can quickly operate with same user program
  • Pipe data to/from MATLAB, the web, the wiki, .csv, others ("data integration")
  • Network operation
    • The controller PC will miss fewer commands since vendor application does not take CPU time
    • The user PC doesn't have to be Windows to run a device (many benefits there)
    • The user can access device status and device output from anywhere (lab or home)
    • Built-in network security
  • The user can program complex algorithms using multiple devices, creating a control system with feedback to optimize a protocol or make arbitrary decisions
    • The "Robot Scientist" was claimed to have identified new targets "on it's own" - using data feedback and prediction; smart algorithms should be possible

Engineered Biology - Benefits

Example devices insertable into the Engineering 'flow'

  • Inkjet piezo-heads - pL or nL droplets, gradients, etc
  • Alternative substrates vs. well plates - CDs, other?
  • Millifluidics (Peter)
  • Physical handling (repetitive tasks) - stuff with motors for plate fetch & store
  • other?

Engineered Biology - Protolexer

Let's Do Something "Simple" : Revisited

Just Use English.

  • Feed the protocol directly to the computer.
    • Computers are smart enough.
  • The software knows what devices are attached or available on the network.
  • Integrate the devices together into a long chain of bio-operations.
    • Complain if bio-protocol requires device that is not available (Dependency checking.)
  • Bio-protocols have fairly standardized formats and standardized language.
    • Or can be, with human editing of the English, and a human quickly verifying the "compiled" result before robotics operation.

If the computer can't understand a bio-protocol, then the bio-protocol is ambiguous and should be re-written anyway

Engineered Biology - Data Format - Bio-protocols

  %YAML 1.1
  protocol: Mate-Paired Library Preparation for Sequencing
   - &standard-purify purify with column:
          - &cp1 Add 3 volumes of Buffer QG and 1 volume of isopropyl alcohol to the sheared
            DNA. If the color of the mixture is orange or violet, add 10uL of 3M sodium
            acetate, pH5.5 and mix. The color turns yellow. The pH required for efficient
            adsorption of the DNA to the membrane is <= 7.5. 
          - &cp2 Apply 750uL of sheared DNA in Buffer QG to the column(s). The maximum
            amount of DNA that can be applied to a QIAquick column is 10ug. Use more 
            columns if necessary. 
          - &cp3 Let the column(s) stand for 2 minutes at room temperature. 
          - &cp4 Centrifuge the column(s) at >= 10,000g (13,000 rpm) for 1 minute, then discard 
            the flow-through. 
          - &cp5 Repeat steps 2 and 4 until the entire sample has been loaded onto the column(s). 
            Place the QIAquick column(s) back into the same collection tube(s). 
          - &cp6 Add 750uL of Buffer PE to wash the column(s). 
          - &cp7 Centrifuge the column(s) at >= 10,000g (13,000 rpm) for 2 minutes, then discard 
            the flow-through. Repeat to remove residual wash buffer. 
          - &cp8 Air-dry the column(s) for 2 minutes to evaporate any residual alcohol. Transfer 
            the column(s) to clean 1.5-mL LoBind tube(s). 
          - &cp9 Add 30uL of Buffer EB to the column(s) to elute the DNA and let the column(s) 
            stand for 2minutes. 
          - &cp10 Centrifuge the column(s) at >= 10,000g (13,000 rpm) for 1 minute. 
          - &cp11 Repeat steps 9 and 10. 
          - &cp12 If necessary, pool the eluted DNA. 
   - &bead-purify purify with magbeads:
          - &bp1 Add 100uL of DNA to 95uL of magbeads.
          - &bp2 Vortex at 1,000RPM for 1 minute.
          - &bp3 Incubate on magnets for 300 seconds at room temperature to allow DNA to 
                bind to beads and beads to settle.
          - &bp4 Remove supernatant while beads are magnetized.
          - &bp5 Elute while beads are magnetized using 100uL of EtOH.  
                Pause for 90 seconds during each wash to allow beads to settle.  
                Allow EtOH to evaporate until beads are dry and 
                cracks are visible in the bead surface.
          - &bp6 Resuspend with 15 uL Buffer xx to resuspend beads.
          - &bp7 Vortex at 1,000RPM for 20 seconds.
          - &bp8 Incubate for 200 seconds on magnets at room temperature.
          - &bp9 Save the eluted DNA.
  • Easy to edit (it's text with indenting)
  • Easy to read (no crazy formatting words)
  • Very easy to share
    • Standardized format
    • Self-contained, no extra files needed
  • Mostly easy to learn
  • Easy for computers to read, process, write, share
  • Defined in YAML

Engineered Biology - Competing Method/Prior Art: BioStream (MIT)

"Towards a High-Level Programming Language for Standardizing and Automating Biology Protocols"

  • "Abstraction Layers for Scalable Microfluidic Biocomputers", William Thies , John Paul Urbanski , Todd Thorsen , and Saman Amarasinghe, Computer Science and Artificial Intelligence Laboratory, Hatsopoulos Microfluids Laboratory, Massachusetts Institute of Technology
  • Defines "high level" (like Java/C++) language for describing protocols
  • Can take some standardized English protocols as input
  • Can automatically generate the "high level language" for the computer
  • Can output a human-readable clean English bio-protocol
    • This is a "Validated-clean" version of original bio-protocol

Engineered Biology - Competing Method/Prior Art: BioStream (MIT)

BioStream "clean English output" for DNA extraction from tissue protocol

Engineered Biology - Competing Method/Prior Art: BioStream (MIT)

"Towards a High-Level Programming Language for Standardizing and Automating Biology Protocols"

BioStream "high level language" for DNA extraction from tissue protocol

Engineered Biology - Competing Method/Prior Art: BioBoard (Noisebridge)


"an Arduino-controlled sensor package that allow users to monitor a range of physiochemical factors related to microbiological processes"