DNA Synthesis Using LabVIEW
Andrew Johnson Deval Lashkari Sundial Engineering Synteni, Inc. Berkeley CA Palo Alto, CA gnomon@netcom.com lashkari@synteni.com
[ Motivation for the Software | Tasks to be met | Background of DNA Synthesis | Description of Hardware | Program Overview | Benefits of LabVIEW and Macintosh | Porting to Wintel | Snapshots from the Program ] Table of Contents
Motivation for the software
Every year there are more high-throughput instruments involved in chemical synthesis for the pharmaceutical and biotech industries. Typically, these instruments depend on specialized software to complete their tasks in the most efficient and competitive manner, not to mention make them usable at all. Each of these instruments began as an idea and a prototype. This paper describes one such instrument and its software, from the perspectives of a software developer who was brought in to help bring the instrument to life and a member of the design team.
Intro to Stanford Genome Center, Human Genome Project
This project was executed for the Stanford Genome Center in Palo Alto California, which is a partner in the Human Genome Project. The Human Genome Project is an amibitious effort to map the entire human genentic architecture by 2005. One aspect of this effort requires the synthesis of short sequences of DNA.
All of the above criteria were met with the LabVIEW language on a PowerMac using SCXI for digital control of solenoids and serial I/O to control a linear motor. Stanford has built several synthesis machines, all are running this software on a daily basis.
- Stanford desired software that would synthesize sequences with as little input from the operator as possible.
- The program would accept a single text file as input to designate the sequences of DNA to be constructed.
- It would let the operator test all hardware connections for proper operation at any time, and allow for precise calibration of the reagent delivery system.
- It would need to keep the operator abreast of each step being performed, and present a history of previous steps and upcoming steps.
- The operator would be able to specify a synthesis protocol, a structured series of steps that are repeated for each base in the sequence.
- The software had to allow the operator to test reagent flowrates and delivery and allow for calibration of the flowrates based on observed delivery. These calibration features evolved as the program was developed and as Stanford's understanding of the delivery mechanisms grew.
- Finally, the software had to be able to adapt to new synthesis machines with minimal changes, as each machine would have unique flowrates and calibrations.
Synthetic DNAs, also known as oligonucleotides or primers, are vital components in many molecular biology experiments. The need for these short DNAs has grown tremendously over the years as researchers develop novel applications requiring oligonucleotides. They have uses in DNA sequencing, gene mapping, gene functional analysis and gene therapy. The synthesis chemistry to make primers was developed in 1981 (Beaucage and Caruthers) and provided a fairly robust way to chemically synthesize short pieces of DNA. The process is based on the step-wise addition of each base to a growing DNA chain attached to a solid support matrix. The four main steps in each cycle of synthesis are: 1. Deblocking, 2. Coupling, 3. Capping and 4. Oxidation. These four steps are repeated for each addition of base to the oligonucleotide. Since the chemistry is robust and the steps simple to perform, it is possible to automate the synthesis.
Description of scaleup, high throughput methods
Automated DNA synthesizers have been available for some time and have generally met the needs of the small research laboratory. However, as the genome projects began to map and sequence genes in a high-throughput environment, the standard synthesizers were unable to match the demand for oligonucleotides. Rather than needing one or two unique oligonucleotides, the large genome laboratories required hundreds of DNAs. Since the cost of creating large numbers of primers is substantial on traditional instruments, the increased need prompted the development of the Automated Multiplex Oligonucleotide Synthesizer (AMOS). This instrument synthesizes up to 96 oligonucleotides simultaneously in a standardized format. The DNA is synthesized on a small scale to minimize the reagent consumption and the synthesis is completely automated to reduce the labor. The goal of the AMOS project was to increase the throughput of synthesis 10-fold while reducing the cost 10-fold.
To synthesize primers more efficiently, the fundamental change in synthesis methodology is to have the reaction plate move to the reagent nozzles which deliver the chemicals into the appropriate reaction well. The entire process is automated using individually controlled valves and a linear drive.
The synthesis machine was built and designed by Les Roberts, Deval Lashkari, and Scott Smith. An aluminum frame supports chemical reagents and their delivery systems. Reagents are pressurized with an inert gas, Argon. "Y" valves allow for sending either ACN, which is relatively inexpensive, or reagent through nozzles into a 96 well (8x12) collection chamber. ACN is used to wash and flush the reagent nozzles, and for Wash steps in the synthesis. Each pressurized reagent is sent to a manifold which branches into eight lines. From the manifold reagent flows through a final solenoid (one per line, eight per manifold) and into the well plate. The reaction chamber above the well plate is kept at positive pressure relative to the atmosphere, and can be increased to force excess reagent to drain out of the chamber through ceramic filters.
The aluminum frame also supports a single-axis linear drive (stepper motor), which moves the well plate beneath the delivery nozzles. The linear drive incorporates both hardware and software end-of-travel limits, and provides a homing sensor for repeatable positioning. Collection chambers and tubes allow for purging delivery lines and removal of waste products.
The hardware alone would be impractical to use (by hand) for synthesis. It was specifically designed to be used under software control
Overview of the LabVIEW Program
The LabVIEW program uses an event loop to allow the operator to move between several pre-synthesis routines in a flexible manner. Typical operation would be to log on with a password, check valve operation and plate motion with a utility function , then select a sequence file that contains up to 96 oligo designations. The user would then select a protocol file that describes the steps taken to attach each base to the preceding one, a series of washes, drains, amidite couplings, and wait periods. If any operation parameters had changed since the last time the program was run, such as flow rates or priming volumes, those could be changed or reviewed.
When enough preliminary steps have been completed to start synthesis, the program indicates this to the operator. The Synthesis module contains two parallel program loops; one is a state machine that moves through the various protocol steps, the other monitors for the user's desire to review the status of synthesis or perform an emergency stop. As synthesis proceeds, a panel shows the current protocol step as well as several previous and upcoming steps. The user can pause the synthesis at any time. The amounts of reagent required to complete the synthesis are shown, to let the operator ensure that sufficient reagent is available. Reagent delivery is achieved through open-loop control. There are no level sensors in any reagent containers.
Discussion
The sections of the program will be discussed in the order in which they were developed.
Communication with the solenoids controlling reagent delivery and argon pressure was accomplished through digital I/O hardware. Four 32 channel modules were configured for output only. These were National Instruments SCXI 1163R modules, placed in a SCXI 1000 four-module chassis, connected to the PowerMac through a DIO-24 NuBus card. The output was arranged into eight-bit ports, four to a module. The computer platform was a PowerMac 7100 at 80 MHz with 24 MB RAM.
Communication with a Compumotor SX6 motion controller was accomplished through the PowerMac's RS 422 serial port. An appropriate RS 232 cable was constructed to allow the SX6 to connect to the common data lines. A set of software modules was created to handle all communication with the SX6. The hardware did not provide encoder feedback, thus control of the driven plate was semi-open loop. "Semi" since the SX6 could respond with position information during motion, and this proved accurate enough for our purposes. While the SX6 has a large and robust communications protocol, this program implemented a minimal feature set sufficient to drive single-axis control.
The Digital output and serial port communications software modules lie at the base of the heirachy of functional subroutines. Once they were in place and debugged, we were free to continue with development of the user interface panels and the internal structure of the program, building on the core modules.
There is a screen that allows manual operation of the machine, where an operator can move the plate to any indexed location and deliver a specified volume of reagent through any set of nozzles. There are 12 defined reagent locations and 13 possible plate positions below each reagent, and the manual mode panel asks the operator only for a combination of reagent and well column, not for an absolute distance or position for the indexed plate. The manual mode panel was the basis for most of the initial testing of the hardware, and most of the calibration utilities which were developed are essentially condensed versions of that panel, running suites of predefined routines that require minimal interaction.
The program uses a state machine approach to process the synthesis protocol steps. The protocol can specify any order of steps, with high repetition of certain steps. The state machine lets the program move from one protocol step to another with the minimum amount of overhead. As each step completes, the state machine can check for the next step to activate and direct execution there. A state machine also makes it very easy to pause or stop the synthesis at any time, as the software is never "hung up" within any single protocol step. Each step is executed iteratively, typically one reaction plate movement and reagent addition at a time.
One synthesis protocol step is Coupling. In this step amidite is delivered into the well to attach to the existing chain of bases. In this way a sequence of G, C, A and T bases are built up. During coupling, the software delivers amidites in the most efficient manner possible, by adding whichever amidites are possible to add for a given plate location below the delivery nozzles. Rather than making four separate passes below the nozzles, once for each base, the software delivers all four at once (into separate wells, of course!). In this way, the synthesis is run at an optimum speed.
The user has three pause functions: Pause on Step, Pause on Cycle, and Pause Immediate. Pause on Step will stop synthesis when the current protocol step completes. Some protocol steps, such as couple, move the well plate progressively below several reagents, so there could be a significant delay before the pause is activated. Pause on Cycle will stop synthesis once the final protocol step has been completed for the current base. Pause Immediate stops synthesis without any delay, this is analogous to a "panic" button.
Feedback on Program Activity
The software provides feedback on the status of the synthesis, how many more cycles (base additions) remain to complete, and the amounts of reagents required to complete synthesis. An operator can pause synthesis if a particular reagent has run low in its container.
For debugging purposes, a small text window also displays messages sent continuously by the program from any active step. This allows the programmer to monitor which functions are being used at any time, and track errors should they occur. It also provides a continuously updating message to the operator, which can provide reassurance that the software is functioning properly.
Flushing Routine
A special routine was developed that can predict periods of inactivity for any nozzle. Based on an operator-supplied parameter, the program can flush reagent through a nozzle after it has been idle for some number of cycles, but before any reagent at the nozzle tip has had a chance to harden. If a nozzle tip were to become crusted over with dried reagent, it's doubtful the Argon pressure would be sufficient to break it loose, and the synthesis would then have to discarded. This special flushing routine examines the entire synthesis and maps out periods of inactivity before synthesis starts.
Benefits of using LabVIEW
LabVIEW is a high-level graphical programming language sold by National Instruments. It has emerged as a standard language for Data Acquisition and Control using desktop computers. It originated on the Macintosh, and is now available for many other platforms. It uses a graphical syntax of icons, frames, and connections between icons and frames.
A front panel contains any elements that form the user interface. LabVIEW allows extremely rapid development and testing of interface elements, and provides simple means of copying similar elements between different panels. A block diagram contains the icons and frames that make up the code. Items placed on the front panel are accessed through terminals. Together, a front panel and block diagram form a logical program unit called a subVI.
Since each subVI can be operated on its own, it is possible to debug many of the lower level functions before using them in the larger application. Once integrated into the larger application, each subVI's operation can be monitored and tested further. This approach is preferable to one where most subroutines cannot be tested until all globals have been initialized and all higher procedures have operated to pass data to the lower routines.
A key feature of LabVIEW is its ability to let the programmer configure parallel operations. Two or more loops can be constructed that handle disparate processes, and the LabVIEW task manager distributes CPU time between them. While quite different than a true multi-threaded multi-tasking environment, for all practical purposes this approach gives the programmer the ability to manage several tasks at once, such as monitoring a front panel for a mouse click while simultaneously acquiring and storing data. This approach was used here, with one loop running the synthesis protocol step by step, and another loop on the same block diagram handling user I/O, especially looking for a click on an emergency stop button.
Benefits of using Macintosh
This project was developed on a Macintosh Quadra 800 with PowerPC upgrade card, for use on PowerMac 7100 computers. The traditional benefits of the Mac OS allowed this project to proceed efficiently and effectively. Programmer frustration level was reduced significantly in comparison to performing the same tasks on a Windows OS computer. File transfer between the two machines was quite simple, whether by floppy, by hard drive, or by internet file transfer protocol.
Running LabVIEW and using SCXI for digital output required very little extra software or hardware configuration. The program does not need to run on the fastest hardware to be effective, as the latencies inherent in DNA synthesis (wash and drain steps) create the significant bottlenecks. Thus, the PowerMac 7100 will remain a viable platform for this chemistry for many years to come.
Ease of porting to PC
LabVIEW source code is compatible across operating systems, which has eased the development of a Wintel version of the synthesis program. Only two major changes were required to port to accomodate operation on wintel machines. Fonts had to be resized and the sequence file import routine was modified to work with the CR LF (carriage-return linefeed) that are commonly used to terminate lines of text on DOS computers, where Macintosh uses a single CR.
Thus far, the program has been ported twice for use with PCs. In each case the software was used with hardware built according to Stanford specifications. Both of these installations are producing viable oligos in large volumes.
Future tasks
The program needs more robust error recovery. A future addition that would help recover from a computer crash would be to log every action taken and look for an interrupted synthesis at startup. If an unfinished synthesis was detected, the operator would be given the option of continuing the synthesis if the viability of the incomplete oligos was good.
A similar feature would be to let the operator start synthesis from any place in the synthesis sequence. This would be useful when developing new chemistry and/or protocols, and also to allow the operator to stop synthesis, teminate the program, perform some other operation, restart the program, and pick up from the last position.
As the scientific community expands its understanding of DNA and cell chemistry, there will no doubt be many additional features and changes added to the program. By using LabVIEW on the Macintosh as a development platform, we have ensured our ability to make these changes, as LabVIEW has proven itself a robust programming language for over a decade.
These snapshots demonstrate some of the features of the software.
Opening Screen
Main Block Diagram
Manual Mode Panel
Nozzle Flow Correction
Block Diagram for Coupling
Sequence File Browser
Automatic Priming Operation
Protocol selection
Synthesis in action