Do they have any examples files? When we discussed an idea like this
on the list a while back, we basically came to the conclusion that the
only motivating factor in something like this would be whether or not
there's a large corpus of usable protocols. For that reason I wrote up
a PCR protocol into an XML format that was published in a clinical
medical informatics journal. Jonathan was working on a grammar to
convert from plain text into a computational representation of poorly
written protocols, but I haven't heard from him in a while on that
front. I have a scrape of the protocol-online.org dataset if anyone
wants it.
Here's one file they have up on there.. I think it looks a lot like my
"make a pie" example in skdb.
http://adl.serveftp.org/skdb/doc/proposals/action.py
This looks like valid C/C++, so I think I'll swig a wrapper up and
incorporate it into skdb. Thanks Jason!
#include "BioStream.h"
void main()
{
start_protocol("Miniprep - Kit-free high-throughput protocol");
Fluid culture = new_fluid("overnight culture containing your plasmid");
Fluid stet = new_fluid("STET buffer", "8% sucrose, 50 mM Tris-HCl (pH
8), 0.5% Triton X-100, 50 mM EDTA");
Fluid lysozyme = new_fluid("lysozyme (10mg/ml)");
Fluid isoprop = new_fluid("isopropanol", ICE_COLD);
Fluid eth80 = new_fluid("80% ethanol", ICE_COLD);
Fluid te = new_fluid("TE buffer", "10 mM Tris-HCl (pH 8), 1 mM EDTA ");
Container flask = new_container(FLASK);
Container eppendorf1 = new_container(EPPENDORF);
// 1. Transfer 1.5 mL of an overnight culture containing your plasmid
to an eppendorf tube and spin at 5000 rpm for 5 min in a tabletop
centrifuge to pellet the cells.
// 2. Remove and discard the supernatent.
first_step();
set_container(culture, flask);
measure_fluid(flask, vol(1.5, ML), eppendorf1);
centrifuge_pellet(eppendorf1, speed(5000, RPM), RT, time(5, MINS));
// 3. Add 300 μL STET buffer, and resuspend cells by vortexing.
next_step();
measure_and_add(eppendorf1, stet, vol(300, UL));
resuspend(eppendorf1);
// 4. Add 10 μL lysozyme (10 mg/mL), vortex, and submerse in boiling
water for 40 sec.
next_step();
measure_and_add(eppendorf1, lysozyme, vol(10, UL));
vortex(eppendorf1);
store_for(eppendorf1, 100, time(40, SECS));
// 5. Spin for 30 min in a tabletop centrifuge at maximum speed at 4 ˚C.
next_step();
centrifuge_pellet(eppendorf1, speed(SPEED_MAX, RPM), 4, time(30, MINS));
// 6. Remove pellet from each tube with a toothpick. The cellular
debris should stick well to the toothpick. Try to insert and remove
the toothpick from the center of the tube so you don't get any
cellular debris on the sides of the tube.
next_step();
comment("Remove pellet from each tube with a toothpick. The cellular
debris should stick well to the toothpick. Try to insert and remove
the toothpick from the center of the tube so you don't get any
cellular debris on the sides of the tube.");
// 7. Add 300 μL ice cold isopropanol to precipitate the DNA (or
300μL of 2:1 isopropanol:ammonium acetate, mixed just before you use
it. See this discussion of precipitating nucleic acids.)
next_step();
measure_and_add(eppendorf1, isoprop, vol(300, UL));
comment("This is done to precipitate the DNA.");
// 8. Spin for 10 min in a tabletop centrifuge at maximum speed at 4 ˚C.
// 9. Remove supernatent.
next_step();
centrifuge_pellet(eppendorf1, speed(SPEED_MAX, RPM), 4, time(10, MINS));
//10. Add 200 μL ice cold 80% ethanol to wash pellet and spin for 5
min in a tabletop centrifuge at maximum speed at 4 ˚C.
//11. Remove supernatent.
next_step();
measure_and_add(eppendorf1, eth80, vol(200, UL));
comment("This is to wash the pellet.");
centrifuge_pellet(eppendorf1, speed(SPEED_MAX, RPM), 4, time(5, MINS));
//12. Dry pellet (air dry at room temperature or 37 ˚C or dry in a speedvac).
next_step();
begin_option();
dry_pellet(eppendorf1, "in air");
next_option();
dry_pellet(eppendorf1,"in a speedvac");
end_option();
//13. Rehydrate in 50 μL TE.
next_step();
measure_and_add(eppendorf1, te, vol(50, UL));
resuspend(eppendorf1);
end_protocol();
http://www.youtube.com/v/n0gmTc2wA3k
"Programmable Microfluidics"
--
Heath Matlock
+1 256 274 4225
A similar effort mentioned by Bill Thies was the AquaCore Programmable
Lab on a Chip (PLoC) project at Purdue:
https://engineering.purdue.edu/ploc/
Both take different approaches in handling regeneration of fluids.
I haven't looked at in detail, yet, but his and Neil Gershenfeld's
paper was in the microfluidics zip file which Bryan Bishop linked to
from here awhile ago.
Here's a link to Manu's bubble logic page for anyone wondering what it is:
http://web.media.mit.edu/~manup/research/bubble-logic/
Well, that may or may not be the case. This is our take on it - we felt that we would want to use an approach that a biologist with a little bit of experience in programming will be comfortable with. And when anyone starts learning a programming language, they usually start with a procedural programming language - the linear approach is quite easy to comprehend. So the C library.
We have come up with another survey to try and understand
why most descriptions of protocols in
published papers are ambiguous and incomplete. It would be great if you could take this short 10-
question survey which tries to zero in on the problem. Results will be
made available on DIYbio when enough data points have been collected.
--
You received this message because you are subscribed to the Google Groups "DIYbio" group.
To post to this group, send email to diy...@googlegroups.com.
To unsubscribe from this group, send email to diybio+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/diybio?hl=en.