Category: Technical

Product Review: BioTek Microflo liquid dispensing machine

Posted by – December 20, 2009

A couple of pictures of the BioTek Microflo liquid dispenser.

Device with hatch open and spring tension unlocked:

BioTek Microflo cartridge in place

BioTek Microflow cartridge in place. Spring tensioner open. Eight silicone tubes run in parallel, across the pump axle.

Device with hatch open and spring tension locked:

Biotek Microflo with tensioner locked

Biotek Microflo with tensioner locked. Tension is placed across the silicone tube liquid lines. Tension is adjustable with a set screw parallel to each line (screws not shown here, they are vertical and can be seen in a top-down view). The axle rotates clockwise or counterclockwise to move liquid forward or backward with peristaltic action. It is very fast.

This machine has both serial RS-232 and USB; however, the communication link is a proprietary protocol which is only compatible with BioTek’s Microsoft Windows software. The machine is not Unix compatible. So unfortunately, I won’t be using this device in my lab automation setup.

Microplate Standard Dimensions

Posted by – December 2, 2009

The mission of the Microplate Standards Working Group (MSWG) is to recommend, develop, and maintain standards to facilitate automated processing of microplates on behalf of and for acceptance by the American National Standards Institute (ANSI). Once such standards are approved by the MSWG, they are presented to the governing council of the Society of Biomolecular Screening (SBS) for approval for submission to the ANSI. Although sponsored by SBS, membership in the MSWG is open to all interested parties directly and materially affected by the MSWG’s activities, including parties who are not members of SBS.

  • ANSI/SBS 1-2004: Microplates – Footprint Dimensions
  • ANSI/SBS 2-2004: Microplates – Height Dimensions
  • ANSI/SBS 3-2004: Microplates – Bottom Outside Flange Dimensions
  • ANSI/SBS 4-2004: Microplates – Well Positions

Add Streaming Video to any Bio-lab!

Posted by – October 16, 2009

Combining an inexpensive (under $15) USB webcam with free VLC media player software, it is simple to add password-protected internet streaming video for remote users to any lab.  VLC includes the ability to capture from a local webcam, transcode the video data, and stream the video over the web.  It’s available for OS/X, Unix, Linux, and Microsoft systems.

Hint: Video formats are confusing.  Even video professionals have a tricky time figuring out the standards and compatibility issues.  Today’s web browsers also have limitations in what they can display (mime types and such) — which simply means both sides need to use VLC.  Figuring all this out using the VLC documentation takes some work.  Transcoding the video is required and a proper container must be used to encapsulate both video and audio.  Once debugged, it’s good to go.

Here’s how it worked in the lab:

Webcam for Biotech Lab Automation

See the setup below to get it running.

More

More on Bio-lab Automation – Software for Controlling FIAlab Devices for Microfluidics

Posted by – October 9, 2009

Perl software to control lab syringe pump and valve device, for biology automation, initial version finished today. Works great.  Next, need to add the network code, it can be controlled remotely and in synchronization with other laboratory devices, including the bio-robot.  This software will be used in the microfluidics project.  The software is also part of the larger Perl Robotics project, and a new release will be posted to CPAN next week.
FIAlab MicroSIA Valve and Syringe System FIAlab MicroSIA Experimental Setup

More details on the software follow:

More

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

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

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.

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

Playing with the $100K Robots for Biology Automation

Posted by – June 26, 2009

The Tecan Genesis Workstation 200: It’s an industrial benchtop robot for liquid handling with multiple arms for tray handling and pipetting.

The robot’s operations are complex, so an integrated development environment is used to program it (though biologists wouldn’t call it an integrated development environment; maybe they’d call it a scripting application?), with custom graphical scripting language (GUI-based) and script verification/compilation. Luckily though, the application allows third party software access and has the ability to control the robotics hardware using a minimal command set. So what to do? Hack it, of course; in this case, with Perl. This is only a headache due to Microsoft Windows incompatibilities & limitations — rarely is anything on Windows as straightforward as Unix — so as usual with Microsoft Windows software, it took about three times longer than normal to figure out Microsoft’s quirks. Give me OS/X (a real Unix) any day. Now, on to the source code!

More

HVPS for Systems Biology: A Low Cost, High Voltage Power Supply with Schematics + Board Layout

Posted by – June 22, 2009

I have designed this high voltage, low current power supply for various experiments in systems & synthetic biology. I have cleaned up the design and I am placing the schematic and board layout online below!  This circuit outputs up to +1,866VDC at under 1 mA or can be tapped at various points for +622VDC or +933VDC. This is useful for either DIY Biology or institutional research experiments such as:

  • capillary electrophoresis
  • digital microfluidics using electrowetting-on-dielectric
  • possibly electroporation
  • various electrokinetic experiments, such as dielectrophoresis
  • (other uses?? Let me know)
  • and, lastly of course:  making huge sparks that go PAHHHHH-POP

Below is the schematic; read the full post below for the board layout information.  Click on the schematic for the full sized version.  The schematic operates in stages, so leaving out or bypassing before the 2nd final stage will yield only +933VDC, and leaving out that stage will yield only +622VDC, etc.

Schematic for the HVPS "Tripler1"

Schematic for the HVPS

More

Don’t Train the Biology Robot: Have the Machine Read the Protocol and Automate Itself

Posted by – June 3, 2009

Imagine reading these kinds of instructions and performing such a task for a few hours: “Resuspend pelleted bacterial cells in 250 µl Buffer P1 and transfer to a micro-centrifuge tube. Ensure that RNase A has been added to Buffer P1. No cell clumps should be visible after resuspension of the pellet. If LyseBlue reagent has been added to Buffer P1, vigorously shake the buffer bottle to ensure LyseBlue particles are completely dissolved. The bacteria should be resuspended completely by vortexing or pipetting up and down until no cell clumps remain. Add 250 µl Buffer P2 and mix thoroughly by inverting the tube 4–6 times. Mix gently by inverting the tube. Do not vortex, as this will result in…” (The protocol examples used here are from Qiagen’s Miniprep kit, QIAPrep.)

Wait a minute!  Isn’t that what robots are for?  Unfortunately, programming a bioscience robot to do a task might take half a day or a full day (or more, if it hasn’t been calibrated recently, or needs some equipment moved around).   If this task has to be performed 100 or 10,000 times then it is a good idea to use a robot.  If it only has to be done twice or 10 times, it may be more trouble than it’s worth.  Is there a middle ground here?

If regular English-language biology protocols could be fed directly into a machine, and the machine could learn what to do on it’s own, wouldn’t that be great?  What if these biology protocols could be downloaded from the web, from a site like protocol-online.org ?   It’s possible! (Within the limited range of tasks that are required in a biology lab, and the limited range of language expected in a biology protocol.)

Biology Protocol Lexical Analyzer converts biology protocols to machine code for a robot or microfluidic system to carry out

Biology Protocol Lexical Analyzer converts biology protocols to machine code for a robot or microfluidic system to carry out

The point of this prototype project is this: there are thousands of biology protocols in existence, and biologists won’t quickly transition to learning enough engineering to write automated language themselves (and it is also more effort than should be necessary to use a “easy-to-use GUI” for training a robot). The computer itself should be used to bridge the language gap. Microfluidics automation platforms (Lab on Chip) may be able to carry out the bulk of busy work without excessive “training” required.

More

Analog Data Acquisition from USB Microcontroller using the “Processing” Language

Posted by – March 25, 2009

Building on the previous two mini-projects, I have a mini-graphical data acquisition project now running under the Processing language, getting real-world signals from the USB microcontroller (which is a Microchip PIC on a UBW Board from Sparkfun).  Source code below the screenshot.

USB microcontroller sends data to Processing application, which graphs the data

USB microcontroller sends data to Processing application, which graphs the data

More

Blinky LED ‘Hello World’ using USB Microcontroller in ‘Processing’

Posted by – March 24, 2009

Every good embedded systems hardware project begins with a blinking LED (or toggling level as seen on the oscilloscope).  In Processing.org language, there’s the opportunity for both, since the built-in graphics allow for data display as well as the USB microcontroller interface.  (There’s several Processing projects for Arduino, BTW.)   Source code is below.

USB Microcontroller blinks happily under Processing.org program

USB Microcontroller blinks happily under Processing.org program

More

Using the Processing.org Language with Microcontrollers

Posted by – March 22, 2009

Media-technology engineers at MIT have created a computer language and easy-to-use runtime environment called Processing, hosted at processing.org.  I wrote a small code snip for accessing the PIC microcontroller from a USB port, using Processing; it’s pasted below.

This PIC microcontroller connects to USB on a PC, Mac, or Linux machine

This PIC microcontroller connects to USB on a PC, Mac, or Linux machine

More

Apple iPhone 3.0 as next generation Biomedical device

Posted by – March 17, 2009

Apple’s developer preview today, of iPhone 3.0 software, included the interesting news of support for external accessories, either connected through the physical docking connector or through Bluetooth wireless.


A spokesman from Johnson & Johnson announced an iPhone-blood-pressure-monitor accessory, which provides health biometrics and allows the biometrics to be sent over the iPhone’s network connection as an emergency alert.  Their goal is to make diabetes monitoring easier.

The details of the new iPhone interface are in a thin draft document, External Accessory Framework Reference. This doesn’t include the hardware details necessary to connect arbitrary devices, though once it does, I’ll be hooking lots of different devices to the “iPhone-smart-phone-turned-general-purpose-minicomputer”.

I’m sure the game companies already have external joysticks in the works. A recent interview with Pangea software owner revealed their earnings of $1.5 million from downloads of a single iPhone game (Enigmo), with over 800,000 downloads. His biggest complaint: “no D-pad game controller.” Rest assured, that will be solved soon.

Games aside, the iPhone (or iTouch) offers a solid software environment which includes graphical presentation, ease of data entry, network support, wireless roaming, audio support, and now external device data accessories. This is exactly the kind of tool that medical and bioscience needs to help with a deluge of patients.

Synthetic Biology Conference 4.0 videos now online

Posted by – March 15, 2009

Videos of the Synthetic Biology Conference 4.0 from Hong Kong are now available.

One of the best all-around talks as an introduction to synthetic biology, and biotech business aspects of syn bio, is the lecture by Amyris Technologies, and an antidote for malaria using synthesis of the precursors to artimesinin; watch the video below.


Amyris’s Artemisinin Project is completely not-for-profit. The company received a large grant from the Gates Foundation for this commercializable research.

The talk also includes a discussion regarding biofuel breakthroughs now possible through syn bio techniques; their project is currently ramping up to make biodiesel sugarcane bioreactors in Brazil.

Build a Spectrophotometer (Schematics included) as a DIY Project

Posted by – December 26, 2008

I recently ran across this published paper.  Most skunkwork types seem to buy used equipment via ebay.    This article explains how to build a spectrophotometer with schematics, illustrations, and photos.  The circuit is simple:  a photoresistor, op amp, and some mechanics for the optics.

The article even includes a Bill of Materials  (component price list); for the electronics, anyway, and it’s cheap (less than $20 for single quantities through Digikey).  The article is geared towards having undergraduate students build their own laboratory equipment as an educational exercise — and if undergrads can do it, anyone can do it (the article says that a science camp of kids aged 13 to 16 found success).

Education in Chemistry

Build your own spectrophotometer

Summary

  • Take a 100 W light bulb, a light-dependent resistor and op amp, a prism or grating in front of a slit, and a curtain – and voilà , a DIY spectrophotometer.
If you build this project or a similar one, leave a comment below.

Genetically Engineer Bacteria and/or Yeast using Sound (Ultrasound, Sonoporation)

Posted by – November 20, 2008

Almost everyone in the BioBricks realm seems to use a standard method for modifying their organisms: chemical transformation. Yet there is another method which is very promising.

In chemical transformation [3], some standard bacteria is grown, purified, mixed with some chemicals which cut open the bacteria, the new DNA plasmid is added to create some modified bacteria, the new DNA plasmid flows through the cut into the bacteria, everything is mixed with some more chemicals, allowed to heal & grow, and purified. (My naive translation of the process)

Note all the chemicals used? Chemicals can be expensive. And the amount of modified bacteria which results from this process is pretty low.

There’s an alternative method used more for yeast than bacteria: voltage-based transformation, electroporation [1]. With electroporation, some standard bacteria is grown, mixed with some simple chemicals, the new DNA plasmid is added, everything is given a quick high voltage zap (like lightening) which cuts open the bacteria, the new DNA plasmid flows through the cut into the bacteria, the bacteria is allowed to heal & grow, and purified.  (Again, my naive translation of the process)

This eliminates some chemicals, although the process still requires some specialized equipment which can be troublesome (and expensive) — the voltage can be as high as 5 kV at 20 mA. (As high as the internal components of a CRT television, which, if accidentally touched, can be easily fatal.)

There’s another method though, that I haven’t seen mentioned: sonic transformation, sonoporation [2]. In sonic transformation, some standard bacteria is grown, some chemicals are added, optionally producing small bubbles, the new DNA plasmid is added, everything is given a loud blast of ultrasound (for example, at 40 kHz) which cuts open the bacteria, the new DNA plasmid flows through the cut into the bacteria, the bacteria is allowed to heal & grow, and purified.

In the research quoted below, sonoporation has shown to be much more effective at modifying bacteria than either chemical transformation or electroporation; plus, this is done without the expensive chemicals necessary for chemical transformation and without high voltage equipment necessary for electroporation.

From [2]:
More

In-Depth Review, Part 3 of 5: “Beginning Perl for Bioinformatics” by James Tisdall

Posted by – November 3, 2008

In my previous write-ups of Part 1 and Part 2, I traced the Perl code and examples in the first half of the book, Beginning Perl for Bioinformatics, by James Tisdall, highlighting different approaches to bioinformatics in Perl.  As I mentioned before, Perl provides many different (and often stylistic) methods to solving a software problem.  The different methods usually differ in execution speed, code size, code scalability, readability / maintainability, simplicity, and advanced Perl symantics.  Since this is a beginning text, the advanced Perl isn’t covered.. that means templates, which could be useful for parsing bioinformatics data, are one of the topics not included here.

Often, the fastest code is the smallest code, and contains subtle code tricks for optimization. This is a perfect setup, because, in Chapter 8, Tisdall starts parsing FASTA files.  With Perl’s parsing engine, the subtly of the tricks leaves a lot of room for optimizing software.

FASTA & Sequence Translation

Tisdall offers a software problem based on the FASTA data, so time to solve it:

Tisdall: When you try to print the “raw” sequence data, it can be a problem if the data is much longer than the width of the page. For most practical purposes, 80 characters is about the maximum length you should try to fit across a page. Let’s write a print_sequence subroutine that takes as its arguments some sequence and a line length and prints out the sequence, breaking it up into lines of that length.

Compare his solution to mine:

# Solution by Tisdall
# print_sequence
#
# A subroutine to format and print sequence data

sub print_sequence {

    my($sequence, $length) = @_;

    use strict;
    use warnings;

    # Print sequence in lines of $length
    for ( my $pos = 0 ; $pos < length($sequence) ; $pos += $length ) {
        print substr($sequence, $pos, $length), "\n";
    }
}

The above is a straightforward, strings-based approach. I chose a regex approach, which took a couple minutes to work out, though should be faster during run-time:

sub dna_print {
  my $str = $_[0];
  do {
    $str =~ s/^([\w]{0,25})//;
    print "$1\n";
  } until (!length($str));
}

The above relies on the following method:

More

Next Generation Tech for DNA Sequencing

Posted by – October 24, 2008

Let’s say an organism is successfully modified and seems to be performing a portion of it’s synthetically designed biological tasks.  Several questions are raised:  has the organism evolved, during replication, from it’s original design?  Is the organism’s DNA actually the same as the desired engineered DNA?  Is there some mistake in the new organism’s DNA which could be improved?  If the organism doesn’t function properly, is it because of the designers’ mistake, or is it because of the random chance in nature?

These questions are usually answered by verifying the DNA of the organism — sequencing.  Today, verifying the organism’s sequence in a normal lab is done by a long process of diffusing the DNA through a gel and taking a UV picture of the result.  This is rather old (and annoying) technology.  Yet DNA sequencing is difficult because working with DNA poses several big technical problems.  What is the next generation technology for DNA sequencing which could improve this?

Here are some examples and some cool videos as well:

More