PARALLEL SEQUENTIAL REACTOR

Abstract: A reactor (10) for sequentially modifying a molecule attached to a solid phase support, including: a plurality of substrate carriers (90), each substrate carrier (90) capable of carrying a solid support to which a molecule to be modified can be attached; a plurality of reagent chambers (40, 42, 44, and 46), each capable of comprising a reagent for effecting a modification of the molecule; and means for individually bringing each of a plurality of chosen substrate carriers into a reagent-contact mode and a reagent-non-contact mode (20, 30) with each of a plurality of reagent chambers (40, 42, 44, and 46). Each of a plurality of substrate carriers (90) is capable of sequential contact with the contents of a plurality of the reagent chambers (40, 42, 44, and 46). The sequential contact is capable of resulting in the sequential modification of molecules attached to solid phase supports on the plurality of substrate carriers (90).

Description: PARALLEL SEQUENTIAL REACTOR Background of the Invention This invention relates to the simultaneous sequential modification of molecules located on more than one solid phase substrate and more particularly to the simultaneous synthesis of multiple polymeric molecules. Recent advances in molecular biology and molecular medicine have generated substantial demand for man-made biological macromolecules, particularly peptides and nucleic acids. Summary of the Invention In general, the invention features, a method and reactor for sequentially modifying a molecule attached to a solid phase support. The reactor includes: a plurality of substrate carriers, each substrate carrier capable of carrying a solid phase support to which a molecule to be modified can be attached; a plurality of reagent chambers, each capable of containing a reagent for effecting a modification of the molecule; and, means for individually bringing each of a plurality of chosen substrate carriers into a reagent-contact mode and into a reagent-non-contact mode with each of a plurality of chosen reagent chambers. Each of a plurality of the substrate carriers is capable of sequential contact with the contents of a plurality of the reagent chambers. Such sequential contact is capable of resulting in the sequential modification of molecules attached to the solid phase supports in the plurality of substrate carriers. In preferred embodiments the reactor includes means for controlling the sequence in which the reagent chambers and the substrate carriers are brought into the reagent-contact mode; and, means for individually positioning each of a plurality of chosen substrate carriers in a reagent-contact mode and in a reagent-non- contact mode, and means for positioning each of a plurality of chosen reagent chambers relative to a chosen substrate carrier such that when the chosen substrate carrier is in the reagent-contact mode the chosen substrate carrier is in contact with the contents of a chosen reagent chamber and when the chosen substrate carrier is in the reagent-non-contact mode the chosen substrate carrier is not in contact with the contents of the chosen reagent chamber. Other preferred embodiments include those in which: the reactor can simultaneously modify a first molecule on a first substrate carrier and a second molecule on a second substrate carrier; and the reactor can perform the simultaneous modifications in different reagent chambers. Other preferred embodiments include those in which: the modification includes the addition of a monomeric subunit to a nucleic acid molecule, the substrate carriers are capable of carrying a solid phase support suitable to support the synthesis of the nucleic acid molecule, and the reactor includes sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a nucleic acid molecule on one of the substrate carriers; the reactor can simultaneously synthesize a first oligomer on a first substrate carrier and a second oligomer on a second substrate carrier, the first and second oligomers differing in subunit sequence; and the reactor can simultaneously perform a reaction in the synthesis of the first oligomer and a reaction in the synthesis of the second oligomer in different reagent chambers. Other preferred embodiments include those in which: the substrate carriers are capable of carrying a solid phase support suitable to support the synthesis of a protein molecule, the modification includes the addition of a monomeric subunit to the protein molecule, and the reactor includes sufficient substrate carriers to perform a sequence of reactions resulting in the synthesis of a protein molecule on one of the substrate carriers; the reactor can simultaneously synthesize a first protein on a first substrate carrier and a second peptide on a second substrate carrier, the first and second oligomers differing in subunit sequence; and the reactor can simultaneously perform a reaction in the synthesis of the first protein and a reaction in the synthesis of the second protein in different reagent chambers. In other preferred embodiments the reactor includes means for supplying reagent to and removing reagent from a reagent chamber. In other preferred embodiments the reactor includes: a computer to control the positioning of a plurality of the substrate carriers and the positioning of a plurality of the reagent chambers; the computer is programmed to effect a sequence of positionings of a first substrate carrier relative to a plurality of reagent chambers the sequence being capable of effecting a desired sequence of modifications of a polymeric molecule in a first substrate carrier; the computer is programmed to effect a sequence of positionings of a second substrate carrier relative to a plurality of reagent chambers the sequence being capable of effecting a desired sequence of modifications of a second polymeric molecule in a second substrate carrier; the computer is programmed such that the first polymeric molecule includes a different sequence of monomeric subunits than does the second polymeric molecule; the computer is programmed such that at least one reaction in the modification of the first polymeric molecule and one reaction in the modification of the second molecule are performed simultaneously; a computer is programmed such that the simultaneous reactions are performed in different reagent chambers; and the computer is programmed such that the simultaneous reaction are performed in the same reagent chamber. In yet other embodiments the reactor includes: means for positioning each of a plurality of reagent chambers including a moveable carrier which includes a plurality of reagent chambers, the individual positioning means being positioned relative to the moveable carrier such that the action of an individual positioning means causes the transition from the reagent-non-contacting mode to the reagentrcontacting mode of a chosen substrate carrier with respect to a chosen reagent chamber and movement of the moveable carrier establishes which of a plurality of reagent chambers is the chosen reagent chamber with respect to a chosen substrate carrier; the reactor can simultaneously modify a first molecule on a first substrate carrier and a second molecule on a second substrate carrier; the individual positioning means are positioned such that a first substrate carrier and a second substrate carrier can be simultaneously placed in the reagent contact mode with respect to a first chosen reagent carrier; and a third substrate chamber can simultaneously be placed in the reagent contact mode with respect to a second chosen reaction chamber. In another aspect the invention features a nucleic acid oligomer synthesizer. The synthesizer includes: a plurality of moveable discrete surfaces suitable for supporting a substrate for the solid state synthesis of a nucleic acid oligomer; a moveable reagent chamber module which includes a plurality of reagent chambers, the module being capable of movement such that one of the chambers can be established as a chosen reagent chamber; and means for moving the discrete surfaces into contact with the contents of the reagent chambers. The plurality of discrete surfaces are positioned such that a first chosen surface can be placed in contact with the contents of a first chosen reagent chamber and a second chosen surface can be placed in contact with the contents of a second chosen reagent chamber. A reagent chamber is chosen by moving the module such that the chosen surfaces can be brought into contact with the contents of a reagent chamber chosen. The movement of each of a plurality of surfaces into contact with the contents of a reagent chamber is under individual control. A sequence of contacts between a surface and a plurality of reagent chambers is capable of synthesizing a nucleic acid oligomer on one of the surfaces. Preferred embodiments include means for supplying reagent to and removing reagent from a reagent chamber. Other preferred embodiments include those in which: the synthesizer includes a computer to control the positioning of a plurality of the surfaces and the positioning of a plurality of the reagent chambers; the computer is programmed to effect a sequence of contacts between a chosen surface and a plurality of chosen reagent chambers the sequence being capable of synthesizing a first oligomer on the chosen surface; the sequence is further capable of synthesizing a second oligomer on a second chosen surface; the computer is programmed such that the first oligomer comprises a different sequence of monomeric subunits than does the second oligomer; the computer is programmed such that at least one monomeric subunit of the first oligomer and one of the second oligomer are added simultaneously; the computer is programmed such that the simultaneous additions are performed in different reagent chambers; and the computer is programmed such that the simultaneous additions are performed in the same reagent chamber. The invention also includes a method for the sequential modification of a molecule attached to a solid phase support. The method includes: supplying a plurality of substrate carriers, each substrate carrier capable of carrying a solid phase support to which a molecule to be modified can be attached; supplying a plurality of reagent chambers, each capable of containing a reagent for effecting a modification of the molecule; and supplying means for bringing positioning each of a plurality of chosen substrate carriers into a reagent- contact mode and into a reagent-non-contact mode with each of a plurality of chosen reagent carriers; and bringing each of a plurality of the substrate chambers into sequential contact with the contents of a plurality of the reagent chambers the sequential contacts being capable of resulting in the sequential modification of molecules attached to the solid phase supports on the plurality of substrate carriers. Preferred embodiments include: controlling the sequence in which the reagent chambers and the substrate carriers are brought into the reagent-contact mode; and supplying means for individually positioning each of a plurality of chosen substrate carriers in a reagent- contact mode and in a reagent-non-contact mode and means for positioning each of a plurality of chosen reagent chambers relative to a chosen substrate carrier such that when the chosen substrate carrier is in the reagent- contact mode the chosen substrate carrier is in contact with the contents of a chosen reagent chamber and when the chosen substrate carrier is in the reagent-non- contact mode the chosen substrate carrier is not in contact with the contents of the chosen reagent chamber. Other preferred embodiments include: simultaneously modifying a first molecule on a first substrate carrier and a second molecule on a second substrate carrier; and performing the simultaneous modifications in different reagent chambers. Other preferred embodiments include: synthesizing a nucleic acid molecule, adding (as the modification) a monomeric subunit to the nucleic acid molecule, supplying substrate carriers capable of carrying a solid phase support suitable to support the synthesis of the nucleic acid molecule, and supplying sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a nucleic acid molecule on one of the substrate carriers. Other preferred embodiments include: simultaneously synthesizing a first oligomer in a first substrate carrier and a second oligomer in a second substrate carrier, the first and second oligomers differing in subunit sequence; and simultaneously performing a reaction in the synthesis of the first oligomer and a reaction in the synthesis of the second oligomer in different reagent carriers. Other preferred embodiments include: synthesizing a protein molecule, adding (as the modification) a monomeric subunit to the protein molecule, supplying substrate carriers capable of carrying a solid phase support suitable to support the synthesis of a protein molecule, and supplying sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a protein molecule on one of the substrate carriers. Other preferred embodiments include: supplying means for supplying reagent to and removing reagent from a reagent chamber; controlling the positioning of a plurality of the substrate carriers and the positioning of a plurality of the reagent chambers with a computer; effecting, by the computer, a sequence of positionings of a first substrate carrier relative to a plurality of reagent chambers the sequence being capable of effecting a desired sequence of modifications of a polymeric molecule on a first substrate carrier; effecting, by the computer, a sequence of positionings of a second substrate carrier relative to a plurality of reagent chambers the sequence being capable of effecting a desired sequence of modifications of a second polymeric molecule on a second substrate carrier; and effecting, by the computer, a sequence of positionings such that the first polymeric molecule comprises a different sequence of monomeric subunits than does the second polymeric molecule; performing a sequence wherein at least one reaction in the modification of the first polymeric molecule and one reaction in the modification of the second molecule are performed simultaneously; performing a sequence wherein the simultaneous reactions are performed in different reagent chambers; and performing a sequence wherein the simultaneous reaction are performed in the same reagent chamber. Yet other preferred embodiments include: providing the means for positioning each of a plurality of reagent chambers as a moveable carrier which includes a plurality of reagent chambers, the individual positioning means being positioned relative to the moveable carrier such that the action of an individual positioning means causes the transition from the reagent non-contacting mode to the reagent-contacting mode of a chosen substrate carrier with respect to a chosen reagent chamber, and moving the moveable carrier to establish which of a plurality of reagent chambers is the chosen reagent chamber with respect to a chosen substrate carrier; and simultaneously modifying a first molecule on a first substrate carrier and a second molecule on a second substrate carrier; positioning the individual positioning means such that a first substrate carrier and a second substrate carrier can be simultaneously placed in the reagent contact mode with respect to a first chosen reagent chamber; positioning the array of individual positioning means such that a first substrate chamber and a second substrate chamber can be simultaneously placed in the reagent contact mode with respect to a first reagent chamber; simultaneously positioning a third substrate carrier in the reagent contact mode with respect to a second reagent chamber. Other preferred embodiments include: simultaneously synthesizing a first protein on a first substrate carrier and a second peptide on a second substrate carrier, the first and second oligomers differing in subunit sequence; and simultaneously perform a reaction in the synthesis of the first protein and a reaction in the synthesis of the second protein in different reagent chambers. The invention also includes a method of synthesizing a nucleic acid oligomer. The method includes: supplying a plurality of moveable discrete surfaces suitable for supporting a substrate for the solid state synthesis of a nucleic acid oligomer; supplying a moveable reagent chamber module comprising a plurality of reagent chambers, the module being capable of movement such that a particular chamber can be established as a chosen chamber; supplying means for moving the discrete surfaces into contact with the contents of the reagent chambers, the plurality of discrete surfaces being positioned such that a first chosen surface can be placed in contact with the contents of a first chosen reagent chamber and a secod chosen surface can be placed in contact with the contents of a second reagent chamber; choosing a reagent chamber, by moving the module such that the chosen surfaces can be brought into contact with the contents of a chosen reagent chamber; and moving each of a plurality of individually controllable surfaces into contact with the contents of a plurality of reagent chambers to effect a sequence of contacts between surfaces and reagent chambers capable of synthesizing a nucleic acid molecule on one of the surfaces. Preferred embodiments include: supplying means for supplying reagent to and removing reagent from a reagent chamber. Other preferred embodiments include: supplying a computer to control the positioning of a plurality of the surfaces and the positioning of a plurality of the reagent chambers; effecting, by computer, a sequence of contact between a chosen surface and a plurality of chosen reagent chambers the sequence being capable of synthesizing a first oligomer on the chosen surface effecting, by computer, a sequence further capable of synthesizing a second oligomer preferably with a different sequence from the first oligomer on a second chosen surface; effecting, by computer, a sequence in which at least one monomeric subunit of the first oligomer and one of the second oligomer are added simultaneously in the same or in different reagent chambers. The invention also includes modified molecules, e.g., nucleic acid oligomers or protein molecules, made by the methods described herein. Sequentially modifying, as used herein, means performing at least two modifications, one of which is initiated prior to the other. Modifying a molecule, as used herein, means effecting a chemical change in the molecule, e.g., breaking a covalent or noncovalent bond in the molecule, adding or removing a component or monomeric subunit, or cleaving a molecule from a substrate, or changing the environment of the molecule, e.g. , by altering the purity or concentration of the molecule. Simultaneous, as used herein, means overlapping in time. A reaction, as used herein, is an event in which a molecule is modified. Methods and devices of the invention provide for the rapid, easy, and economical simultaneous synthesis of multiple DNA oligomers. The invention does not require laborious packing of columns or sorting of paper substrates and minimizes the waste of reagents. Large numbers of oligomers are produced simultaneously and physically separated from one another. The invention is particularly useful where 1-500 pmol of DNA is desired, e.g., for use in DNA sequencing, hybridization assays, diagnostic procedures, polymerase chain reaction procedures, gene synthesis, and site directed mutagenesis. Other features and advantages of the invention will be apparent from the following detailed description and from the claims. Detailed Description The drawings are first described. Drawings Fig. 1 is a combined block-pictorial diagram of one embodiment of the reactor of the present invention; Fig. 2 is a cross-sectional view of a portion of the reactor; Fig. 3A is a top elevational view of the trough module; Fig. 3B is a front elevational view of the trough module; Fig. 3C is a rear elevational view of the trough module; Fig. 3D is an end elevational view of the trough module; Fig. 4 is an end view of a portion of the reactor; Fig. 5 is a bottom perspective view of the trough module and associated structures; Fig. 6 is a diagram of the reagent reservoir and drive system; Fig. 7 is a partially exploded side elevational view of a solenoid-piston-reagent tip assembly; Fig. 8 is a wiring diagram of the OM-915 controller terminal board; Fig. 9 is a schematic diagram of the valve block; Fig. 10 is a schematic diagram of the synthesis enclosure wiring; Fig. 11 is a flow chart for a computer program suitable for use with the reactor; and Fig. 12 is a simplified perspective diagram showing the placement of solenoid assemblies with respect to one another and with respect to the trough module. DNA Synthesizer: Overview A DNA synthesizer capable of the simultaneous synthesis of a large number of different oligomers is described below. The device includes six discrete surfaces on which oligomers can be synthesized. (Although the embodiment discussed here has six synthetic surfaces it is easily modified, as described below, to incorporate many more surfaces, thus allowing the simultaneous synthesis of many more oligomers.) The surfaces have a solid-phase support suitable for the synthesis of DNA adhered to them. The device also includes a number of reagent chambers which hold reagents used in the synthetic reactions. The movement of a surface in and out of a sequence of reagent chambers results in the proper sequence of reactions for the synthesis of an oligomer of desired sequence. By movement of the individual surfaces and the chambers the device allows individual control over the contact of each surface with each reagent chamber. Each discrete surface is carried on the tip of a solenoid-piston assembly, with the solenoid action capable of raising or lowering the tip. The solenoid- piston assemblies are arranged in an array of rows above an array of reagent chambers. The reagent chambers consist of troughs cut in the surface of a block of inert plastic. The block can be moved, by a stepping motor, so as to allow a row of solenoid borne tips access to a given reagent trough. When lowered, a surface (or tip) dips into the contents of the reagent chamber positioned beneath it. The tips in a row are, by the action of the solenoids, either dipped into the trough below them or held above the trough and thus not dipped into the trough, depending on whether the sequence of the molecule being constructed requires contact with the reagent in the trough. Tips in adjacent rows are positioned above respective adjacent troughs. Dipping of surfaces is controlled individually and simultaneously, thus different reactions, i.e., reactions in different troughs, occur simultaneously. The device also includes a system of valves, lines, and reservoirs to supply the troughs with reagents, a motor to move the trough block, and a computer and interface to control the action of the solenoids, valves, trough block. The computer, which is programmed with the sequence of the oligomer to be synthesized on each tip, generates instructions for the proper sequence of dipping, trough movement, and valve control, to effect the desired synthetic reactions, i.e., to effect the simultaneous synthesis of specific oligomers on specific surfaces. Structure and Operation As shown in FIG. 1, and described more fully below, the principle components of the automated synthesizer 10 are trough assembly 20, reagent reservoir and drive system 30, solenoid array 40, gastight enclosure 50, valve block 60, motor 70, computer 80 and controller 90. Trough Assembly The trough assembly provides reagent troughs which can be movably positioned beneath an array of solenoid mounted synthetic surfaces. Reagent troughs are located on a carrier block which is moved by a stepping motor. With reference to FIG. 2, the trough assembly includes trough module 20, mounting assembly 30, pillow blocks 40, travel rails 50, drive belt 60, pulleys 70, and stepping motor 80. The trough module, shown in FIG. 3, was milled from a solid block of polypropylene, although any similar inert material is suitable. The trough module 20 is 5 inches in length, 1.275 inches deep, and 3.375 inches wide. The troughs 30, which are milled in the top face 25 (Fig. 3A) of trough module 20, are numbered 12, 10, 8, 4, 3, 2, 1. With the exception of trough No. 8, the troughs are milled to a 60° angle at the base and are 5mm deep. Trough No. 8 is round bottomed and 8mm deep to facilitate a higher volume of reagent flow during the detritylation step. The troughs 30 are spaced 9 mm on- center, so as to be compatible with the spacing found in commercially available 96 well laboratory equipment. Reagent inlet ports 40, located on the front face 45 (Fig. 3B) of trough module 20, and reagent delivery lines 50 allow delivery of reagents to the troughs 30. The reagent inlet ports 40 are tapped for standard 1/4" 28 connections. The reagent exhaust ports 60, located on the back face 65 (Fig. 3C) of trough module 20, and reagent exhaust lines 70 allow removal of reagents from the troughs 30. The reagent exhaust ports 60 are tapped for standard 1/4" 28 connections. As shown in Fig. 3D, the bottom surface 80 of the reagent inlet and exhaust ports should be flat, to allow a good seal with standard 1/4" 28 connectors. All ports and lines should be constructed so as to minimize the dead volume of the system while still allowing adequate flow rates. Their surfaces should be smooth to facilitate washing and to minimize contamination. As shown in FIGS. 2, 4, and 5, the trough module 20 is mounted on pillow blocks 40 (TWN-4-ADJ super ball bushing twin pillow block, Atlantic/Tracy, Inc.) to allow travel of the trough module 20 on the travel rails 50. The mounting assembly 30 includes two 1/8 inch aluminum plates 35, to which the trough module 20 is rigidly but removably mounted. Pillow blocks 40 are mounted on the underside 38 of the mounting assembly 30. The travel rails 50 pass through the pillow blocks 40. The drive belt 60 is fixed rigidly to the drive belt anchor 65 and is held in position by pulleys 70. Angular displacement of the main drive pulley 85 of the stepping motor 80 is translated by the drive belt 70 into transverse displacement, along the travel rails 50, of the trough module 20. The main drive pulley 85 is located as close to the back plate 90 of the gas tight enclosure as possible. The drive belt 60 is routed so that it will not interfere with the solenoid array, the reagent supply or exhaust lines connected to the trough unit, or other elements of the device. The drive belt 60 is positioned as closely to the ends of the gastight enclosure as possible and as close to the base plate 100 as possible, and is routed along the centerline of the baseplate 100 to the trough unit. Kill switches are appropriately placed so as to limit the travel of the trough unit and preventing it from moving into the glass endplates 110. Reagent reservoir and drive system The reagent reservoir and drive system provides for the supply and removal of reagents, e.g., monomer, oxidizer, and rinsing agents, to the monomer troughs. As shown in FIG. 6, the reagent reservoir and drive system 10 includes, gas source 20, metering valves 30, reagent reservoirs 40, 42, 44 and 46, monomer reservoirs 50, 52, 54, and 56, gas lines 60, delivery lines 70, two-way valves 80, reagent inlet connectors 90 (connected to the front face 95 of the trough module) , reagent exhaust connectors 100 (connected to the backface 105 of the trough module) , exhaust lines 110, three way valve 120, vacuum trap 130, and vacuum source 140. Gas pressure from gas source 20 provides the motive force for the transfer of reagents from their reservoirs, through the delivery lines, to the reagent inlet connectors (and thus to the troughs of the trough module) . Motive force for the removal of reagent or monomer from a trough is provided by a vacuum source. The delivery or removal of a reagent is controlled by opening and closing appropriate subsets of valves. As described below, the operation of the valves is under computer control. Argon is a suitable inert gas for use in the reagent reservoir and drive system. A standard 2-stage regulator is used to release ultra-pure argon from the supply tank at approximately lOpsi. The lines supplying argon to the monomer reservoirs are set at 6psi. The monomers and tetrazole are delivered from the bottles they are shipped in. Argon pressure is delivered to them through a 20 gauge 1 1/2" needle attached to a male luer(w/lock)-l/4"24 adaptor connected to the appropriate general valve connector. The other reagents are stored in Kontes HPLC/synthesizer reservoirs. Argon is delivered to these reservoirs at 3psi directly to inlet ports in the caps of the reservoirs. Solenoids and solenoid array The lower tips of the solenoid piston assemblies (on which the synthetics surfaces are mounted) can be dipped into the reagent troughs by the action of the solenoids. The positioning of the solenoid array, together with the allowable travel of the trough module, insure that each solenoid row has access to each trough on the trough module. A solenoid-piston-reagent pin assembly 10 is shown in FIG. 7. The assembly includes a solenoid 20, piston 30, retaining ring 40, connecting rod 50, adaptor 60, pin socket 70, pin 80, and reagent tip 90. A Guardian T 3.5 X 9-C12D, 12 volt DC continuous duty tubular solenoid is a suitable solenoid. The retaining ring 40 can be fabricated from polypropylene, e.g., a one millimeter thick slice cut from a Rainin RT96 pipette tip. The connecting rod 50 is a plastic shaft which can be fabricated, for example, from the positive displacement piston of a Gilson CP-250 pipette. The flexible adaptor 60 can be fabricated from a piece of flexible tubing, for example, Cole-Parmer 1/32 X 3/32 C- flex tubing. The pin socket 70 can be fabricated from the distal six millimeters of a Rainin RT96 pipette tip. The pin 80 is a steel rod and can be fabricated from the displacement piston of a Gilson CP-50 pipette. The reagent tip 90 is made of polypropylene. The proximal fitting from the steel displacement piston of a Gilson CP-50 pipette can be used for a reagent tip. The solenoid assemblies 20 are mounted in solenoid array frame 100. The frame 100 can be fabricated from a Rainin RT96 pipette box. The solenoid assemblies 20 are positioned in an array such that the longitudinal axis of the pistons are aligned with the spacing found in standard 96-well titre plates. (Standard 96 well-plates have an 8x12 array of wells. The wells are spaced 9mm on-center) . The solenoids should be positioned in a staggered, i.e., a two tier, configuration, because the solenoid diameter is too great to allow them to be packed adjacently, i.e., at the same level. The two tier arrangement also allows improved heat dissipation. Piston 30 is inserted into solenoid 20. Retaining ring 40 is fitted onto piston 30. Connecting rod 50 links flexible adapter 60 to piston 30 and on the other end to pin socket 70. Pin 80 fits removably into pin socket 70. Retaining ring 40 prevents the piston from seating fully on energizing of the solenoid 20. If allowed to seat fully residual magnetism prevents the piston from descending when the power is removed. Beneath the piston assembly upper guide plate 110 and lower guide plate 120 align the reagent pin 80 and direct it to the trough. Guideplates 110, 120 are fixed rigidly with respect to solenoid array frame 100. A clearance of about lmm exists between the tip and the top surface of the trough when the solenoids are energized. The upper guide plate 110 prevents the piston from falling out of the solenoid and determines the magnitude of piston travel. Total piston travel is about 8mm. Oligomers are synthesized on a solid phase substrate adhered to the reagent tips. Any suitable solid phase substrate, e.g., glass fiber, cellulose, or controlled pore glass beads, can be used. Commercially available controlled pore derivatized beads (to which A, T, G, or C monomer has been attached) used in column based DNA synthesis, e.g. , those available from ABI (e.g., A controlled pore glass ABI part number 400386, C controlled pore glass ABI part number 300387, G controlled pore glass ABI part number 400388, and T controlled pore glass ABI part number 400389) or, Milligen, are particularly convenient for use with the device. The beads are adhered to the reagent tips by heating the reagent tip until it is just molten then forcing the heated tip into a shallow container filled with the appropriate bead. When beads coupled to a given monomer are used for the synthesis of a molecule that monomer forms the first subunit, in the 3*-5' direction of the molecule. Gastight enclosure The gastight enclosure provides a solid base on which other components, e.g. , the motor, travel rails, and solenoid array can be mounted and isolates the reagent tips and reagents from the atmosphere. With reference to FIGS. 2 and 4 the gastight enclosure has front plate 88, back plate 90, and base plate 100, fabricated from .3125" aluminum, and endplates 110 and top plate 120 fabricated from .3125" glass. Silicone gaskets are glued to the glass plates, and the glass plates clamped to the aluminum structure to provide a gastight environment. A humidity meter (not shown) is attached to the top plate with its probe snaked between the aluminum side and top silicone seal. Lines delivering fresh reagent enter the device through the front plate 88. The vacuum (exhaust) line, argon purge lines (not shown) , and electrical connections, pass through the back plate 90 and the motor is attached to the back plate 90. The trough unit travels on rails attached to the base plate 100. The solenoid array 125 rests on supports that are connected to the front 88 and back 90 plates. The solenoid array 125 is firmly seated yet removable. The entire enclosure can be purged of atmospheric gases by argon delivered through a regulator. Valve Block The valve block provides valves which control the flow of reagents to and from the reagent troughs. The valve block consists of 24 12VDC 2-way teflon valves (GV#2-17-900, General Valve Corp.) which control the flow of monomers and other agents to and from the trough module and a single 3-way teflon valve (GV#1-17- 900 General Valve Corp.) which controls exhaust vacuum. The 2-way valves are closed when not energized and open when energized. All 2-way exhaust valves (Omega relay # 7-12, see below) are connected to the 3-way valve such that the main force of the vacuum is isolated from the 2- way valves when the 2-way valves are closed. The vacuum valves are electrically isolated from each other via diodes. The valves are mounted on Rainin RT96 pipet tip racks and housed in Rainin TR96 pipet tip boxes. All non-monomer connections are made with 1/16" x 1/32" teflon tubing and the appropriate fittings supplied by General Valve according to their recommendations. The monomers and tetrazole lines are .007"ID tubing. Although small-bore tubing is desirable in that it minimizes dead volume the additional trough-filling time required by small bore tubing may be undesirable. Motor A Super Vexta PH268M-E1.5B 2-phase stepping motor (Inductive Components) is a suitable motor for moving the trough module. Computer and Interface The synthesis of DNA is controlled by computer in embodiments of the invention. Both Digital Microvax and Radio Schack TRS 80 Model 100 computers have been used with the synthesizer. Instructions from the computer control the timing and sequence of reagents which come into contact with a synthetic surface, i.e., the beads on which oligomers and synthesized, and thus determine the sequence of the oligomer synthesized on each tip. These 5 instructions, e.g., instructions to open or close various valves (to introduce or remove a reagent from a trough) , to move the trough module (to position a chosen trough under a chosen row of tips) , or to raise or lower a given synthetic surface (to dip a tip into a trough) , are 0 implemented by the interface. An Omega OM900 Series Interface (Omega Instruments, Stanford, Connecticut) or similar device capable of converting instructions from the computer into signals that can control the electromechanical devices, 5 e.g., the valves and the motor, of the synthesizer, can be used as an interface. The Omega OM900 Series interface includes a central processing unit (OM992 Central Processing Unit) , an interface power supply (OM-903 Power Supply) , and a 0 multiplex module (OM915 Multiplex Module) with 32 individually addressable relays which are used to control the valves, stepper motor, and solenoids of the device. In a device configured to synthesize DNA, with six separate solenoid controlled synthetic surfaces, the 32 5 relays are assigned as shown in Table 1. Table 1 Relay Number Function controlled Oxidizer reagent (tert- butyl hydroperoxide (tBMP) delivery valve Detritylation reagent (trichloroacetic acid (TCA) ) delivery valve 3 Adenine (B dA cyanoethyl phosphoramidite) delivery valve 3 Tetrazole delivery valve 4 Cytosine (B z dC cyanoethyl phosphoramidite) delivery valve 4 Tetrazole delivery valve 5 Guanine (iBu dG cyanoethyl phosphoramidite) delivery valve 5 Tetrazole delivery valve 6 Thymine (T cyanoethyl phosphoramidite) delivery valve 6 Tetrazole delivery valve 7 Oxidizer (tBHP) reagent exhaust valve 8 Detritylation (TCP) reagent exhaust valve 9 Adenine exhaust valve 10 Cytosine exhaust valve 11 Guanine exhaust valve 12 Thymine exhaust valve 13 Oxidizer rinse delivery valve 14 Detritylation rinse delivery valve 15 Adenine rinse delivery valve 16 Cytosine rinse delivery valve 17 Guanine rinse delivery valve 18 Thymine rinse delivery valve 9 Solenoid No. 1 (initial activation) , 12 VDC supply 0 Solenoid No. 2 (initial activation) , 12 VDC supply 1 Solenoid No. 3 (initial activation) , 12 VDC supply 2 Solenoid No. 4 (initial activation) , 12 VDC supply 3 Solenoid No. 5 (initial activation) , 12 VDC supply 4 Solenoid No. 6 (initial activation) , 12 VDC supply 5 Stepping motor (motor drive) 5 VDC supply 6 Stepping motor (motor direction) 5 VDC supply 7 Solenoid No. 1 (maintenance) , 5 VDC supply 8 Solenoid No. 2 (maintenance) , 5 VDC supply 9 Solenoid No. 3 (maintenance) , 5 VDC supply 0 Solenoid No. 4 (maintenance) , 5 VDC supply 1 Solenoid No. 5 (maintenance) , 5 VDC supply 2 Solenoid No. 6 (maintenance) , 5 VDC supply (Solenoid No. 1-6 referred to in Table 1 each control the dipping of one of the six reagent tips.) Thus, e.g.: Relay No. 1 opens a valve which allows oxidizer to flow into the appropriate trough (trough No. 12) ; Relay No. 3 opens two valves, one which allows adenine monomer, and one which allows tetrazole to flow into the appropriate trough (trough No. 4) ; Relay No. 7 opens a valve which allows the contents to be removed from the oxidizer trough (trough No. 12) ; Relay No. 13 opens a valve which allows a rinsing solution to flow into the oxidizer trough (trough No. 12) ; Relay No. 19 controls the 12 VDC supply to solenoid No. 1 (12 VDC is required to initially activate the solenoid) ; Relay No. 27 controls the supply of 5VDC to solenoid No. 1 (the voltage required to maintain the solenoid in the activated state) ; and Relay No. 25 and 26 which control respectively, the power to the stepping motor and the direction of the stepping motor, control the positioning of the trough module. The assignment of a single relay to control both monomer and tetrazole valves (relays 3-6) is due to constraints imposed by the number of relays on the 0M- 915. Increasing the number of relays would remove the need to place more than one valve on a relay. More importantly increasing the number of relays would allow an increase in the number of solenoids, and hence in the number of simultaneous syntheses which could be performed. For example, the system could easily be expanded by the addition of six more OM-915 units. In such a configuration one OM-915 unit would be dedicated to valve and motor control and the other six OM-915 units would be dedicated to solenoid control. The use of seven OM-915 units would allow 96 controllable solenoids, and thus allow 96 simultaneous syntheses. FIG. 8 depicts the terminal board 20 of the 0M- 915 interface and associated connectors. Relay terminals 30 are labeled with their relay numbers. Power is supplied to relays 30, in banks of four relays, (e.g., relay No. 1-4 constitute a bank, and relay No. 5-8, constitute a separate bank) , by common contact 40 (labeled c) and ground contact 50 (labeled g) . Relay No. 1-24, which control valves, are supplied with the 12 VDC from 12 DVC source 60. Relay No. 25 and 26, which control the motor, are supplied with 5 VDC from 5 VDC source 70. Relay No. 27-32, which control the activation and maintenance of the energization of the solenoids, are supplied with 12 VDC (for initial activation) from relay No. 19-24, and 5 VDC (for maintenance of activation) from the 5 VDC source 70. A SOLV 30-12 12 VDC 4A power supply (Newark Electronics) , is a suitable 12 VDC source and an Elpac Model WM113+12/-12/+5 VDC power supply is a suitable 5 VDC source. Relays controlling the valves are connected to controller-side valve block connector 80. As described in Table l. Relay No. 3, 4, 5, and 6 each controls two valves. Each of these relays is thus connected to two pins on the controller-side valve block connector 80. The controller side valve block connecter 80 is connected to machine side valve block connector 20 shown in FIG. 9 which depicts the wiring of the valve block. The machine side valve block connector 20 is connected by lines 30 to two-way valve controlling solenoids 40-86 and three-way valve controlling solenoid 90. The valve solenoids are electrically isolated by diodes 50 or light emitting diodes 100. Activation of any of valve controlling solenoids 40, 42, 44, 46, 48, or 50, (which are the valves controlling exhaust of a reagent from a trough) , also activates 3-way valve controlling solenoid 90. For example, activation of valve controlling solenoid 40 by a signal transmitted on line 30A also activates the 3-way valve controlling solenoid 90. Thus, both the exhaust valve and vacuum control valve are opened, allowing vacuum to exhaust the trough. The circled numbers in FIG. 9 indicate the number of the 2-way valve controlled by a solenoid. As shown in FIGS. 8 and 10, Relay No. 25-26, which control the stepping motor, are connected directly to the stepping motor controller by lines 110. 120 VAC source 150 is also connected to the stepping motor controller 140. Lines 160 connect the stepper motor controller, by way of controller-side enclosure connector 90, machine-side enclosure connector 20, and lines 160, to the stepping motor 60. Relay No. 19-24 and 27-32, which control the solenoids, are connected by lines 120 to the controller-side enclosure connector 90. The controller-side enclosure connector 90 connects to the machine side enclosure connector 20 shown in FIG. 10. The machine side enclosure connector 20 is connected to the solenoids 40, which are organized in a 2 x 3 array, by lines 50. With reference to Table 1, and FIGS. 8 and 10, a solenoid is activated as follows. A solenoid is lifted by 12 VDC. For example, a signal from the computer closes relay 19, which supplies 12 VDC by line 130 to relay 27 which supplies 12 VDC by line 120a to controller-side synthesis controller 90 to machine side enclosure 20 to line 50a and to hence to solenoid 1. After being lifted the solenoid is maintained in the activated state by 5 VDC. The computer instructs relay 27 to close, supplying 5 VDC to solenoid 1 and opens relay 19, to remove the 12 VDC potential used to initially activate solenoid 1. At another signal from the computer, relay 27 opens and the 5 VDC potential is cut off. Computer Software The simultaneous synthesis of oligomers of desired sequence is directed by a computer program which controls the occurrence and relative sequence of the positioning of the trough module, the dipping of tips, and the filling and emptying of reagent troughs. A Fortran program suitable for use with the synthesizer is included as Appendix A. The operation of a suitable program is shown in FIG. 11. As shown in FIG. 11A the program first initializes 10 the system. Initialization can include filling the reagent trough, dipping the tips in any trough required for activation, then bringing a designated monomer trough in position under a designated row of solenoids. A monomer is then added 30, the growing molecules, are capped 40, oxidized 50 and deprotected 60. If there are no more additions the program ends 70. If there are more monomers to be added 80 the program returns to the add monomer step 30. The process for the addition of a monomer is described in more detail in FIG. 11B. The process for capping, oxidation, and detritylation is described in more detail in FIG. 11C. In basic versions of the program the decision 20 (FIG. 3B) (which tips are dipped in the addition of monomers) is asked on a row by row basis and the question of which row is dipped (for other reactions) is asked on a reaction by reaction basis. In more sophisticated versions the question is asked for the array as a whole. Thus, at the same time some tips will be dipped into the monomer trough containing A, while others are dipped into the monomer trough containing T while others are being oxidized. The program can also include a subroutine which, e.g., upon entry of the sequences desired, determine the optimum assignment of sequences to tips and rows; determine the optimum order of the placement of reagent troughs; or control post-synthesis modification, e.g. , elution or washing. Chemistry The chemistry of DNA synthesis is known to those skilled in the art, see e.g., Froeler et al. 1988, Nuc. Acid. Res. 14:5399-5407, hereby incorporated by reference. The phosphoramidite method, see Matteucci et al., 1981, J. Am. Chem. Soc. 103.:3185-3191, hereby incorporated by reference and Caruthers et al., 1987, Methods Enzym. 154:287-313, hereby incorporated by reference, is suitable for use with embodiments of the invention and is described briefly below. In the phosphoramidite method, 5' protected monomers are added to the 5 1 OH group on the growing molecule chain. Addition of a monomer subunit to the growing nucleotide chain requires the following steps: (1) removal of the dimethoxytrityl protecting group from the previously added (or starting) monomer with trichloroacetic acid (TCA) to form a reactive 5' hydroxyl group; (2) the addition of a 5* dimethoxytrityl protected monomer by condensation; (3) acetylation or capping of the unreactive deoxynucleoside (Step 3 is optional) ; and (4) oxidation of the phosphite triester to the phosphate triester with tert-butyl hydroperoxide or iodine/water. Synthesis proceeds in stepwise in a 3• to 5* direction by the sequential addition of monomers. Operation Oligomers are synthesized on glass beads adhered to the surfaces of the reagent tips, which can be lowered by solenoids into troughs filled with reagents. The reactions needed to add a monomer to the DNA molecules synthesized on a tip are effected by filling troughs with the appropriate reagents, e.g., a monomer, oxidizer, or rinsing agent, positioning the appropriate troughs beneath the appropriate tips in the appropriate sequence, and when an appropriate trough is positioned beneath the tip, dipping the tip into the trough. For example, addition of a monomer to a growing chain on a tip requires the following steps: (1) activating the previously added monomer by positioning the trough module such that the trough filled with detritylation reagent is below the tip, dipping the tip into the detritylation reagent to remove the dimethoxyltrityl protecting group, removing the detritylation reagent from the trough, filling the trough with a rinsing agent e.g., acetonitrile, to rinse the trough and tip, and lifting the tip; (2) adding a protected monomer by repositioning the trough module such that the trough containing the appropriate monomer is positioned below the tip, dipping the tip into the monomer trough, removing the monomer reagent from the trough, filling the trough with rinsing agent to rinse the trough and tip, and lifting the tip; (3) oxidizing the phosphite triester bond by repositioning the trough module such that the trough containing the oxidizer, e.g., tert-butyl hydroperoxide is located under the tip, dipping the tip into the oxidizer to oxidize the phosphite triester bond to a phosphate triester, removing the oxidizer and filling the trough with rinsing agent to rinse the trough and tip, and lifting the tip from the trough. This sequence of reactions results in the addition of a protected monomer to the molecules being synthesized on the tip. In the embodiment described herein reagents, reaction times, and trough designations are as follows. Adenine monomer reagent consists of one gram of Bz dA cyanoethyl phosphoramidite in 12ml anhydrous acetonitrile and occupies trough No. 4, thymine monomer reagent consists of one gram of T cyanoethyl phosphoramidite in 12ml anhydrous acetonitrile and occupies trough No. l, cytosine monomer reagent consists of oen gram of Bz dC cyanoethyl phosphoramidite in 12 ml anhydrous acetonitrile and occupies trough No. 3, and guanine monomer reagent consists of one gram of iBu dG cyanoethyl phosphoramidite in 12 ml anhydrous acetonitrile and occupies trough No. 2. Tips are exposed to monomer for three minutes then washed in acetonitrile for one minute. Detritylation reagent consists of trichloroacetic acid in dichloromethane and occupies trough No. 8. Tips are held in the detritylation reagent for three minutes. The rinsing agent which follows detritylation consists of acetonitrile. Tips are rinsed for one minute. The oxidizing reagent consists of tert-butyl hydroperoxide 1.1M in an anhydrous dicholoromethane and occupies trough No. 12. Tips are held in the oxidizing reagent for one minute. After oxidation the tips and troughs are washed in acetonitrile for one minute. Rinsing normally occurs in the same trough in which the previous reaction occurred, e.g., the post tritylation rinse occurs in trough No. 8. At the beginning of the run, the enclosure and all lines are purged with argon and all troughs are filled with the appropriate reagents. All tips are lifted and the trough module is moved to the initiation position. The initiation position places trough 8 (TCA) beneath solenoid row 1. The activation and deactivation of the solenoid (which raises and lowers a tip) , the travel of the trough module (which brings a specific trough under a row of tips) , and the activation of the valves which fill and empty the troughs, are all under computer control. Although, for the sake of simplicity, the action of a single tip has been described above, in actual operation, synthesis of multiple oligomers will proceed simultaneously on multiple tips. This is made possible by positioning the solenoids in an array of rows, the positioning and mobility of the troughs, the fact that each solenoid is individually addressable, the fact that multiple solenoids can be activated simultaneously, and computer control of the entire process. As shown in FIG. 12, the solenoids in a given row 20a 20b 20c are aligned such that the tips can all be dipped into the trough 30 that is positioned under that row of solenoids. When a trough is positioned under a row all of the tips in that row which require contact with the reagent in the trough positioned below that row are dipped. Tips which do not require contact with the reagent are not dipped. While tips in a row above a given trough are being dipped, the solenoids in the adjacent rows in either direction can be dipped in the corresponding adjacent troughs. Thus, synthesis of the oligomers on all tips is truly simultaneous. (To illustrate the placement of the solenoids most clearly FIG. 12 shows an embodiment with twelve solenoids and twelve reagent tips.) The reactions can take place while a tip is actually in the reagent chamber or trough (i.e., in the reagent contact mode) , or after the tip has been lifted out of the trough (i.e., in the reagent-non-contact mode) , or both. For example, it may be desirable to dip tips from a plurality of rows into a trough, then to allow the reaction to proceed while some or all of the tips are out of the trough (i.e., raised). Tips treated in this way can be redipped to allow further reaction or to prevent evaporation. Other Embodiments Other embodiments are within the claims, e.g., the synthesizer can include an array of wells or compartments in which the completed products can be recovered or subjected to further manipulation. For example, an array of compartments, spaced such that each tip can be lowered into a single compartment, can be positioned adjacent the trough module and moved into position under the solenoid array at the completion of modification, e.g., at the completion of the synthesis of a set of DNA oligomers. The oligomers on each tip could be eluted simultaneously into the compartments. The compartments could be configured to include a filtered outlet such that the DNA eluted into each compartment could be washed and purified without transfer from the compartment. Other post synthesis manipulations could follow. Such manipulations could be performed in the same compartment or in yet another array of compartments. The standard 96 well filter plate format is particularly suitable for these embodiments in that 96 channel automatic pipette devices can be integrated into the synthesizer to serve to transfer products from one array of containers to another. Other capacities, such as the ability to add desired reagents (e.g., cloning vectors or DNA modifying enzymes, or cells to be transformed) directly to the compartments containing the oligomers, e.g., the compartments into which the oligomers are eluted, can be added. Embodiments of the invention allow single, or multiple reactions to take place in a single reagent trough. For example, in the synthesis of DNA oligomers, a trough used to add a monomer could contain only one monomeric species, or it could contain more than one, to allow rapid and easy synthesis of a set of probes with degeneracy at one or more positions. Labels, e.g., chemical or radioactive labels, can be incorporated into the molecules modified. This could be achieved, e.g., by including a labeled monomer in a synthetic step or by eluting the finished products into separate containers for labeling. Although the reagents are held statically in the reagent troughs, in some embodiments it is also possible to maintain a continuous flow of reagents in a trough. -************»****#»********************«*******»*** Program SOLλRSYMTB APP TDIX A Solenoid Array Synthesiser. Print*,' Copyright (C) 1990' Print*,' President and rellovβ of Harvard College' Print*,' Steve Kieffβr-Higginβ and George M. Church' Print*,' All rights reserved' Currently set up for standard CE-phoβphora idite DNA synthesis and for Onega 992/915 RS232 interface fro* Omega Engineering. To set up vax: set term/perm/eight/βpeed-9600 txa4 To set up Omega: connect 50-wire cable from multiplexer to relay block. Connect 5 VDC and 12 VDC supplies to relay block. Connect the 25-pin control cables to the appropriate solenoid and valve arr Test with TRS-IOO TELCOM βtat-87llE : 9600 baud, 7 bits, ignore parity, 1 stop bit, line enable Modification History: Adapted from Valve.for 2-mar-87 to SO 4S on 9-Sep-89 by George Church to S1AS_CPH0S 1 and OMEGA_CPHOS_l on 25-jun-90 by Steve KiefFer-Higginβ " ~ to SOLARSYKTH on 28-Jan-91 by Steve Kiβffβr-Higgins Current setup piston-coltl on far right Plate-col . . . 12 11 10 9 8 7 6 5 4 3 2 1 Plate-col . . . Ox - Cp - T A G C T Piston row solenoid control numbers Lower solenoid tier: 1,3,5,7,10,12,14,16 Upper solenoid tier: 2,4,6,8,9,11,13,15 For this test program only the lower tier is in U8e:l,3,5,10,12,14 Valve block: Upper row, with switches to the left, are t's 1-12, and the lower row is numbered 13-24. In this run valves 7 & 8 are not used. The monomer and tetrazole valves are currently sharing relays. Omega relay: This run uses only one relay block consisting of 32 switches, which is currently the limiting factor for capping as well as the total possible oligos which can be made in a single run. These are the current requirements for relays assuming a two-part capping reaction: , monomer and tetrasole. t«ch also requires a dedicated rinse and vacuum valves. Thus, ea monomer requires 4 valve sontrolled by 3 relays for a total of 16 valves and 12 relays. OXIDATION: 3 RELAYS and 3 VALVES The oxidizer is a one part reagent which requires dedicated rinse and vacuum valves. CAPPING: 3 RELAYS and 4 VALVES The capping reagent is a two-part mixture which requires dedicated rinse and vacuum valves. TCA: 3 RELAYS and 3 VALVES TCA is a one part reagent which requires dedicated rinse and vacuum valves. MOTOR: 4 RELAYS The motor requires 2 relays at 5VDC. Since the relay blocks can switch different voltages in groups of 4 and the valves all require 12VDC, the motor effectively takes 4 relays out of the pool. TOTAL: 29 RELAYS and 26 VALVES for reagent delivery and trough movem SOLENOIDS: 2 RELAYS EACH The solenoids require 12VDC to pull up a tip and switching to 5VDC to maintain a hold on the tip. The solenoids reach a temperature Ϊreater than 100C when in an array with continuous application of 2VDC, but reach about 35C at 5VDC. Thus each Omega OM915 relay module can control 16 individual solenoids, or a total of 6 OM915 units for 96 solenoids. The present set up with a single OM915 allows the control of 6 solenoids if we work without a capping reaction. Not capping saves 3 relays and 4 valves. Based on the architecture of the relay blocks, which allows voltages in groups of 4 to be switched, we would be reduced to only 3 different oligos per run were we to incorporate a capping reaction. RELAY/VALVE ASSIGNMENTS : lenmax I «xinu_ length of ollgo. to be mad. integer*4 integer*4 col«x < -«i»« ■ »" ■ »" θt COlUmn, " h " dWa " dβpβmlan integer*4 rovmax I ««i»»- • »"*« o£ "" - haCdWβ " dβpβndant .t.pmax • number of ..nth.tic .t.p. . 1 (Initiation. integer*4 integer*4 tt oug _»nlt I th. number of motor .t.p. to .ov. to. integer*4 integer*4 tϊough, and adding rinse. integer*4 rø vacuumϊ a sndw rirnsei. . ϊiarR- -iS&s' A S ' to logical yescheck 1 required by GITSTI integer* ldrvcm -.d, lcmmnd, lreset, lcpur β e ^ c t Length of command strings sent to WRXBOT integer* step I Control variable which keeps track of where in the synthesis cycle the program is. integer* loopbeg, loopend 1 the bounds in which STEP operate integer* mono I the number of monomers, currently 4 integer* NC, NR t the actual number of columns and rows of oligos to be made which will vary with each run integer* len i the length of the longest oligo to be made per run integer* eye ! control variable which operates within the bounds of LEN, above integer* ld(colmax,rowmax), lu(colmax,rowmax) 1 length of commands that raise (lu) and lower (Id) the solenoids, required by WRIBOT integer** seqm(colmax,rowmax,lenmax) 1integer representation of the oligos to be made, where A-l, C-2 etc character*! mlis(20) I reference against which an element of SEQM above is compared when the program is testing to see if a solenoid is to drop its tip. When the number in the SEQM array matches the subscript of MLIS, the tip is dropped. character*30 Chem(stepmax), chem2(stepmax) IDescription of each step: Chem-rxn, chem2-rinse character*38 seq(colmax,rowmax) character*60 drive(3) 1Holds the commands that drive the motor: 1- pulse, 2-CW, 3-CCW character*60 check Idummy var required for GETSTR character*60 rxnvlv(troughmax, vlvmax) 1holds the open and close commands for the valves' character*60 cpurβset,reset IReset commands for Omega CPU and OM915 character*60 down(colmax, owmax), up(colmax, owmax)I Lift and drop commands for the solenoids ***************************************************************** MAINLINE call INITIALIZE, chem, chem2, colmax, 2 cpureset, down, drive, lepureset. Id, ldrvcmmnd, 3 len, lenmax, long, loopbeg, loopend, lreset, lcmmnd, 4 lυ, mlis, mono, pumptm, rxnstep, 5 NC, NR, pos, reset, rowmax, rxnvlv, seq, seqm, 6 stepmax, trough unit, troughmax, up, vlvmax, wait, wait2) call getstr(check,'Hit RETURN to begin synthesis. ','<CR> » ,yescheck) Do cyc-2,Len Do step • loopbeg, loopend if (steρ.eq.2) then call ADD MONOMER (chem, chem2, 2 colmax,eye,down,drive,Id,lenmax,ldrvcmmnd, lcmmnd, 3 lu, mlis, mono, NC, NR, pos, pumptm, rxnstep, 4 rowmax, rxnvlv, seq , step, stepmax, 5 trough_unit, troughmax, up, vlvmax, wait, wait2) else call NON ADDITIVE_CHEKISTRY(che__, chem2, 2 colmax, 3own, drive, long. Id, 3 ldrvcmmnd, lcmmnd, lu, rxnstep, 4 NC, pos, pumptm, rowmax, rxnvlv, step, 5 stepmax,troughmax,trough_unit, up,vlvmax, wait, wait2) end if End do I step End do 1 eye call wribot. reset(l:lreset) ) END Isolarsynth I************************************************************************ subroutine NON ADDITIVE_CHEMISTRY(chem, chem2, 2 colmaxT down, dϊivβ, long. Id, 3 ldrvcmmnd, lcmmnd, lu, rxnstep, 4 NC, pos, pumptm, rowmax, rxnvlv, step, 5 stepmax, troughmax, trough init, up, vlvmax, wait, wait2) coordinates TCA, oxidation and capping steps integer*4 colaax,rowmax,stepmax, roughmax,rxnstep,vlvmax real time, delta, oldpos real*4 poβ(stepmax), pumptm(stepmax, rxnstep) real*4 wait(stepmax), wait2(stepmax) logical • long" integer*4 NC, vlv, i, step, trough unit integer*4 ldrvcmmnd, lcmmnd "" integer*4 ld(colmax,rowmax), lu(colmax,rowmax) character*30 Chem(stepmax), chem2(stepmax) character*60 drive(3) character*60 down(colmax,rowmax), up(colmax,rowmax) character*60 rxnvlv(troughmax, vlvmax) if (step.eq.3) return leap if (step.eq.4) then vlv-1 loxidize oldpos«5 end if if (step.eq.5) then vlv-2 ITCA oldρoε-12 end if call MOVEx ( oldpos , pos( βtep) , drive, ldrvcmmnd, 2 lcmmnd, trough__unit ) call pump(rxnvlv(vlv,l). rxnvlv(vlv,2),lcm__nd,pumptm(βtep,l)) react tips: print*,che (step) write(66, ' (a)' )chem(βtep) dβlta-0 time-secnds(O.O) print*, 'REACTION TIME-',(wait(βtβp)/60), 'minutes' write(66,' (a,f,a)') 'REACTION TIME-' , (wait(βtβp)/60) , 'minutes' do while(delta.lt.wait(step)) delta-εecnds(timβ) call dip all cols(colmax, down, drive, Id, ldrvcmmnd,lcmmnd, 2 lu,~NC,pos, rowmax, step, stepmax, trough_unit, up) end dol while ~ rinse trough print*,chem2(step) write(66, '(a) ' )chem2(step) delta-0 time-secnds(O.O) print*, 'RINSE TIME-' , (wait2(step)/60) , 'minutes' write(66,'(a,f,a)') 'RINSE TIME-' , (wait2(step)/60), 'minutes' call pump(rxnvlv(vlv,3), rxnvlv(vlv,4) , lcmmnd, pumptm(step,3) ) do while (delta.It.wait2(βtep)) remove reagent: rinse: print*,chem2(step) write(66, '(a)' )chem2(step) call pump(rxnvlv(vlv,5), rxnvlv(vlv,6), lcmmnd, pumptm(step,2)) do i - 1, 5 call dip all cols(colmax, down, drive. d, ldrvcmmnd,lcmmnd, 2 lu, NCTp sT rowmax, step, stepmax, trough_unit, up) end do Idip call pump(rxnvlv(vlv,3), rxnvlv(vlv,4), lcmmnd, pumptm(βtep,3)) delta-secnds(time) end do 1while return end l non_additivβ _chemiβtry ************************************************************************ subroutine INITIALIZE( chem, chem2 , colmax, 2 cpureset, down, drive , lcpureset, Id, ldrvcmmnd, 3 len, len ax, long, loopbeg, loopend, lreset, lcmmnd, 4 lu, ml is , mono, pumptm, rxnstep, 5 NC, NR, pos , reset, rowmax, rxnvlv, seq, seqm, 6 stepmax, trough unit, troughmax, up, vlvmax, wait, wait2 ) i n tege r * 4 col , row , colmax , rowmax , stepmax , rxns tep , vlvmax real*4 ρos( stepmax) , pumρtm( stepmax, rxnstep) real*4 wait( stepmax) , wait2( stepmax) long, yβschβck troughmax, loopbeg, loopend, stepnum i , b, bb, q, p, m, mono, trough unit has a CH3CN rinse at the end. • _ i Qt *r t with p reloaded detritylated solid phase ϊltf : I 1 fϊctuϊi'ϊyStnisis steps, if we use capping ≤ΛSSΪΪ , ' rapid' , long ) long-. not. ong mlis ( l)«'A' C phoesm ( ( 11 ) -)- 8 'M 1 S ttraourtgh' is moved to monomer pos from T C A pos e following routines establish the timing parameters for each step, e user may input any timing parameter as minutes in real mbers, ie 3.5 instead of 3 : 30. Input file follows this format: filename : SOLARSYNTH.TMR l 1i.ne! M coINnUteTnEtS[TAB]TROUGH POS[TAB]TROUGH FILLING TIME 2. MONOMER COUPLING 3. rxn time [spaces] trough pos [spaces] time to fill trough 4. MONOMER RINSE 5. rinse time [spaces] time to fill trough 6. MONOMER TROUGH VACUUM 7. time to,empty trough, 8. CAPPING REACTION 9. rxn time [spaces] trough pos (spaces] time to fill trough 10. CAPPING RINSE 11. rinse time [spaces] time to fill trough 12. CAPPING TROUGH VACUUM 13. time to empty trough 15. ._ « t.p.c..l troug po. .p. 16. OXIDATION RINSf . .... ♦ . rΛUβ κ 17. rinse time I» a.-*1 ti»* to fill trough 18. OXIDATION TROUGH VACUUM 19. time to empty trough I?! .__ ϊ_i∑ Y ..p«.ϊ. 'uou h po. ..p.c.1 tim. to fill trough .I! r"."?!-. [•p.e.U time to fill trough 24. TCA T OUOB VACUUM 25. time to empty trough ..P.P..i.ι. , End If End do I End do t b I f( Len.lt.bb) Len-bb End do I row End do I col . . t . .. . col-colmax I on leave fortran loop index goes +1 beyond limitl continue interface resets: write ( cpures β t, ' ( a ) ' ) ' fRESET'//char ( 13 ) //char ( 10 ) write ( reset, ' ( a ) ' ) ' #1 RESET'//char ( 13 ) //char ( 10 ) lcpureset-8 lreset-10 Hvaelvaereacsusirgrnemnetnlytss:et up for 6 reagent troughs, each with dedicated reagent, vacuum < _. rinse valves. Capping is not used. If we add capping later the omega relay block will have to be rewired to reflect this and the control var TROUGHMAX should be increased to 7, The variable q reflects the actual Omega relay number. Once capping has been integrated into the program the wiring harness must be rewired so that relay 1-tBHP, 2-CAP, 3-TCA, 4- A monomer, etc. #l,SW',q,'-l' )'tl,SW',q,'-0' relays 19 - 24 - solenoid 12V MwOrTiOtRe ( -drdivreiv ( el ) r,e'q ( a5 ) V')'#l,SW25-l;SW25-0'//char ( 13 ) //char ( 10 ) MOTOR ( —-dCCrWWi//vCC write β CC ( WM2 ) ,' ( a)')'tl,SW26-l'//char ( 13 ) //char ( 10 ) write ( drive ( 3 ) ,' ( a ) ')'#l,SW26-0'//char ( 13 ) //char ( 10 ) ldrvcmmnd - 19 lcmmnd - 11 relays 27-32 - solenoid 5V lift * drop commands for the solenoids: print*, 'CPU RESET' writβ(66,'(a)')'CPU RES-f' call wribot purβββt (l:lcpure β et ) ) print*, 'MULTIPLEXER RESET' writβ(66, ' (a)' ) 'MULTIPLEXER RESET' call wriboUreββt (l:lr βββ t )) NC-col-1 NR-row-1 if(NR.le.O) then NR-rowmax NC-NC-1 End If Initialise all relays to the no power state, then set to "UP". Do col - 1,NC Do row - 1,rowmax If ( col.eq.NC.and.row.gt.NR) goto 2 call wribott up(col,row) (l:lu(col,row ) ) ) End do ! row End do I col to desired operation:' if (prm.eq.l ) call poβition_trough(drive,lcmmnd,ldrvcmmnd, 2 trough_unit) if (prm.eq.2 ) call prime_reagents(cρureset,lcmmnd,lcpureset, 2 lreset,reset) if (prm.eq.3) call solenoids(colmax,down,Id,lu,NC,rowmax,up) if (prm.eq.4) goto 3 goto 2 continue return end Unitialize *.*e************e***********************"^ subroutine D IP A L L_COLS (colmax, down, drive. Id, Id rvcπunnd, lcmmnd, 2 lu, NCT pos, rowmax, step, . stepmax, trough_υnit, up ) Dips all tips one column at a time into a given trough integer*4 col, row, rowmax, stepmax, colmax real*4 poβ( stepmax), newpo β inte g er*4 NC, NR, step, trough_unit, ldrvcmmnd, lcmmnd integer*4 ld( colmax, rowmax ) , lu( colmax, rowmax ) , i,q »et&«0 SS-_ ( o .«.rowm.x). up<eol..x.rovm.x>. drlv. ( 3 ) waitasec-'0:00.50' Do col - 1,NC end do 1 row call waiter(waitasec) V&J.1 «™» up(col , tow) α , lu( col,row)) ) continue return en d I dip_all_cols Coordinates monomer addition d ° _.__"u_p.._ni"<ϊ U. rxnvlv(i,2),lc_mnd,pu.pt. ( .t.p,l )) end do ime: wait print*,chem(step) write(66,*)chem(step) delta-0 time-secnds(O.O) do while (delta.lβ.wait(βtβp)) call addition (eye, colmax, down, drive, Id,ldrvcmmnd,lcmmnd, 2 lenmax f lu,mils,mono, NC, NR, pos, rowmax, βeqm, step, 3 stepmax, troughmax, trough_unit, up) delta-secnds(time) end dot addititon while there is time : wait2 print*,chem2(step) write(66,*)chem2(step) delta-0 time-secnds(O.O) remove reagent: do i- firstβono, lastmono call pump(rxnvlv(i,3), rxnvlv(i,4), lcmmnd, pumρtm(steρ,3)) end do do while (delta.Ie.wait2(step) ) pump rinse: do i- firstmono, lastmono call pump(rxnvlv(i,5), rxnvlv.i,6), lcmmnd, pumptm(step,2)) end do do q-1, 5 call addition (eye,colmax,down,drive,Id,ldrvcmmnd,lcmmnd, 2 lenmax,lu,mlis,mono, NC, NR, pos, rowmax, seqm, step, 3 stepmax, troughmax, trough_unit, up) end do I q " ~ delta-secnds(time) do i- firstmono, lastmono call pump(rxnvlv(i,3), rxnvlv(i,4), lcmmnd, pumptm(step,3) ) end do end dol rinse return end 1 add monomer ******************************************************************* subroutine ADDITION (eye,colmax,down, drive,Id,ldrvcmmnd,lcmmnd, 2 lenmax,lu,mlis,mono,NC, NR, pos, rowmax,seqm,step,stepmax, 3 troughmax, trough_unit, up) decides which tips drop into which monomer trough integer*4 col, row, colmax, rowmax, stepmax, lenmax real*4 pos(stepmax), lastep, firstep . logical long, drop integer*4 b, bb, eye, dip, loopbeg, loopend, m,mono,step integer*4 NC, NR, co, i, " c, r ' , trough_unit, troughmax,q integer*4 Id(colmax,rowmax) , lu(colmax,rowmax), lcmmnd integer*4 seqm(colmax,rowmax,lenmax) ,ldrvcmmnd character*l mlis(20) character*8 waitaøec character*60 down(colmax,rowmax), up(colmax,rowmax), drive(3) waitasec-'00:01.00' firstep - pos(step) lastep - poβ( step) drop- , false . I conditional for monomer dip NC holds same value COLMAX: Do col - 1 , NC+3 call M0VEx( lastep, fi rstep-col- l, drive, ldrvcmmnd, 2 lcmmnd, trough_unit) pos( step) for monomers- -3, such that the fi rst column of tips stands di rectly above the 'A' trough. When col-2, move is to position -2, etc. Do row - 1,rowmax bailout conditional: If(col.eq.NC-3.and.row.gt.NR) goto 7 then the last column/row is past the end min(mono,col) returns the smallest t, mono, which - 4, or col, which increments by 1 from 1 to NC+3 first pass: m-1; loop is used once:only one column could be over the first monomer trough. Second pass, m-2; loop used twice, 2 columns are over monomer troughs: Do m-min(mono,col),1,-1 co-col-m-.1 ! first pass: co«l-l+l « 1 if(co.gt.NC) goto 11 if(co.eq.NC.and.row.gt.NR) goto 11 tbailout conditio test to see if the integer held in seqm(co,row,cyc), which corresponds to a monomer, is the same as m First pass: m-1 If(seqm(co,row,cyc) .eq.m) then if it does write to output file & drop that tip: write(66,'(a,4i3,x,a)')' Cyc,col,row,co, base', 2 eye,col,row,co, mlis( ) call wribot( down(co,row)(l:ld(co,row)) ) end if t end do 1m continue end do 1 row call waiter(waitasec) end do 1 col continue laεtep»f i r step-cόl+1 drop-. false. End do 1 col Continue call MOVEx(lastep-1,firstep, rive,ldrvcmmnd,lcmmnd,trough_unit) return End l addition subroutine wribot(data) To output βferinαβ of unknown length to serial RS23- port without terminal <CR> or other characters. Version 1.0 Apr 2 1987 GHC integer*2 ttchan,ttinit,ioβb( ) integer*4 i,SYS$QI0W,icode,funcw,βfn integer*4 LIB$GET_EF,LIB$FREE_EF character*(*) data ~ ~ " include '($iodef)' external IO$ rRITEVBLK,ΣO$M_NOFORMAT ttchan-ttinitO funcw-ior(%loc(IO$ WRITEVBLK) ,%loc(IO$M NOFORMAT)) icode-LlB$GET EF(βTn) if (.not.icode) call LIB$SIGNAL( %VAL( icodβ) ) icode - SYS$QI0W ( %val(βfn) ,%val( ttchan) ,%val( 2 funcw),ioeb,,,%ref(data),%val(len(data)),,%val(0),, ) if (.not.icode) call LIB$SIGNAL(%VAL( icode)) icode-LlB$FREE EF(efn) if (.not.icodeT call LIB$SIGNAL( %VAL( icode) ) return end *********************************************************** integer*2 function TTINIT() returns communication channel number for terminal-like I/O for example through RS232C ports to the arm and stage. logical init,yestemp integer*2 ttchan integer*4 i,SYS$ASSIGN,icode character*60 port data init .true./ This will keep these and only these values save init,ttchan around for use each time this routine is called if(init) then port-'txa4:' call getstr(port,' RS232 port 0-3 ',port,yestemp) icode - SYS$ASSIGN(ρort(:5), ttchan,, ) If (.not.icode) call LIB$SIGNAL(%VAL(icode) ) init-.false, end If TTINIT - ttchan return end *********************************************************** subroutine timer sub() include ' ($syssrvnam)' integer*4 status status-sys$wake(, ) return end A************************************************ * ******* subroutine waiter(waist) character*5 waist include '($syssrvnam)' integer*4 interval(2),status external timer sub print*,' ~ ...waiting ',waist status-sys$bintim('0 :'//waist, interval) Ϊrint*, 'status-',status f(.NOT. status) call lib$signal(tval(status)) βtatus-syβ$ setimr( , interval ,timer sub,) if(.NOT. status) call lib$βignal(%val(βtaΕuβ)) status-sys$hiber() if(.NOT. status) call lib$signal(%val(βtatus)) return end ******************************************************** Subroutine MOVEx(oldpos,newpoβ,drive,ldrvcmmnd, 2 lcmmnd,trougn_unit) Sends a series of pulses to the OM915 to increment stepper motor. It decides which direction to turn the motor by comparing the old position to new position. real oldpos, newpos real pos, time logical yes,long integer*4 lcmmnd, trough__unit, q, i,ldrvcmmnd, delta character*8 waltasec character*60 str character*60 drive(3) drive: 1-pulsβ on/off, 2-CW, 3-CCW delta - int(oldpos-newpos) if delta is positive then rotate CCW, if negative then rotate CH if (delta.ge.O) call wribot(drive(3) (1: lcmmnd)) if (delta.It.0) then call wribot(drive(2) (1: lcmmnd)) delta-delta*(-1) end ifldelta.lt.0 if (delta.eq.O) delta-1 waitasec-'0:00.01' do i - delta, 1, -1 do q-1, trough unit call wriEot(drived) (l:ldrvcmmnd)) call waiter(waitasec) end do Iq end do li return End IMOVEx ******************************************************* Subroutine Pump(vlvopn, vlvclβ, lcmmnd, pumptm) opens and closes a given valve for time value in PUMPTM real delta, time, pumptm integer*4 lcmmnd character*60 vlvopn, vlvclβ print*, 'pumptm-',pumptm ~ 9 ~ open valves call wribot(vlvopn(l:lc*utnd)) wait for pumptm: delta-0 time-secnds(O.O) do while(delta.It.pumptm) delta-secndβ(time) end dot while close valves call wribot(vlvcls (1:lcmmnd) ) Return End !pump ************************************************************************ subroutine POSITION TROUGH(drive, lcmmnd, ldrvcmmnd, 2 troϋgh_unit) initializes trough to TCA position and allows user to move trough to any of the active trough positions real*4 oldpos, newpos logical long, check, yescheck integer*4 lcmmnd, ldrvcmmnd, troυgh_unit, i character*8 waitasec character*60 drive(3), resp position troughs call getstr(resp,'Initialise the trough? (Y/N)','Y' ,long) if ( (resp.eq.'N').or.(resp.eq.'n' )) goto 97 if ((resp.βq.'Y').or.(resp.eq. 'y' )) goto 95 goto 96 print*,'Position troughs so that column 1 is over the TCA trough:' print*,' ' print*, '1. Turn off power to the stepper motor.' print*,'2. Push trough unit ALL THE HAY to the left (motor end).' print*, '3. Turn on power to the stepper motor.' print*,' ' print* , 'NEVER MANUALLY MOVE TBE MOTOR HITH POWER ONI ' print*,' ' print*, 'Make sure that your fingers are out of the wayI' call getstr(check,'Press RETURN when done:',yescheck,long) call wribot(drive(2) (l:lcmmnd)) waitaεec-'0:00.01' do i-1,365 Ithis puts trough 8 (TCA) under col 1 call wribot(drived) (1:ldrvcmmnd)) call waiter(waitasec) end do li oldpos- 8 print* , ' ' print* , ' Enter the numbe r which cor responds " to positioning ' print* , ' column 1 over the indicated trough : ' print* , ' ' print* , ' pos col 2 col 1 ' print* , ' 0. T -' print* , ' 1. G T' trough ' the trough will automatically' when you exit this routine.' call getlreal(newpos, 'Your choice? Current position: ',oldpos) nd,trough_un t) continue if ( oldpos . ne .8) then newpos-8 call movex(oldpos,newpos,drive,ldrvcmmnd,lcmmnd, 2 trough unit) end if return end Iposition_trough ************************************************************************ subroutine PRlME_REAGENTS(cρureεet,lcmmnd,Icpureset,lreset,reset) gives user control over reagent valves integer*4 prm, lcmmnd, lreset, Icpureset. i logical yescheck character*8 waitasec character*60 vacprm, prmvlv, cpureset, reset, check print*, print*, Vacuum valve will be open with all reagent selections' print*, print*, Enter the number corresponding to the valve:' print*, 1 tBHP 7. tBHP-vacuum 13; tBHP rinse' print*, 2 TCA 8. TCA vacuum 14. TCA rinse' print*, 3 A monomer 9. A vacuum 15. A rinse' print*, 4 C monomer 10.C vacuum 16. C rinse' print*, 5 G monomer 11.G vacuum 17. G rinse' print*, 6. T monomer 12.T vacuum 18. T rinse' print*, call getlint(prm,'Your choice? 999 to quit',999) if (prm.eq.999) goto 88 Iquit if ((prm.gt.18).or.(prm.It.1)) goto 89 (input out of range writβ(vacprm,'(a,i2,a)')'| ,SW',prm-r ,'-i' 2 //char(10)//che 13) call wribot(vac*.m(l:lcmmnd)) writβ(vacprm,'(a,i2,a)')'tl,SW',prmr6,'-0' 2 //char(10)//char(13) end if if (prm.gt.12) then Irinsβ valve write(vacprm,'(a,i2,a)')'#l,SW',prm-6,'-l' 2 //char(10)//char(13) call wribot(vacρrm(l:lcmmnd)) write(vacprm, » (a,i2,a)')'#l,SW',prm-6,'-0' 2 //char(10)//char(13) end if if its anything else: write(prmvlv,'(a,i2,a)')'|l,SW',prm,'-l'//char(10)//char(13) call wribot(prmvlv(1:lcmmnd) ) write(prmvlv,'(a,i2,a)')'#l,SW',prm,'-0'//char(10)//char(13) waitasec—'0*01 00' call getstr(check,'Hit RETURN to close valve', '<CR>',yescheck) call wribot(prmvlv(l:lcmmnd) ) call waiter(waitasec) call wribot(vacprm(1:lcmmnd) ) goto 89 continue return end lprime_reagentβ βubroutine SOLENOIDS(colmax,down,Id,lu,NC,rowmax,up) gives user direct control over individual solenoids integer*4 colmax,rowmax,c,r,NC logical yescheck integer*4 lu(colmax,rowmax), Id(colmax,rowmax) character*60 up(colmax,rowmax), down(colmax,rowmax) character*60 cmmnd print* , ' ' print* , ' This routine allows you to control individual solenoids. ' print* , 'All tips will automatically lift when you exit the routine. ' print* , ' ' l end if ' call getstr ( cmmnd, 'U or D: ' , 'U' , yescheck ) if (cmmnd.eq. '999')goto 885 if ((cmmnd.eq.'U').or.(cmmnd.eq.'u')) then call wribot(up ' r)(l:lu(c,r) ) ) αgoottoo 888888 eenndd iiff iiuupp if ((emmnd.eq.'D' ).or.(cmmnd.eq.'d' )) then call wribot(down(c,r)(l:ld(c,r))) goto 888 end if Idown print*,'Input out of range.' goto 886 > do C-1,NC do r-1,rowmax call wribot(up(c,r)(l:lu(c,r))) end do ir end do Ic I Continue return end Isolenoids

Claims: Claims 1. A reactor for sequentially modifying a molecule attached to a solid phase support, comprising a plurality of substrate carriers, each substrate chamber capable of carrying a solid phase support to which a molecule to be modified can be attached, a plurality of reagent chambers, each capable of comprising a reagent for effecting a modification of said molecule, and means for individually bringing each of a plurality of chosen substrate carriers into a reagent- contact mode and a reagent-non-contact mode with each of a plurality of reagent chambers, each of a plurality of said substrate carriers being capable of sequential contact with the contents of a plurality of said reagent chambers said sequential contact being capable of resulting in the sequential modification of molecules attached to said solid phase supports on said plurality of substrate carriers. 2. The reactor of claim 1, further comprising means for controlling the sequence in which said reagent chambers and said substrate carriers are brought into the reagent-contact mode. 3. The reactor of claim 1, wherein, said means for individually bringing each of a plurality of chosen substrate carriers into a reagent-contact mode and a reagent-non-contact mode with each of a plurality of reagent chambers further comprises means for individually positioning each of a plurality of chosen substrate carriers in a reagent-contact mode and in a reagent-non-contact mode, and means for positioning each of a plurality of chosen reagent chambers relative to a chosen substrate carrier such that when said chosen substrate carrier is in said reagent-contact mode said chosen substrate carrier is in contact with the contents of a chosen reagent chamber and when said chosen substrate carrier is in said reagent-non-contact mode said chosen substrate carrier is not in contact with said contents of said chosen reagent chamber. 4. The reactor of claim 1, wherein said reactor can simultaneously modify a first molecule on a first substrate carrier and a second molecule on a second substrate carrier. 5. The reactor of claim 4, wherein said reactor can perform said simultaneous modifications in different reagent chambers. 6. The reactor of claim 1, further characterized in said modification comprises the addition of a monomeric subunit to a nucleic acid molecule, said substrate carriers are capable of carrying a solid phase support suitable to support the synthesis of said nucleic acid molecule, and said reactor comprises sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a nucleic acid molecule on one of said substrate carriers. 7. The reactor of claim 6, wherein said reactor can simultaneously synthesize a first oligomer in a first substrate carrier and a second oligomer in a second substrate carrier, said first and second oligomers differing in subunit sequence. 8. The reactor of claim 7, wherein said reactor can simultaneously perform a reaction in the synthesis of said first oligomer and a reaction in the synthesis of said second oligomer in different reagent chambers. 9. The reactor of claim 1, further characterized in that said substrate carriers are capable of carrying a solid phase support suitable to support the synthesis of a protein molecule, said modification comprises the addition of a monomeric subunit to said protein molecule, said reactor comprises sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a protein molecule on one of said substrate carriers. 10. The reactor of claim 9, wherein said reactor can simultaneously synthesize a first protein on a first substrate carrier and a second peptide on a second substrate carrier, said first and second oligomers differing in subunit sequence. 11. The reactor of claim 10, wherein said reactor can simultaneously perform a reaction in the synthesis of said first protein and a reaction in the synthesis of said second protein in different reagent chambers. 12. The reactor of claim 1, further comprising means for supplying reagent to and removing reagent from a reagent chamber. 13. The reactor of claim 3, further comprising, a computer to control the positioning of a plurality of said substrate carriers and the positioning of a plurality of said reagent chambers. 14. The reactor of claim 13, wherein said computer is programmed to effect a sequence of positionings of a first substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired sequence of modifications of a polymeric molecule on a first substrate carrier. 15. The reactor of claim 14, wherein said computer is programmed to effect a sequence of positionings of a second substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired sequence of modifications of a second polymeric molecule in a second substrate carrier. 16. The reactor of claim 15, wherein said computer is programmed such that said first polymeric molecule comprises a different sequence of monomeric subunits than does said second polymeric molecule. 17. The reactor of claim 16, wherein said computer is programmed such that at least one reaction in the modification of said first polymeric molecule and one reaction in the modification of said second molecule are performed simultaneousl . 18. The reactor of claim 17, wherein said computer is programmed such that said simultaneous reactions are performed in different reagent chambers. 19. The reactor of claim 16, wherein said computer is programmed such that said simultaneous reaction are performed in the same reagent chamber. 20. The reactor of claim 3, wherein said means for positioning each of a plurality of reagent chambers comprises a moveable carrier which carries a plurality of reagent chambers, said individual positioning means are positioned relative to said moveable carrier such that the action of an individual positioning means causes the transition from the reagent-non-contacting mode to the reagent-contacting mode of a chosen substrate carrier with respect to a chosen reagent chamber and movement of said moveable carrier establishes which of a plurality of reagent chambers is the chosen reagent chamber with respect to a chosen substrate carrier. 21. The reactor of claim 20, wherein said reactor can simultaneously modify a first molecule on a first substrate carrier and a second molecule on a second substrate carrier. 22. The reactor of claim 20, wherein said individual positioning means are positioned such that a first substrate carrier and a second substrate carrier can be simultaneously placed in the reagent-contact mode with respect to a first chosen reagent chamber. 23. The reactor of claim 20, wherein a third substrate carrier can simultaneously be placed in the reagent-contact mode with respect to a second chosen reagent chamber. 24. The reactor of claim 20, further characterized in that said modification comprises the addition of a monomeric subunit to a nucleic acid molecule, said substrate carriers are capable of carrying a solid phase support suitable to support the synthesis of said nucleic acid molecule, and said reactor comprises sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a nucleic acid molecule at one of said substrate carriers. 25. The reactor of claim 24, wherein said reactor can simultaneously synthesize a first oligomer in a first substrate carrier and a second oligomer in a second substrate carrier, said first and second oligomers differing in subunit sequence. 26. The reactor of claim 25, wherein said reactor can simultaneously perform a reaction in the synthesis of said first oligomer and a reaction in the synthesis of said second oligomer in different reagent chambers. 27. The reactor of claim 20, further characterized in that said substrate carriers are capable of carrying a solid phase support suitable to support the synthesis of a protein molecule, said modification comprises the addition of a monomeric subunit to said protein molecule, and said reactor comprises sufficient substrate carriers to perform a sequence of reactions resulting in the synthesis of a protein molecule on one of said substrate carriers. 28. The reactor of claim 26, wherein said reactor can simultaneously synthesize a first protein on a first substrate carrier and a second peptide on a second substrate carrier, said first and second oligomers differing in subunit sequence. 29. The reactor of claim 27, wherein said reactor can simultaneously perform a reaction in the synthesis of said first protein and a reaction in the synthesis of said second protein in different reagent chambers. 30. The reactor of claim 20, further comprising means for supplying reagent to and removing reagent from a reagent chamber. 31. The reactor of claim 20, further comprising, a computer to control the positioning of a plurality of said substrate carriers and the positioning of a plurality of said reagent chambers. 32. The reactor of claim 31, wherein said computer is programmed to effect a sequence of positionings of a first substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired sequence of modifications of a polymeric molecule on a first substrate chamber. 33. The reactor of claim 32, wherein said computer is programmed to effect a sequence of positionings of a second substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired sequence of modifications of a second polymeric molecule in a second substrate carrier. 34. The reactor of claim 33, wherein said computer is programmed such that said first polymeric molecule comprises a different sequence of monomeric subunits than does said second polymeric molecule. 35. The reactor of claim 34, wherein said computer is programmed such that at least one reaction in the modification of said first polymeric molecule and one reaction in the modification of said second molecule are performed simultaneously. 36. The reactor of claim 35, wherein said computer is programmed such that said simultaneous reactions are performed in different reagent chambers. 37. The reactor of claim 35, wherein said computer is programmed such that said simultaneous reaction are performed in the same reagent chamber. 38. A nucleic acid oligomer synthesizer, comprising a plurality of moveable discrete surfaces suitable for supporting a substrate for the solid state synthesis of a nucleic acid oligomer, a moveable reagent chamber module comprising a plurality of reagent chambers, said module being capable of movement such that one of said chambers can be established as a chosen reagent chamber, and means for moving said discrete surfaces into contact with the contents of said reagent chambers, said plurality of discrete surfaces being positioned such that a first chosen surface can be placed in contact with the contents of a first chosen reagent chamber and a second chosen surface can be placed in contact with the contents of a second chosen reagent chamber, a reagent chamber being chosen by moving said module such that the chosen surfaces can be brought into contact with the contents of a reagent chamber chosen, the movement of each of a plurality of surfaces into contact with the contents of a reagent chamber being under individual control, a sequence of contacts between a surface and a plurality of reagent chambers being capable of synthesizing a nucleic acid oligomer on one of said surfaces. 39. The nucleic acid synthesizer of claim 38, further comprising means for supplying reagent to and removing reagent from a reagent chamber. 40. The nucleic acid synthesizer of claim 38, further comprising, a computer to control the positioning of a plurality of said surfaces and the positioning of a plurality of said reagent chambers. 41. The nucleic acid synthesizer of claim 40, wherein said computer is programmed to effect a sequence of contact between a chosen surface and a plurality of chosen reagent chambers said sequence being capable of synthesizing a first oligomer on said chosen surface. 42. The nucleic acid synthesizer of claim 41, wherein said sequence is further capable of synthesizing a second oligomer on a second chosen surface. 43. The nucleic acid synthesizer of claim 42, wherein said computer is programmed such that said first oligomer comprises a different sequence of monomeric subunits than does said second oligomer. 44. The nucleic acid synthesizer of claim 43, wherein said computer is programmed such that at least one monomeric subunit of said first oligomer and one of said second oligomer are added simultaneously. 45. The nucleic acid synthesizer of claim 44, wherein said computer is programmed such that said simultaneous additions are performed in different reagent chambers. 46. The nucleic acid synthesizer of claim 44, wherein said computer is programmed such that said simultaneous additions are performed in the same reagent chamber. 47. A method for sequentially modifying a molecule attached to a solid phase support, comprising supplying a plurality of substrate carriers, each substrate carrier capable of carrying a solid phase support to which a molecule to be modified can be attached, supplying a plurality of reagent chambers, each capable of comprising a reagent for effecting a modification of said molecule, supplying means for individually bringing each of a plurality of chosen substrate carriers into a reagent- contact mode and a reagent-non-contact mode with each of a plurality of reagent chambers,and bringing each of a plurality of said substrate carriers into sequential contact with the contents of a plurality of said reagent chambers said sequential contact being capable of resulting in the sequential modification of molecules attached to said solid phase supports on said plurality of substrate carriers. 48. The method of claim 47, further comprising controlling the sequence in which said reagent chambers and said substrate carriers are brought into the reagent- contact mode. 49. The method of claim 47, further comprising supplying means for individually positioning each of a plurality of chosen substrate carriers in a reagent- contact mode and in a reagent-non-contact mode and λ means for positioning each of a plurality of chosen reagent chambers relative to a chosen substrate carrier such that when said chosen substrate carrier is in said reagent-contact mode said chosen substrate carrier is in contact with the contents of a chosen reagent chamber and when said chosen substrate carrier is in said reagent-non-contact mode said chosen substrate carrier is not in contact with said contents of said chosen reagent chamber. 50. The method of claim 47, further comprising simultaneously modifying a first molecule on a first substrate carrier and a second molecule on a second substrate carrier. 51. The method of claim 50, further comprising making said simultaneous modifications in different reagent chambers. 52. The method of claim 47, further characterized in that said molecule synthesized is a nucleic acid molecule, said modification comprises the addition of a monomeric subunit to said nucleic acid molecule, and further comprising supplying substrate carriers capable of carrying a solid phase support suitable to support the synthesis of said nucleic acid molecule and sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a nucleic acid molecule on one of said substrate carriers. 53. The method of claim 52, further comprising simultaneously synthesizing a first oligomer in a first substrate carrier and a second oligomer in a second substrate carrier, said first and second oligomers differing in subunit sequence. 54. The method of claim 53, further comprising simultaneously performing a reaction in the synthesis of said first oligomer and a reaction in the synthesis of said second oligomer in different reagent chambers. 55. The method of claim 47, further characterized in that said molecule synthesized is a protein molecule, said modification comprises the addition of a monomeric subunit to said protein molecule, and further comprising supplying substrate chambers capable of carrying a solid phase support suitable to support the synthesis of a protein molecule and sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a protein molecule on one of said substrate carriers. 56. The method of claim 47, further comprising supplying means for supplying reagent to and removing reagent from a reagent chamber. 57. The method of claim 47, further comprising, controlling the positioning of a plurality of said substrate carriers and the positioning of a plurality of said reagent chambers with a computer. 58. The method of claim 57, further comprising effecting, by said computer, a sequence of positionings of a first substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired sequence of modifications of a polymeric molecule in a first substrate carrier. 59. The method of claim 58, further comprising effecting, by said computer, a sequence of positionings of a second substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired sequence of modifications of a second polymeric molecule in a second substrate carrier. 60. The method of claim 59, further comprising effecting, by said computer, a sequence of positionings such that said first polymeric molecule comprises a different seguence of monomeric subunits than does said second polymeric molecule. 61. The method of claim 60, wherein at least one reaction in the modification of said first polymeric molecule and one reaction in the modification of said second molecule are performed simultaneously. 62. The method of claim 61, wherein said simultaneous reactions are performed in different reagent chambers. 63. The method of claim 61, wherein said simultaneous reaction are performed in the same reagent chamber. 64. The method of claim 49, further comprising providing said means for positioning each of a plurality of reagent chambers on a moveable carrier which comprises a plurality of reagent chambers, said individual positioning means being positioned relative to said moveable carrier such that the action of an individual positioning means causes the transition from the reagent non-contacting mode to the reagent-contacting mode of a chosen substrate carrier with respect to a chosen reagent chamber, and moving said carrier to establish which of a plurality of reagent chambers is the chosen reagent chamber with respect to a chosen substrate carrier. 65. The method of claim 64, further comprising simultaneously modifying a first molecule on a first substrate carrier and a second molecule on a second substrate carrier. 66. The method of claim 65, further comprising positioning said individual positioning means such that a first substrate chamber and a second substrate carrier can be simultaneously placed in the reagent contact mode with respect to a first chosen reagent chamber. 67. The method of claim 64, further comprising positioning said array of individual positioning means such that a first substrate carrier and a second substrate chamber can be simultaneously placed in the reagent contact mode with respect to a first reagent chamber. 68. The method of claim 67, further comprising simultaneously positioning a third substrate carrier in the reagent contact mode with respect to a second reagent chamber. 69. The method of claim 64, further characterized in that said molecule synthesized is a nucleic acid molecule, said modification comprises the addition of a monomeric subunit to said nucleic acid molecule, and further comprising supplying substrate carriers capable of carrying a solid phase support suitable to support the synthesis of said nucleic acid molecule and sufficient reagent chambers to perform a sequence of reactions resulting in the synthesis of a nucleic acid molecule at one of said substrate carriers. 70. The method of claim 69, further comprising simultaneously synthesizing a first oligomer in a first substrate carrier and a second oligomer in a second substrate carrier, said first and second oligomers differing in subunit sequence. 71. The method of claim 70, further comprising simultaneously performing a reaction in the synthesis of said first oligomer and a reaction in the synthesis of said second oligomer in different reagent chambers. 72. The method of claim 64, further characterized in that said molecule synthesized is a protein molecule, said modification comprises the addition of a monomeric subunit to said protein molecule, and further comprising supplying substrate carriers capable of carrying a solid phase support suitable to support the synthesis of a protein molecule and sufficient substrate carriers to perform a sequence of reactions resulting in the synthesis of a protein molecule on one of said substrate carriers. 73. The method of claim 72, further comprising simultaneously synthesizing a first protein on a first substrate carrier and a second peptide on a second substrate carrier, said first and second oligomers differing in subunit sequence. 74. The method of claim 73, further comprising simultaneously performing a reaction in the synthesis of said first protein and a reaction in the synthesis of said second protein in different reagent chambers. 75. The method of claim 64, further comprising supplying means for supplying reagent to and removing reagent from a reagent chamber. 76. The method of claim 64, further comprising, controlling the positioning of a plurality of said substrate carriers and the positioning of a plurality of said reagent chambers by computer. 77. The method of claim 76, wherein said controlling effects a sequence of positionings of a first substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired seguence of modifications of a polymeric molecule in a first substrate carrier. 78. The method of claim 77, further comprising effecting, by said computer, a sequence of positionings of a second substrate carrier relative to a plurality of reagent chambers said sequence being capable of effecting a desired sequence of modifications of a second polymeric molecule in a second substrate carrier. 79. The method of claim 77, further comprising effecting, by said computer, a sequence of positionings wherein said first polymeric molecule comprises a different sequence of monomeric subunits than does said second polymeric molecule. 80. The method of claim 79, wherein the positioning for at least one reaction in the modification of said first polymeric molecule and the positioning of one reaction in the modification of said second molecule are performed simultaneously. 81. The method of claim 80, wherein said simultaneous positionings are performed in different reagent chambers. 82. The method of claim 80, wherein said simultaneous positionings are performed in the same reagent chamber. 83. A method of synthesizing a nucleic acid oligomer, comprising supplying a plurality of moveable discrete surfaces suitable for supporting a substrate for the solid state synthesis of a nucleic acid oligomer, supplying a moveable reagent chamber module comprising a plurality of reagent chambers, said molecule being capable of movement such that a particular chamber can be established as a chosen chamber, supplying means for moving said discrete surfaces into contact with the contents of said reagent chambers, said plurality of discrete surfaces being positioned such that a first chosen surface can be placed in contact with the contents of a first chosen reagent chamber and a secod chosen surface can be placed in contact with the contents of a second reagent chamber, choosing a reagent chamber, by moving said module such that the chosen surfaces can be brought into contact with the contents of a chosen reagent chamber, moving of each of a plurality of individually controllable surfaces into contact with the contents of a plurality of reagent chambers to effect a sequence of contacts between surfaces and reagent chambers to synthesis a nucleic acid molecule one of said surfaces. 84. The method of claim 83, further comprising supply means for supplying reagent to and removing reagent from a reagent chamber. 85. The method of claim 83, further comprising, controlling the positioning of a plurality of said surfaces and the positioning of a plurality of said reagent chambers by computer. 86. The method of claim 85, further comprising effecting a sequence of contact between a chosen surface and a plurality of chosen reagent chambers said sequence being capable of synthesizing a first oligomer on said chosen surface. 87. The method of claim 86, further comprising effecting, by said computer, a sequence which is capable of synthesizing a second oligomer on a second chosen surface. 88. The method of claim 87, further comprising effecting, by said computer, a sequence such that said first oligomer comprises a different sequence of monomeric subunits than does said second oligomer. 89. The method of claim 88, further comprising effecting, by said computer, a sequence such that at least one monomeric subunit of said first oligomer and one of said second oligomer are added simultaneously. 90. The method of claim 89, further comprising effecting, by said computer, a sequence such that said simultaneous additions are performed in different reagent chambers. 91. The method of claim 83, further comprising effecting, by said computer, a sequence such that said simultaneous additions are performed in the same reagent chamber.

Inventors: CHURCH GEORGE M, KIEFFER-HIGGINS STEPHEN G, CHURCH, GEORGE, M., KIEFFER-HIGGINS, STEPHEN, G.
Applicants: HARVARD COLLEGE, THE PRESIDENT AND FELLOWS OF HARVARD COLLEGE
Application year: 1992
Main classification: C12M1
IPC codes: B01J19, C40B40, C40B60, G01N1, G01N35