|
|
(4 intermediate revisions by the same user not shown) |
Line 51: |
Line 51: |
| Let's perform a cell culturing experiment and isolate some bacteria for bioengineering targets! | | Let's perform a cell culturing experiment and isolate some bacteria for bioengineering targets! |
| * Cory Tobin 2012-2013 (LA Biohackers ; Cal Tech) | | * Cory Tobin 2012-2013 (LA Biohackers ; Cal Tech) |
| ** Nitrogenase Directed Evolution | | ** [http://wiki.biohackers.la/Nitrogenase_Directed_Evolution Nitrogenase Directed Evolution] |
| *** Plants need nitrogen in the form of ammonia, nitrates or nitrites (artificially via 'ammonium nitrate fertilizers') | | *** 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." | | *** "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." |
Line 57: |
Line 57: |
| ''Sounds great!'' | | ''Sounds great!'' |
|
| |
|
| http://wiki.biohackers.la/files/thumb/2/2b/N2-ase.png/500px-N2-ase.png | | http://wiki.biohackers.la/files/thumb/2/2b/N2-ase.png/500px-N2-ase.png [http://wiki.biohackers.la/Nitrogenase_Directed_Evolution Link] |
|
| |
|
| </div> | | </div> |
Line 137: |
Line 137: |
|
| |
|
| Sense and Control: | | Sense and Control: |
| | * Heater element |
| * Temperature | | * Temperature |
| * CO2 | | * CO2 |
Line 365: |
Line 366: |
| </div> | | </div> |
|
| |
|
|
| |
| <div class="slide">
| |
| =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
| |
|
| |
| <pre class="incremental">
| |
| %YAML 1.1
| |
| ---
| |
| version: 2009-09-04
| |
| tecan:
| |
| genesis:
| |
| points:
| |
| roma0:
| |
| 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'
| |
| ...
| |
| </pre>
| |
|
| |
|
| |
|
| |
| </div>
| |
|
| |
|
| |
| <div class="slide">
| |
| =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
| |
| </div>
| |
|
| |
|
| |
| <div class="slide">
| |
| =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?
| |
|
| |
| </div>
| |
|
| |
|
| |
|
| |
| <div class="slide">
| |
| =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'''
| |
|
| |
| http://biosx.com/88proof/synthetic_biology/blog/wp-content/uploads/2009/06/protolexer1.png
| |
|
| |
| </div>
| |
|
| |
|
| |
| <div class="slide">
| |
| =Engineered Biology - Data Format - Bio-protocols=
| |
|
| |
| <pre >
| |
|
| |
| %YAML 1.1
| |
| ---
| |
| protocol: Mate-Paired Library Preparation for Sequencing
| |
| methods:
| |
| - &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.
| |
| </pre>
| |
| | | |
| * 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
| |
| </div>
| |
|
| |
|
| |
|
| |
| <div class="slide">
| |
| =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
| |
| </div>
| |
|
| |
|
| |
| <div class="slide">
| |
| =Engineered Biology - Competing Method/Prior Art: BioStream (MIT)=
| |
|
| |
| BioStream "clean English output" for '''[http://openwetware.org/wiki/DNA_extraction_from_tissue '''DNA extraction from tissue protocol]'''
| |
| | | |
| http://88proof.com/biotech/img/Biostream-DNA%20extraction%20from%20tissue%20protocol-English-Output.png
| |
|
| |
| </div>
| |
|
| |
| <div class="slide">
| |
| =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 '''[http://openwetware.org/wiki/DNA_extraction_from_tissue '''DNA extraction from tissue protocol]'''
| |
|
| |
| http://88proof.com/biotech/img/Biostream-DNA%20extraction%20from%20tissue%20protocol-Source-Output.png
| |
|
| |
|
| |
| </div>
| |
|
| |
|
| <div class="slide"> | | <div class="slide"> |
Line 589: |
Line 378: |
| "an Arduino-controlled sensor package that allow users to monitor a range of physiochemical factors related to microbiological processes" | | "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/2009/03/noisebridge-bioboard-450px-NIRprobe6.jpg | | 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 |
|
| |
|
|
| |
|
| </div> | | </div> |
<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
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 Link
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"
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 - 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