User:Jonathan Cline/Notebook/Sensomatic/20130323

From OpenWetWare
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


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

   // presentation mode
   if (document.createStyleSheet) {
       document.createStyleSheet(url);
   }
   else {
       var styles = "@import url('" + url +  "');";
       var newSS=document.createElement('link');
       newSS.rel='stylesheet';
       newSS.href='data:text/css,'+escape(styles);
       document.getElementsByTagName("head")[0].appendChild(newSS);
   }

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

   document.write("<head><title>Presentation</title></head>"); // need this for some browsers for addStylesheet to work
   addStylesheet('http://www.w3.org/Talks/Tools/Slidy/slidy.css');
   addStylesheet("/skins/monobook/main.css");
   addStylesheet("/index.php?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000");
   addStylesheet("/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000");
   addStylesheet("/index.php?title=-&action=raw&gen=css&maxage=18000&smaxage=0&ts=20070606210926");
   document.write('<script src="http://www.w3.org/Talks/Tools/Slidy/slidy.js" 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>


http://c.statcounter.com/5196544/0/c9629947/1/0.png


Microbiology Sensor/Controller Board: The Sensomatic

Jonathan Cline

jcline@ieee.org

© 2013

http://88proof.com/img/JCLINE-BUSINESS-CARD-320.png


Engineered Biology - Let's Do Something "Simple"

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

by:

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

for:

  • 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!

http://wiki.biohackers.la/files/thumb/2/2b/N2-ase.png/500px-N2-ase.png

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.

http://biosx.com/88proof/synthetic_biology/blog/wp-content/uploads/2013/03/Cory_Tobin_Nitrogenase_Directed_Evolution_1.png

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

http://biosx.com/88proof/synthetic_biology/blog/wp-content/uploads/2013/03/Cory_Tobin_Nitrogenase_Directed_Evolution_2.png



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:

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



Engineered Biology - Let's Do Something "Simple"

Jonathan Cline's version: The Sensomatic

http://88proof.com/synthetic_biology/blog/wp-content/uploads/2009/03/img_0012sm.jpg http://88proof.com/synthetic_biology/blog/wp-content/uploads/2013/03/mq5-sensor.jpg http://88proof.com/synthetic_biology/blog/wp-content/uploads/2013/03/LM35.jpg http://88proof.com/synthetic_biology/blog/wp-content/uploads/2013/03/ssr-10636-01_i_ma.jpg

  • Low cost electronics
  • Industry standard, available in volume
  • Open source design
  • Replaceable components
  • Multiple functions on one device




Engineered Biology - User/Software/Hardware Model

Prior Art (non-integrated, single function devices)

http://88proof.com/biotech/img/Biolab-languages1.png

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

http://88proof.com/biotech/img/Biolab-interconnect-model.png

  • 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

http://88proof.com/biotech/img/Biolab-interconnect-model2.png

  • 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">
    <ID>351</ID>
    <User>Valerie</User>
    <Container>Corning pZero 3550</Container>
    <DatePrepared>2007-10-04T11:05:38.5170000+02:00</DatePrepared>
    <SetupTemperature>20</SetupTemperature>
    <IncubationTemperature>20</IncubationTemperature>
    <ExperimentPlates>
      <ExperimentPlate PlateNumber="1">
        <ID>406</ID>
        <DateDispensed>10/4/2007 12:45:40 PM</DateDispensed>
        <Wells>
          <Well WellNumber="15">
            <WellVolume>75</WellVolume>
            <WaterVolume>37.5</WaterVolume>
            <Drops>
              <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
  address:
      syringe: A
      valve: C
      peristaltic: D
      external: B
  valve:
      send: # delay after cmds 100ms - 1 sec
          NP_SET:
              desc: set number of physical ports
              opcode: NP
              args:
                  - 1
                  - numport:4-12
              redundancy: 2 # send cmd twice
              delay: 100 # ms
              recv:
                  ok: ~
                  err: ~
          NP_GET:
              desc: get number of physical ports
              opcode: NP
              args:
                  - 0
              redundancy: 2 # send cmd twice
              delay: 100 # ms
              recv:
                  ok: ~
                  err: ~
  peristaltic:
      send: # delay after cmds 100ms - 1 sec
          SET_SPEED:
              desc: set pump speed
              opcode: G
              args:
                  - 1
                  - speed:0-100
              delay: 100
              recv:
                  ok: ~
                  err: ~       
          SET_DIRECTION:
              desc: set pump direction, direction:1=counterclockwise or 2=clockwise
              opcode: W
              args:
                  - 1
                  - direction:1-2:default=1
              delay: 5000
              recv:
                  ok: ~
                  err: ~        
  syringe:
      send: # delay after cmds 100ms - 1 sec
          INIT_ALL:
              desc: init all (both) pumps
              opcode: _Z0R
              args:
                  - 0
              delay: 100
              recv:
                  ok: ~
                  err: ~       
          SET_INPUT:
              desc: position valve in for given pump
              opcode: /$1IR
              args:
                  - 1
                  - pumpnum:1-2:default=1
              delay: 100
              recv:
                  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 - Competing Method/Prior Art: BioBoard (Noisebridge)

BioBoard

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

http://88proof.com/synthetic_biology/blog/wp-content/uploads/2013/03/noisebridge-bioboard-450px-NIRprobe6.jpg http://88proof.com/synthetic_biology/blog/wp-content/uploads/2013/03/BioBoardAppNewProject.png