Month: July 2009

Perl Bio-Robotics module, Robotics.pm and Robotics::Tecan

Posted by – July 30, 2009

FYI for Bioperl developers:

I am developing a module for communication with biology robotics, as discussed recently on #bioperl, and I invite your comments. Currently this module talks to a Tecan genesis workstation robot. Other vendors are Beckman Biomek, Agilent, etc. No such modules exist anywhere on the ‘net with the exception of some visual basic and labview scripts which I have found. There are some computational biologists who program for robots via high level s/w, but these scripts are not distributed as OSS.

With Tecan, there is a datapipe interface for hardware communication, as an added $$ option from the vendor. I haven’t checked other vendors to see if they likewise have an open communication path for third party software. By allowing third-party communication, then naturally the next step is to create a socket client-server; especially as the robot vendor only support MS Win and using the local machine has typical Microsoft issues (like losing real time communication with the hardware due to GUI animation, bad operating system stability, no unix except cygwin, etc).

On Namespace:

I have chosen Robotics and Robotics::Tecan. (After discussion regarding the potential name of Bio::Robotics.)  There are many s/w modules already called ‘robots’ (web spider robots, chat bots, www automate, etc) so I chose the longer name “robotics” to differentiate this module as manipulating real hardware. Robotics is the abstraction for generic robotics and Robotics::(vendor) is the manufacturer-specific implementation. Robot control is made more complex due to the very configurable nature of the work table (placement of equipment, type of equipment, type of attached arm, etc). The abstraction has to be careful not to generalize or assume too much. In some cases, the Robotics modules may expand to arbitrary equipment such as thermocyclers, tray holders, imagers, etc – that could be a future roadmap plan.

Here is some theoretical example usage below, subject to change. At this time I am deciding how much state to keep within the Perl module. By keeping state, some robot programming might be simplified (avoiding deadlock or tracking tips). In general I am aiming for a more “protocol friendly” method implementation.

To use this software with locally-connected robotics hardware:

    use Robotics;
    use Robotics::Tecan;

    my %hardware = Robotics::query();
    if ($hardware{"Tecan-Genesis"} eq "ok") {
    	print "Found locally-connected Tecan Genesis robotics!\n";
    }
    elsif ($hardware{"Tecan-Genesis"} eq "busy") {
    	print "Found locally-connected Tecan Genesis robotics but it is busy moving!\n";
    	exit -2;
    }
    else {
    	print "No robotics hardware connected\n";
    	exit -3;
    }
    my $tecan = Robotics->new("Tecan") || die;
    $tecan->attach() || die;    # initiate communications
    $tecan->home("roma0");      # move robotics arm
    $tecan->move("roma0", "platestack", "e");    # move robotics arm to vector's end
    # TBD $tecan->fetch_tips($tip, $tip_rack);   # move liquid handling arm to get tips
    # TBD $tecan->liquid_move($aspiratevol, $dispensevol, $from, $to);
    ...

To use this software with remote robotics hardware over the network:

  # On the local machine, run:
    use Robotics;
    use Robotics::Tecan;

    my @connected_hardware = Robotics->query();
    my $tecan = Robotics->new("Tecan") || die "no tecan found in @connected_hardware\n";
    $tecan->attach() || die;
    # TBD $tecan->configure("my work table configuration file") || die;
    # Run the server and process commands
    while (1) {
      $error = $tecan->server(passwordplaintext => "0xd290"); # start the server
      # Internally runs communications between client->server->robotics
      if ($tecan->lastClientCommand() =~ /^shutdown/) {
        last;

    }
    $tecan->detach();   # stop server, end robotics communciations
    exit(0);

  # On the remote machine (the client), run:
    use Robotics;
    use Robotics::Tecan;

    my $server = "heavybio.dyndns.org:8080";
    my $password = "0xd290";
    my $tecan = Robotics->new("Tecan");
    $tecan->connect($server, $mypassword) || die;
    $tecan->home();

    ... same as first example with communication automatically routing over network ...
    $tecan->detach();   # end communications
    exit(0);

Some notes for those who may also want to create Perl modules for general or BioPerl use:

  • Use search.cpan.org to get Module-Starter
  • Run Module-Starter to create new module from module template
  • Read Module::Build::Authoring
  • Read Bioperl guide for authoring new modules
  • Copy/write perl code into the new module
  • Add POD, perl documentation
  • Add unit tests into the new module
  • Register for CPAN account (see CPAN wiki), register namespace
  • Verify all files are in standard CPAN directory structure
  • Commit & Release

Software for Biohackers

Posted by – July 30, 2009

Some open source software collections of biology interest are noted here. I’ll update this list as time goes on. If you would like to have your project listed too, leave a comment with all the fields of the table and I’ll add your project. If any of these links do not work, let me know too.

Name Status Field Language Description
Eclipse Stable Programming, editing, building, debugging Java, C, C++, Perl, .. Eclipse is the most widely adopted software development environment in terms of language support, corporate support, and user plugin support. It is open source. It’s the “Office” suite for programming.
BioPerl Stable Bioinformatics Perl, C BioPerl has many modules for genomic sequence analysis/matching, genomic searches to databases, file format conversion, etc.
BioPython Stable Bioinformatics Python, C BioPython has many modules for computational biology.
BioJava Stable Bioinformatics Java BioJava has many modules for computational biology.
BioLib Stable Bioinformatics C, C++ BioLib has many modules for file format conversion, integration to other Bio* language projects, genomic sequence matching, etc.
Bio-Linux Stable Operating System with Bundled Bioinformatics Applications Many “A dedicated bioinformatics workstation – install it or run it live”
DNA Linux Stable Operating System with Bundled Bioinformatics Applications Many “DNALinux is a Virtual Machine with bioinformatic software preinstalled.”
Several Synthetic Biology editors, simulators, or suites, listed at OpenWetWare Computational Tools, such as:
Synthetic Biology Software Suite (SynBioSS), BioJADE, GenoCAD, BioStudio, BioCad,TinkerCell, Clotho
Work In Progress Synthetic Biology Moslty Java, some Web based, some Microsoft .NET Pathway modeling & simulation for synthetic biology genetic engineering, editing, parts databases, etc
APE (A Plasmid Editor) Stable Genetic engineering Java DNA sequence and translation editor

“Centrifuge the column(s) at ≥10,000×g (13,000 rpm) for 1 minute, then discard the flow-through.”

Posted by – July 30, 2009

A basic equation of physics, for those out there building their own centrifuges:

What are RPM, RCF, and g force and how do I convert between them?

The magnitude of the radial force generated in a centrifuge is expressed relative to the earth’s gravitational force (g force) and known as the RCF (relative centrifugal field).  RCF values are denoted by a numerical number in “g” (ex. 1,000 x g).  It is dependent on the speed of the rotor in revolutions per minute (RPM) and the radius of rotation.  Most centrifuges are set to display RPM but have the option to change the readout to RCF.

To convert between the two by hand, use the following equation:

RCF  =  11.18 (rcm) (rpm/1000)^2

Where rcm = the radius of the rotor in centimeters.

Commercial Development of Synthetic Biology Products

Posted by – July 20, 2009

BIO hosted a round-table discussion with leading-edge companies on technical and commercial advances in applications of synthetic biology. Speakers in the session represent leading firms in the field, Amyris, BioBricks Foundation, Verdezyne and Codexis.”

The Progress in Commercial Development of Synthetic Biology Applications podcast can be listened to at this link.

BIO is a biotechnology advocacy, business development and communications service organization for research and development companies in the health care, agricultural, industrial and environmental industries, including state and regional biotech associations.

Below are my notes and summary from the conference call.  (Disclaimer: all quotes should be taken as terse paraphrases and see the official transcript, if any, for direct quotes.)

BIO:

“BIO sees synthetic biology as natural progression of what we’ve been doing all along [previous biology and biotech commercial research]. […] Industrial biotechnology gives us tools to selectively add genes to microbes, to allow us to engineer those microbes for the purposes of [biofuels] or production of other useful products.  Synthetic biology is another tool which allows us to do this, and is an evolutionary technology, not a revolutionary technology.  It grows out of what our companies have always been doing with metabolic shuffling or gene shuffling, etc.  [Synthetic biology] has become so efficient that new ways of thinking about this field are necessary.  We are beginning to build custom genomes from the ground up, a logical extension of the technologies [biotech companies] have developed. […] “

Industrial biotechnology’s phases:

1. Agriculture (previous phase)
2. Heathcare (previous phase)
3. and today’s phase: biofuel production, food [enrichment], environmental cleanup

Challenges in today’s world are: energy and environment (greenhouse gases, manufacturing processes, … how to also develop these in the developing world);  Synthetic biology can help to address these problems.

“Every year the development times [of modifying organisms for specific tasks] are shortened [due to availability of more genomic information].”

“There is unpredictability in synthetic biology [however] this is still very manageable.”

This comment was a response to a ‘fluffy’ question about the ‘risks/dangers’ of the technology.

“[This technology is accessible because as we have heard in the news] there are now home hobbyists experimenting with this in their garage laboratories.”

Hmm; I wonder who they are talking about..

Amyris:

“We have been moving genes around for quite a while.  [The difference today which yields Synthetic Biology is that] we can do things easily, rapidly and at small [measurement] scale.” Synthetic biology allows scientists to integrate all the useful [genomic, bioinformatics] data into a usable product [much more rapidly than before].  Previously it would take months to modify a microorganism, now we are down to 2-3 weeks [which is] limited only by the time required for yeast to grow [and we aren’t looking to speed that part up]; this is a rapid increase in the ability to test ideas and [measure] outputs.  We view synthetic biology as very predictable [in the sense that un-intended consequences are inherently reduced].  We engineer microorganisms to grow in a [synthetic environment for fermination in a ] steel tank which reduces it’s ability to grow in a natural environment [thus] the organism loses out against environmental yeast [so modified organisms won’t cause problems in the environment since they will die].   We need more people who can understand complete pathways, complete metabolisms.”

Verdezyne:

“Synthetic Biology is a toolset to create renewable fuels and chemicals.  […] The benefits of Synthetic biology are, 1. profitability, as sugar is a lower cost of carbon; 2.  efficiency, from use of [standard high efficiency] fermentation processes; 3. from efficiency improvements, this improves margin, 4.  decreased capital costs; 5. Use of bio-economy, using local crops [for biomass] or local photosynthetic energy to yield [chemicals for local use].    Now we can explore entire pathways in microorganisms [compared to previously when we could only look at single genes].  Traditionally, chemical engineering is the addition of chemicals to create a functionality [whereas in microbial engineering the microorganism directly creates the outputs desired].  We retooled for synthetic biology very easily [from originally building chemical engineering systems].”

Codexis:

“Biocatalysts [are] enzymes or microbes with novel properties [for commercial use].  Green alternatives to classic manufacturing routes.  Biocatalysts require fewer steps and fewer harmful chemicals.  Synthetic biology is one tool towards this [to] quickly create genes and pathways [using the massive amounts of genomic information now available].  [Use of] Public [genome] databases [allow us to] chop months off the [R&D] timeline.  [One desire] of scientists in synthetic biology is making the microorganisms [predictable, as in in engineering] however in commercial environments we can make variants very quickly [so we can deal with variants].  There are many companies which focus on commodification of biological synthesis and we use a variety of suppliers.  The analysis [the R&D] required for designing new pathways is [what is lacking in skillsets of today’s biologists].”

Drew Endy:

Patents costs are drastically more than the cost of the technology itself.  The technology of the iGEM competition costs $3-4 million per year for all international teams, whereas the costs of patenting all submitted Biobricks every year would be 25k per part for 1,500 parts for a total of over $37 million dollars; thus, the patent costs are much more expensive than the technology, so this is an area which is being worked on.  The next generation of biotech is hoped to “run” on an open “operating system” made from an open foundation [where new researchers can use existing genetic parts as open technology rather than having to build everything from scratch].

There was an additional analogy on the call which related synthetic biology to the emergence of vacuum tubes for electrical engineering, which ushered in incredible tools for the advancement of technology and creation of new products.  I’m on the fence about these analogies, because vacuum tubes were well defined and characterized, and the shapes of their mechanical parts was well known (glass, wire, heater filaments, gas fillers, contact length, arc potentials, etc); whereas, the shapes (thus, the function) and characteristics of biological “parts” is still mostly unknown (microbiology is more than the “software strings” of nucleic acid’s A-C-G-T; it is mechanical micro-machines which interact in various ways depending on chemical context and the mechanical shapes or fittings of many of the parts are not well understood yet).

There you have it. Synthetic biology is the leaner, meaner biotech for the future.

3G Cellphone as Biotech Tool: “Cellular Phone Enabled Non-Invasive Tissue Classifier”

Posted by – July 5, 2009

A recent paper in PLoS ONE describes a diagnostic system which uses a common 3G cellphone with bluetooth to assist in point-of-care measurement of tissues, from tissue samples previously taken, with remote data analysis [1].  The hope, of course, is that this could be used for detecting cancer tissue vs. non-cancer tissue.  In general this technological approach is important for the following reasons: it allows data analysis across large populations with server-side storage of the data for later refinement; not all towns or cities will have expert medical staff to classify tissues at a hospital; and sending the sample to another city for classification takes time and creates measurement risk (mishandling, contamination, data entry error, biological degredation, etc).  Since the tissues are measured by a digital networked device, the results can be quickly sent to a central database for further analysis, or as I hint below, for geographically mapping medical data for bioinformatics.

From my interpretation, the complete system looks like this:

The probe electronics are described in [2]; unfortunately that article is not open access, so I can’t read it.  The probes located around the sample are switched to conduct in various patterns and a learning algorithm is used to isolate the probe pair with the optimal signal.  The sample is placed at the center of the petri dish and covered in saline.

Sending the raw data to a central server for analysis allows for complex pattern recognition across all samples collected; thus, the data analysis and the result can improve over time (better fitting algorithms or better weighting in the same algorithm).  The impedance analysis fits according to the magnitude, phase, frequency, and the probe pair.

The article does not explain the technologies used with the cell phone for communicating between the measurement side and the cellular side (USB / Bluetooth communication link, Java, E-mail application link, etc).  Though these technologies are cellphone specific, it is part of the method, and it is not described.  The iPhone would be a good candidate for this project as well.  A cellphone with integrated GPS would allow for location data to be sent to the server, which may be able to provide better number-crunching in the data processing algorithms, for recognition of geographic regions with high risk.

References:
[1] Laufer S, Rubinsky B, 2009 Cellular Phone Enabled Non-Invasive Tissue Classifier. PLoS ONE 4(4): e5178. doi:10.1371/journal.pone.0005178

[2] Ivorra A, Rubinsky B (2007) In vivo electrical impedance measurements during and after electroporation of rat liver. Bioelectrochemistry 70: 287–295.

BioMOO, the biologists’ (biohackers) virtual meeting place; in 1994

Posted by – July 2, 2009

Sometime in 1994, a university obtained some funding and set up BioMOO:

BioMOO is a virtual meeting place for biologists, connected to the Globewide Network Academy. The main physical part of BioMOO is located at the BioInformatics Unit of the Weizmann Institute of Science, Israel.

BioMOO is a professional community of Biology researchers. It is a place to come meet colleagues in Biology studies and related fields and brainstorm, to hold colloquia and conferences, to explore the serious side of this new medium.

More

Low Cost Microcontroller-based Digital Microfluidics using “Processing”

Posted by – July 1, 2009

I’ve now tested the digital microfluidics board via microcontroller. The digital microfluidics board moves a liquid droplet via Electrowetting-on-Dielectric (EWOD).  The microcontroller switches the high voltage via a switching board (pictured below, using Panasonic PhotoMOS chips), which controls the +930VDC output by the HVPS (posted earlier), and runs over USB using no cost Processing.org software.  This is alpha stage testing.. cleaner version to be built.  The goal of course is to scale the hardware to allow automation of microbiology protocols.

Labview is quite expensive, and industrial-grade high voltage switching boards are also quite expensive.  So I built my own hardware and the Processing.org language is an easy way to test things.  The Processing.org language is a free, open source graphics/media/IO layer on top of Java (as posted previously here).

What follows is the super simple test software written in Processing.org & Java.

More