Droplet actuators are used to conduct a wide variety of droplet operations. A droplet actuator typically includes two substrates separated by a gap. The substrates include electrodes for conducting droplet operations. The gap between the substrates is typically filled with a filler fluid that is immiscible with the fluid that is to be subjected to droplet operations. Droplet operations are controlled by electrodes associated with one or both of the substrates. As the design and operation of droplet actuators become more complex, there is a need for further software development with respect to droplet actuator applications.
The invention provides a method for conducting droplet operations comprising receiving a droplet operation, determining a logical channel that corresponds to the droplet operation, mapping the logical channel to a physical pin of a droplet actuator, and communicating the droplet operation to the droplet actuator via the physical pin.
The invention also provides a method for conducting droplet operations comprising receiving a droplet operation, determining logical inputs and outputs that correspond to the droplet operation, accessing actuator description information for a droplet actuator, and translating the logical inputs and outputs into physical inputs and outputs of the droplet actuator.
A method is also provided comprising receiving a selection of a function to be performed by a droplet actuator, associating the function to a grouping of one or more electrodes that perform the function, and adding the grouping to an electronic layout of the droplet actuator.
Further, the invention provides a method comprising receiving a selection of a function to be performed by a droplet actuator, associating the function to a predefined electrode element, associating the predefined electrode element to a grouping of one or more electrodes that perform the function, and adding the grouping of one or more electrodes to an electronic layout of the droplet actuator.
The invention additionally provides a method comprising determining a state of electrodes in a droplet actuator with each electrode having an applied voltage or a reference voltage, determining a vector having terms corresponding to a voltage of each electrode, and transforming the vector into physical pin assignments for the droplet actuator.
A system for conducting droplet operations is also provide, the system comprising a processor executing code stored in memory that causes the processor to receive a droplet operation, determine a logical channel that corresponds to the droplet operation, map the logical channel to a physical pin of a droplet actuator, and communicate the droplet operation to the droplet actuator via the physical pin.
The invention also provides a system for conducting droplet operations, the system comprising a processor executing code stored in memory that causes the processor to receive a droplet operation, determine logical inputs and outputs that correspond to the droplet operation, access actuator description information for a droplet actuator, and translate the logical inputs and outputs into physical inputs and outputs of the droplet actuator.
The invention additionally provides a system comprising a processor executing code stored in memory that causes the processor to receive a selection of a function to be performed by a droplet actuator, associate the function to a grouping of one or more electrodes that perform the function, and add the grouping to an electronic layout of the droplet actuator.
A system is also provided comprising a processor executing code stored in memory that causes the processor to receive a selection of a function to be performed by a droplet actuator, associate the function to a predefined electrode element, associate the predefined electrode element to a grouping of one or more electrodes that perform the function, and add the grouping of one or more electrodes to an electronic layout of the droplet actuator.
Still further, the invention provides a system comprising a processor executing code stored in memory that causes the processor to determine a state of electrodes in a droplet actuator with each electrode having an applied voltage or a reference voltage, determine a vector having terms corresponding to a voltage of each electrode, and transform the vector into physical pin assignments for the droplet actuator.
The invention also provides a computer readable medium storing processor executable code for performing a method, the method comprising receiving a droplet operation, determining a logical channel that corresponds to the droplet operation, mapping the logical channel to a physical pin of a droplet actuator, and communicating the droplet operation to the droplet actuator via the physical pin.
Still further, the invention provides a computer readable medium storing processor executable code for performing a method, the method comprising receiving a droplet operation, determining logical inputs and outputs that correspond to the droplet operation, accessing actuator description information for a droplet actuator, and translating the logical inputs and outputs into physical inputs and outputs of the droplet actuator.
The invention also provides a computer readable medium storing processor executable code for performing a method, the method comprising receiving a selection of a function to be performed by a droplet actuator, associating the function to a grouping of one or more electrodes that perform the function, and adding the grouping to an electronic layout of the droplet actuator.
The invention additionally provides a computer readable medium storing processor executable code for performing a method, the method comprising receiving a selection of a function to be performed by a droplet actuator, associating the function to a predefined electrode element, associating the predefined electrode element to a grouping of one or more electrodes that perform the function, and adding the grouping of one or more electrodes to an electronic layout of the droplet actuator.
The invention further provides a computer readable medium storing processor executable code for performing a method, the method comprising determining a state of electrodes in a droplet actuator with each electrode having an applied voltage or a reference voltage, determining a vector having terms corresponding to a voltage of each electrode, and transforming the vector into physical pin assignments for the droplet actuator.
Still further, the invention provides an apparatus for conducting electrowetting operations within a microfluidic system comprising a plurality of hardware components respectively including a different hardware I/O interface, the apparatus comprising a memory storing interface description information corresponding to a plurality of different hardware I/O interfaces respectively associated with the plurality of hardware components, logical I/O associated with the electrowetting operation, and program code configured to translate the logical I/O to the plurality of different hardware I/O interfaces; and a processor in communication with the memory and configured to execute the program code to translate the logical I/O to a hardware I/O interface of the plurality of different hardware I/O interfaces without significant modification to a droplet operation protocol defined by the electrowetting operation.
The invention additionally provides an apparatus for designing a microfluidic system used to conduct electrowetting operations, the apparatus comprising a memory for storing design information associated with a plurality of electrode configurations, each configuration comprising a plurality of electrodes arranged to provide a function and that share a relationship with one another, and program code configured to enable the selection of an electrode configuration of the plurality of electrode configurations for incorporation within the microfluidic system design; and a processor in communication with memory and configured to execute the program code to enable the selection of the electrode configuration for incorporation within the microfluidic system design.
A program product is also provided comprising program code configured to access interface description information corresponding to a plurality of different hardware I/O interfaces respectively associated with a plurality of hardware components of a microfluidic system for conducting an electrowetting operation, the program code further configured to access logical I/O associated with the electrowetting operation, and to translate the logical I/O to the plurality of different hardware I/O interfaces; and a computer readable medium bearing the program code.
The invention further provides a program product comprising program code configured to access design information associated with a plurality of electrode configurations each comprising a plurality of electrodes including a relationship with one another and arranged to provide a specific function, and to enable the selection of an electrode configuration of the plurality for incorporation within the microfluidic system design; and a computer readable medium bearing the program code.
The invention also provides a method for conducting droplet operations comprising determining a hardware I/O interface associated with a hardware component of a microfluidic system for conducting electrowetting operations, automatically selecting interface description information based on the hardware I/O configuration, and using the interface description information to translate the logical I/O to the hardware I/O interface without significant modification to a droplet operation protocol defined by the electrowetting operation.
The invention additionally provides a method for conducting droplet operations comprising storing design information associated with a plurality of electrode configurations, each configuration comprising a plurality of electrodes including a relationship with one another and arranged to provide a function, and enabling the selection of the design information comprising an electrode configuration of the plurality of electrodes for incorporation within a microfluidic system design.
A method for simulating an assay is also provided, the method comprising retrieving a representation of the assay, retrieving an electronic layout of an electrode configuration, and graphically simulating the representation of the assay in time in the electronic layout of the electrode configuration.
The invention additionally provides a method for developing assays comprising receiving a start location associated with an assay in an electronic layout of an electrode configuration, receiving a finish location associated with the assay in the electronic layout of the electrode configuration, determining a route from the start location to the finish location, and graphically indicating the route in the electronic layout of the electrode configuration.
Still further, the invention provides a system for simulating an assay, the system comprising a processor executing code stored in memory that causes the processor to retrieve a representation of the assay, retrieve an electronic layout of an electrode configuration, and graphically simulate the representation of the assay in time in the electronic layout of the electrode configuration.
The invention further provides a system for developing assays comprising a processor executing code stored in memory that causes the processor to receive a start location associated with an assay in an electronic layout of an electrode configuration, receive a finish location associated with the assay in the electronic layout of the electrode configuration, determine a route from the start location to the finish location, and graphically indicate the route in the electronic layout of the electrode configuration.
The invention also provides a computer readable medium storing processor executable code for performing a method, the method comprising retrieving a representation of an assay, retrieving an electronic layout of an electrode configuration, and graphically simulating the representation of the assay in time in the electronic layout of the electrode configuration.
The invention additionally provides a computer readable medium storing processor executable code for performing a method, the method comprising receiving a start location associated with an assay in an electronic layout of an electrode configuration, receiving a finish location associated with the assay in the electronic layout of the electrode configuration, determining a route from the start location to the finish location, and graphically indicating the route in the electronic layout of the electrode configuration.
As used herein, the following terms have the meanings indicated.
“Activate” with reference to one or more electrodes means effecting a change in the electrical state of the one or more electrodes which results in a droplet operation.
“Droplet” means a volume of liquid on a droplet actuator that is at least partially bounded by filler fluid. For example, a droplet may be completely surrounded by filler fluid or may be bounded by filler fluid and one or more surfaces of the droplet actuator. Droplets may, for example, be aqueous or non-aqueous or may be mixtures or emulsions including aqueous and non-aqueous components. Droplets may take a wide variety of shapes; nonlimiting examples include generally disc shaped, slug shaped, truncated sphere, ellipsoid, spherical, partially compressed sphere, hemispherical, ovoid, cylindrical, and various shapes formed during droplet operations, such as merging or splitting or formed as a result of contact of such shapes with one or more surfaces of a droplet actuator.
“Droplet Actuator” means a device for manipulating droplets. For examples of droplet actuators, see U.S. Pat. No. 6,911,132, entitled “Apparatus for Manipulating Droplets by Electrowetting-Based Techniques,” issued on Jun. 28, 2005 to Pamula et al.; U.S. patent application Ser. No. 11/343,284, entitled “Apparatuses and Methods for Manipulating Droplets on a Printed Circuit Board,” filed on filed on Jan. 30, 2006; U.S. Pat. Nos. 6,773,566, entitled “Electrostatic Actuators for Microfluidics and Methods for Using Same,” issued on Aug. 10, 2004 and 6,565,727, entitled “Actuators for Microfluidics Without Moving Parts,” issued on Jan. 24, 2000, both to Shenderov et al.; Pollack et al., International Patent Application No. PCT/US2006/047486, entitled “Droplet-Based Biochemistry,” filed on Dec. 11, 2006; and Roux et al., U.S. Patent Pub. No. 20050179746, entitled “Device for Controlling the Displacement of a Drop Between two or Several Solid Substrates,” published on Aug. 18, 2005; the disclosures of which are incorporated herein by reference. Certain droplet actuators will include a substrate, droplet operations electrodes associated with the substrate, one or more dielectric and/or hydrophobic layers atop the substrate and/or electrodes forming a droplet operations surface, and optionally, a top substrate separated from the droplet operations surface by a gap. One or more reference electrodes may be provided on the top and/or bottom substrates and/or in the gap. In various embodiments, the manipulation of droplets by a droplet actuator may be electrode mediated, e.g., electrowetting mediated or dielectrophoresis mediated or Coulombic force mediated. Examples of other methods of controlling fluid flow that may be used in the droplet actuators of the invention include devices that induce hydrodynamic fluidic pressure, such as those that operate on the basis of mechanical principles (e.g. external syringe pumps, pneumatic membrane pumps, vibrating membrane pumps, vacuum devices, centrifugal forces, piezoelectric/ultrasonic pumps and acoustic forces); electrical or magnetic principles (e.g. electroosmotic flow, electrokinetic pumps, ferrofluidic plugs, electrohydrodynamic pumps, attraction or repulsion using magnetic forces and magnetohydrodynamic pumps); thermodynamic principles (e.g. gas bubble generation/phase-change-induced volume expansion); other kinds of surface-wetting principles (e.g. electrowetting, and optoelectrowetting, as well as chemically, thermally, structurally and radioactively induced surface-tension gradients); gravity; surface tension (e.g., capillary action); electrostatic forces (e.g., electroosmotic flow); centrifugal flow (substrate disposed on a compact disc and rotated); magnetic forces (e.g., oscillating ions causes flow); magnetohydrodynamic forces; and vacuum or pressure differential. In certain embodiments, combinations of two or more of the foregoing techniques may be employed in droplet actuators of the invention.
“Droplet operation” means any manipulation of a droplet on a droplet actuator. A droplet operation may, for example, include: loading a droplet into the droplet actuator; dispensing one or more droplets from a source droplet; splitting, separating or dividing a droplet into two or more droplets; transporting a droplet from one location to another in any direction; merging or combining two or more droplets into a single droplet; diluting a droplet; mixing a droplet; agitating a droplet; deforming a droplet; retaining a droplet in position; incubating a droplet; heating a droplet; vaporizing a droplet; condensing a droplet from a vapor; cooling a droplet; disposing of a droplet; transporting a droplet out of a droplet actuator; other droplet operations described herein; and/or any combination of the foregoing. The terms “merge,” “merging,” “combine,” “combining” and the like are used to describe the creation of one droplet from two or more droplets. It should be understood that when such a term is used in reference to two or more droplets, any combination of droplet operations sufficient to result in the combination of the two or more droplets into one droplet may be used. For example, “merging droplet A with droplet B,” can be achieved by transporting droplet A into contact with a stationary droplet B, transporting droplet B into contact with a stationary droplet A, or transporting droplets A and B into contact with each other. The terms “splitting,” “separating” and “dividing” are not intended to imply any particular outcome with respect to size of the resulting droplets (i.e., the size of the resulting droplets can be the same or different) or number of resulting droplets (the number of resulting droplets may be 2, 3, 4, 5 or more). The term “mixing” refers to droplet operations which result in more homogenous distribution of one or more components within a droplet. Examples of “loading” droplet operations include microdialysis loading, pressure assisted loading, robotic loading, passive loading, and pipette loading. In various embodiments, the droplet operations may be electrode mediated, e.g., electrowetting mediated or dielectrophoresis mediated.
“Filler fluid” means a fluid associated with a droplet operations substrate of a droplet actuator, which fluid is sufficiently immiscible with a droplet phase to render the droplet phase subject to electrode-mediated droplet operations. The filler fluid may, for example, be a low-viscosity oil, such as silicone oil. Other examples of filler fluids are provided in International Patent Application No. PCT/US2006/047486, entitled, “Droplet-Based Biochemistry,” filed on Dec. 11, 2006; International Patent Application No. PCT/US2008/072604, entitled “Use of additives for enhancing droplet actuation,” filed on Aug. 8, 2008; and U.S. Patent Publication No. 20080283414, entitled “Electrowetting Devices,” filed on May 17, 2007; the entire disclosures of which are incorporated herein by reference. The filler fluid may fill the entire gap of the droplet actuator or may coat one or more surfaces of the droplet actuator. Filler fluid may be conductive or non-conductive.
The terms “top” and “bottom” are used throughout the description with reference to the top and bottom substrates of the droplet actuator for convenience only, since the droplet actuator is functional regardless of its position in space.
When a given component, such as a layer, region or substrate, is referred to herein as being disposed or formed “on” another component, that given component can be directly on the other component or, alternatively, intervening components (for example, one or more coatings, layers, interlayers, electrodes or contacts) can also be present. It will be further understood that the terms “disposed on” and “formed on” are used interchangeably to describe how a given component is positioned or situated in relation to another component. Hence, the terms “disposed on” and “formed on” are not intended to introduce any limitations relating to particular methods of material transport, deposition, or fabrication.
When a liquid in any form (e.g., a droplet or a continuous body, whether moving or stationary) is described as being “on”, “at”, or “over” an electrode, array, matrix or surface, such liquid could be either in direct contact with the electrode/array/matrix/surface, or could be in contact with one or more layers or films that are interposed between the liquid and the electrode/array/matrix/surface.
When a droplet is described as being “on” or “loaded on” a droplet actuator, it should be understood that the droplet is arranged on the droplet actuator in a manner which facilitates using the droplet actuator to conduct one or more droplet operations on the droplet, the droplet is arranged on the droplet actuator in a manner which facilitates sensing of a property of or a signal from the droplet, and/or the droplet has been subjected to a droplet operation on the droplet actuator.
The present invention provides modified droplet actuator systems, software, and software-executed methods for use in droplet actuator operation and droplet actuator systems that are configured and programmed to execute such software. An aspect of the software components of the invention is an interface description file for each hardware component of a microfluidics system that allows hardware components to be changed without modifying the program for performing droplet operations protocols. Another aspect of the software components of the invention is the establishment of electrode-to-electrode relationships and other aspects of droplet actuator configurations, which may be used when programming droplet operations protocols. Another aspect of the software components of the invention is a physical design library of predefined electrode elements that may be used by a droplet actuator designer when constructing a layout of electrodes. Another aspect of the software components of the invention is a droplet actuator description file that contains the physical and electrical description of the droplet actuator. Another aspect of the software components of the invention is a router component for determining routes of droplet operations in a droplet actuator. Another aspect of the software components of the invention is the use of tri-state vectors for programming sequences in a droplet actuator. Still other aspects will be apparent from the ensuing description of the invention.
The components illustrated in
Exemplary embodiments overcome any incompatibilities. Exemplary embodiments utilize one or more interface description files 106 to ensure that the controller 100, the interface 104, and/or the droplet actuator 102 perform the desired droplet operations. The interface description files 106 translate inputs to outputs. A controller interface description file 108, for example, describes the logical and physical inputs/outputs to/from the controller 100. An actuator interface description file 110 describes the logical and physical inputs/outputs to/from the droplet actuator 102. Similarly, a description file 112 may also describe the logical and physical inputs/outputs to/from the interface 104. The interface description files 106, in other words, map inputs to outputs, whether logical or physical.
The interface description files may be locally or remotely maintained.
Each hardware component of microfluidics system 200 has a certain physical input/output (“I/O”) pin assignment. The controller 100, for example, may have physical input/output pins, and each pin has a specific logical and physical assignment. The droplet actuator 102 may also have physical input/output pins, and each pin may have a specific logical/physical assignment for connecting the control signals from the driver module 220 to specific droplet operations electrodes 204. The first cable 222 and the second cable 224, likewise, may have assignments for physical pins at each end. All these pin assignments, though, may differ. Different manufacturers and different models of the controller 100, the first cable 222, the driver module 220, the second cable 224, and the droplet actuator 102 may have different logical and physical pin assignments. If any of these pin assignments are mismatched, the performance of the microfluidics system 200 may be compromised.
The interface description files 106 help resolve the pin assignments. Each component's respective interface description file 106 helps translate the component's logical inputs and outputs to the component's physical inputs and outputs. A first cable interface description file 230, for example, describes the logical and physical inputs/outputs of the first cable 222. A driver module interface description file 232 describes the logical and physical inputs/outputs of the driver module 220. A second cable interface description file 234 describes the logical and physical inputs/outputs of the second cable 224. The actuator interface description file 110 describes the logical and physical inputs/outputs to/from the droplet actuator 102. Each interface description file 106 helps transform each component's inputs and outputs. The interface description files 106 thus permit the electrowetting application 202 to correctly conduct droplet operations, regardless of any component's manufacturer, model, and/or logical and physical requirements.
Each component of the microfluidics system 200 may thus have its own corresponding hardware component-specific interface description file 106. In the event that a certain hardware component is replaced by a different hardware component that has a different physical I/O assignment, a corresponding interface description file 106 is installed and accessed by the electrowetting application 202. For example, when the droplet actuator 102 is replaced with a different droplet actuator of a different design, a new actuator interface description file 110 is loaded into the memory (illustrated as reference numeral 132 in
Suppose, for example, that the electrowetting application 202 is used to perform an assay protocol. Any controller 100, first cable 222, driver module 220, second cable 224, or droplet actuator 102 may be used to perform the assay protocol, as long as the electrowetting application 202 has access to each component's corresponding interface description file 106. Exemplary embodiments thus reduce or even avoid the need to alter the code within the electrowetting application 202. The electrowetting application 202 may be generically written and, instead, rely on an accurate interface description file 106 for each component within the microfluidics system 200. Moreover, exemplary embodiments also reduce or even avoid the need for installing custom hardware, such as a custom cable, that corresponds to the I/O of the driver module 220 and/or the droplet actuator 102. The interface description files 106 thus isolate the electrowetting application 202, which is used for programming droplet operations protocols, from different hardware component designs.
The information within each interface description file 106 may be stored and accessed in any format. The hardware component-specific information within each interface description file 106 is not limited to a file format. Each component's hardware-specific information may be stored and retrieved in any way. In one example, software objects may be generated rather than the interface description files 106. The hardware component-specific information may be in any file format (e.g., the interface description file 106) for long term storage.
Relationships between electrodes 204, for example, may be directional. An electrode-to-electrode relationship may be “one-way” and/or “two-way.” These relationships may be used in programming droplet operations protocols to allow and/or restrict certain droplet operations at certain electrodes and/or groups of electrodes and/or at certain points in time. The one-way and two-way relationships may be used to define an allowed direction of flow with respect to a certain electrode 204. If a certain electrode has a “one-way” relationship, for example, fluidic movement is only permitted in a single direction into or from the certain electrode. For example, the flow of droplet operations across droplet operations electrode 204F (the droplet operations electrode nearest to the waste reservoir 302) may be defined as one-way toward the waste reservoir 302. That is, a droplet is permitted to only flow from the droplet operations electrode 204F and into the waste reservoir 302. Fluid is not allowed, however, to flow from the waste reservoir 302 back to the droplet operations electrode 204F.
“Two-way” relationships may also be defined. A two-way relationship permits a droplet to flow in two directions across an electrode 204. A two-way relationship, in other words, permits fluidic movement into and from an electrode 204. Referring again to
Another electrode-to-electrode relationship is a “neighbor” relationship. With respect to a certain electrode 204, a neighbor electrode may be any immediately adjacent electrode. Droplet operations may be allowed directly between neighbor electrodes, i.e., a digital fluidic path may exist between neighbor electrodes. Again referring to
The “neighbor” relationship may also refer to location and connectivity. A neighbor electrode may be a physically adjacent electrode, but the neighbor electrode(s) may also imply electrical connectivity. That is, the (physical) neighbors of an electrode may determine where to a droplet may next travel. When a droplet needs to be restricted from moving to a particular electrode, the neighbor relationship may be altered or changed to implement that movement restriction. Geometrical relationships between electrodes, however, may be separately maintained for rendering the physical integrated circuit and need not explicitly contain adjacency information.
Another electrode-to-electrode relationship is an “interface” relationship. The concept of neighbor relationships may be extended to bridge electronic circuit chips. One chip, for example, may fluidically connect to another chip and may, therefore, define a neighbor relationship between electrodes on two different chips.
Another example of an electrode-to-electrode relationship is a “friend” relationship. With respect to a certain electrode, a “friend” electrode 204 is any electrode this is not immediately adjacent, but which when activated, may influence droplet operations at the certain electrode. Droplet operations may, or may not, be allowed directly between friend electrodes, i.e., a fluidic path may or may not exist between friend electrodes. For example, electrodes that are diagonally positioned from one another may be categorized as friend electrodes. Again referring to
The electrode-to-electrode relationships may also include one-way and two-way friends. An example of a one-way friend relationship is that the waste reservoir 302 may be a friend to both droplet operations electrode 204L and 204M, but, droplet operations electrodes 204L and 204M are not friends of the waste reservoir 302. When the waste reservoir 302 is activated, the force exerted by the waste reservoir 302 on droplets at operations electrodes 204L and 204M is enough to adversely influence the droplets. In other words, when the waste reservoir 302 is electrically activated, the waste reservoir 302 may electrically affect the droplet operations performed by droplet operations electrodes 204L and 204M. However, when the droplet operations electrodes 204L and/or 204M are electrically activated, their individual and/or combined energy is not sufficient to influence droplet operations at the waste reservoir 302. Because the droplet operations electrodes 204L and 204M may be disproportionate in size compared to the waste reservoir 302, the droplet operations electrodes 204L and 204M may have little or even negligible electrostatic effects at the waste reservoir 302.
Another example of a one-way friend relationship is provided. Droplet operations electrode 204A may be a friend to droplet operations electrodes 204I, 204E, 204J, 204K, 204L, and 204M; but, droplet operations electrodes 204I, 204E, 204J, 204K, 204L, and 204M may not be friends of droplet operations electrode 204A. This is because a control line 304 of droplet operations electrode 204A is routed in close proximity to droplet operations electrodes 204I, 204E, 204J, 204K, 204L, and 204M. Therefore, when the control line 304 is activated (to activate droplet operations electrode 204A), its energy may influence droplet operations at droplet operations electrodes 204I, 204E, 204J, 204K, 204L, and/or 204M. However, the energy of droplet operations electrodes 204I, 204E, 204J, 204K, 204L, and/or 204M, when activated, will not influence droplet operations at droplet operations electrode 204A because of the large distance therebetween. The control line 304 may thus electrically/electromagnetically affect droplet operations electrodes 204I, 204E, 204J, 204K, 204L, and/or 204M, but these same electrodes may not affect the control line 304. If an applied voltage at any of the electrodes 204I, 204E, 204J, 204K, 204L, and/or 204M increases, though, any of these electrodes may affect the control line 304. Similarly, a low-enough voltage or current in the control line 304 may produce negligible effects at the electrodes 204I, 204E, 204J, 204K, 204L, and/or 204M.
Relationships, though, are likely more complex.
Friends may thus influence droplet operations.
Friends may thus be electrical relationships. A friend relationship may influence any energy, electrical, or electromagnetic relationship or effect at a single electrode, between two or more electrodes, and/or at any component within the droplet actuator 102. If the friend relationship is one-way, then the electrical effect is more influential at one location and perhaps negligible at another location within the droplet actuator 102. When the friend relationship is two-way, then the electrical effect may influence neighbor, adjacent, or diagonal electrodes or other components within the droplet actuator 102.
These electrical relationships may influence hydrophobic or hydrophilic properties. Because a friend relationship may induce an electrical/electromagnetic field at another electrode, hydrophobic or hydrophilic properties may be affected. An induced electrical/electromagnetic field, for example, may make a surface of an adjacent electrode more, or less, hydrophobic. A stray electrical/electromagnetic field, for example, may cause a neighboring electrode to become more, or less, hydrophilic, thus affecting droplet operations. The neighbor and/or friend relationships between electrodes may thus describe electrical/electromagnetic effects that increase or decrease hydrophobic/hydrophilic properties.
One or more weighting factors 310 may also be defined. The weighting factor 310 may be assigned to any neighbor and/or friend relationship. For example, a certain friend electrode may have a weighting factor 310 of one (1), while another friend electrode may have a weighting factor 310 of two (2). The numeric value of the weighing factor 310 may be bounded by any upper limit and/or by any lower limit, with any increment in between. The higher the weighting factor 310, then perhaps the higher the influence.
The weighting factors 310 may be applied to fluidic neighbors. Sometimes the trip between fluidic neighbors is expensive and sometimes the trip is not (e.g., low weight). The weighting factors 310 may thus be applied when evaluating long trips. If the total cost is the smallest of all possibilities, then the path may be optimal. It also allows choosing between paths on the basis of cost. The relationship can have a negative weight, but an infinite weight may not make practical sense (for example, if a weighting factor is infinite, it may be best to simply remove the relationship).
These electrode-to-electrode relationships (with or without the directional components described above) may be incorporated in any of the interface description files 106. The electrowetting application 202, for example, may access, retrieve, or reference the electrode-to-electrode relationships when programming droplet operations protocols. The actuator interface description file 110 contains the physical and electrical description of the droplet actuator 102. An a priori knowledge of the electrode-to-electrode relationships may be useful when programming droplet operations protocols in parallel vectors of the droplet actuator 102 (as later paragraphs will explain). A detection of droplets (e.g., capacitance detection) may determine the fluidic layout of a chip by just randomly asserting vectors to build up experience to be used a posteriori.
The actuator interface description file 110 is not limited to a file format only. This actuator information may be stored and retrieved in any number of ways. In one example, software objects are generated rather than interface description files. The droplet actuator information may be in a file format (e.g., droplet actuator description file 110) for long term storage only.
Each predefined electrode element may perform a function. A predefined group of electrodes may be arranged to provide a fluidic function or any other function. That is, a group of electrodes may be arranged and referenced according to a function to be performed. Suppose a designer needs to dispense a droplet. Instead of designing several electrodes to perform the dispensing operation, the designer merely selects the desired function. Here, then, the designer accesses the physical design library 400 and selects a dispenser electrodes element 414.
Each predefined electrode element (and/or a sub-element) within the physical design library 400 may be assigned a name. Table 1 below lists the electrode elements shown in
Referring to Table 1, the functions of the predefined electrode elements are also incorporated therein. For example, the electrode sequence for dispensing a droplet from dispenser electrodes element 414 may be associated with, or incorporated into, the definition of dispenser electrodes element 414. For example, a simple programming macro called “dispense” may be invoked when programming a certain assay protocol, without having to specify the exact activation sequence from reservoir to a, to b, to gate of dispenser electrodes element 414. The dispenser electrodes element 414 may thus be defined by populating the associated parameters or data fields “reservoir,” “a,” “b,” and “gate.” Each electrode element is similarly defined by its function and its associated data fields.
The physical design library 400 thus greatly simplifies the design of the droplet actuator 102. A designer of the droplet actuator 102 may simply select the desired function and ensure the associated parameters or fields are populated/defined. The desired function is then associated to a group of one or more electrodes that are structurally preconfigured to perform the desired function. The physical design application (e.g., the computer aided design tool) then inserts or otherwise adds the corresponding electrode structure into the electronic layout 406 of the actuator 102. The completed design may then be stored in the actuator description file 404.
Each predefined electrode element is represented by an icon. The icon may be chosen to resemble the function, but a resemblance is not necessary. An icon may even be a proprietary design.
In this example, the electrode configuration 500 includes multiple dispenser electrodes elements 414, such as dispenser electrodes elements 414a through 414g, which are intended for dispensing sample fluid. The electrode configuration 500 also includes multiple dispenser electrodes elements 414, such as dispenser electrodes elements 414h through 414k, which are intended for dispensing reagent fluid. The electrode configuration 500 also includes another dispenser electrodes element 414l, which is the input well of the substrate. The electrode configuration 500 also includes waste electrodes elements 416a and 416b, a dispenser electrodes element 418a, and a detector electrode element 412a.
A droplet route is specified. One or more droplet operations routes may be specified when programming the droplet operations protocols by calling out a start location and an end location of the route. The name of the electrode elements that form the electrode configuration 500 may be used to define or plan the route. For example, a route (illustrated as reference numeral 510) has a starting location 512 as a “gate” of dispenser electrodes element 414a. The end location 514 is reactor electrodes element 410k. The droplet route 510 may thus be at least partially defined by the starting location 512 and the end location 514.
Defects may also be avoided. Because the electrode configuration 500 may have hundreds or even thousands of electrodes, some electrodes may be fouled or defective. If the route 510 includes a defective electrode, then the droplet operations may be compromised, perhaps even preventing the droplet from reaching the end location 514. Some electrodes may even experience stray or adverse electromagnetic/electrostatic effects from other electrodes. Some electrodes may develop a grounding condition. For whatever reasons, then, some electrodes or areas of the droplet actuator 102 may need to be avoided. The invention may thus flag any known or discoverable defects in the electrode configuration 500. The location of any defect is noted so that the route 510 may avoid the defective area.
The DON'T CARE condition may greatly simplify the vector relationships. Suppose the droplet actuator 102 has one hundred (100) electrodes. The vector describing the state of all the electrodes in the droplet actuator at every point in time would thus have one hundred (100) terms. In other words, if the droplet actuator has n electrodes, then the state vector may have n terms. Each term would have a numerical value of either “1” or “0,” corresponding to an ON or OFF voltage. When the droplet actuator 102 has hundreds, or thousands, of electrodes, the vector describing the state of all the electrodes at any point in time becomes complex, to say the least. These complex vectors, however, can be greatly simplified by introducing the DON'T CARE condition. The DON'T CARE condition allows an electrode to be either an “1” (ON) or “0” (OFF) value, allowing vector relationships to be greatly simplified.
In one example,
In another example,
The tri-state vectors allow sequences to be tested for their ability to be parallelized, which allows methods of parallelization of sequences. If sequences are allowed to be parallelized, tri-state vectors can be merged trivially.
The assay development application 1702 permits graphical designs of assays. The assay development application 1702 is a software tool that visually represents a sequence schedule that is solved by, for example, a sequence scheduling algorithm 1704. The sequence scheduling algorithm 1704 manages the scheduling of one or multiple assay sequences. Because the droplet actuator 102 may have hundreds of electrodes, the droplet actuator 102 may perform multiple sequences in parallel. That is, the droplet actuator 102 may be capable of executing multiple assay sequences at the same time, thus improving the productivity of laboratory efforts. The sequence scheduling algorithm 1704 is thus a software process that coordinates, schedules, and helps execute multiple sequences within the droplet actuator 102. The sequence scheduling algorithm 1704, for example, may manage the scheduling of multiple sequences performed by the exemplary electrode configuration 500 (illustrated in
Each sequence 1710 may be defined by its corresponding vector 1712. Sequences 1710 may be represented as one or more of the vectors 1712 that are to be asserted sequentially to perform a certain droplet operations function in the droplet actuator (illustrated as reference numeral 102 in
One or more actions 1720 may also be selected from the graphical menus 1706. The actions 1720 are any operations when performing assays in droplet actuators that are outside the realm of droplet operations. The actions 1720 execute in between assertions. For example, the actions 1720 may include, but are not limited to, start detection, wait for detection to complete, measure capacitance, set voltage, obtain or retrieve data, change the state of an indicator (such as a light-emitting diode (LED) of the droplet actuator controller), generate an audible sound of the droplet actuator controller, change temperature setpoint, and the like. Each action 1720 may thus be an ancillary operation, action, or function to a particular sequence 1710.
Inputs 1722, outputs 1724, and plug-ins 1726 may also be selected from the graphical menus 1706. Examples of the inputs 1722 and the outputs 1724 may include, but are not limited to, definitions of the flow within the schedule, definitions of how looping/repeating occurs within the schedule, and the like. Examples of the software plug-ins 1726 may include, but are not limited to, plug-ins to display charts and graphs, plug-ins to generate reports, and the like.
Certain portions of sequence schedules may be developed and stored in a diagrams library 1730 for use in building sequence schedules 1732. The terms “diagram” or “diagrams” refer to an aspect of building assays using the graphical menus 1706. The concept of diagrams is further explained and described with reference to
The assay development application 1702 may also define types of relationships between vectors and/or sequences. One type of relationship is herein termed a “parent/child” relationship. A parent/child relationship occurs when a sequence directly transfers control of a droplet to another sequence. In
By contrast, another type of relationship is termed a “predecessor/successor” relationship. A predecessor/successor relationship occurs when timing dependencies require that a sequence cannot begin until its predecessor sequence is completed.
The assay development application 1702 may also define “root” vectors. A root vector is any vector having zero or more parents and zero or more predecessors. Vectors with no parents and no predecessors are “root” vectors and may immediately execute. The dispense sequence 1750 (illustrated in
The Gantt chart 1850 additionally depicts the parent/child relationships.
The Gantt chart 1850 additionally depicts the predecessor/successor relationships.
Each vector 1712 is represented as a node 1860 in a tree 1870 of nodes. The sequence schedule 1800 begins a “Start” (or time t0) and ends at “Finish” (or tF). Nodes “1.0,” “1.1,” “1.2,” and 1.3 represent, respectively, the vectors 1712 associated with the dispense sequence 1810A (illustrated in
Suppose, for example, that the action 1720 is a detection operation.
Relationships may be defined in the flow diagrams 1954. Recall that the solid connecting line 1820 may be used to indicate the parent/child relationship between the icons 1956. The dashed connecting line 1830 may indicate the predecessor/successor relationship between the icons 1956. The inputs 1722 and the outputs 1724 may also define how looping/repeating occurs. Unique flow diagrams 1954 may be saved to the memory 132, for example, in the diagrams library 1730 illustrated in
Sub-diagrams may be built.
The main diagram tab 1118 and the sub-diagram tabs 1962 allow the user to rapidly select any portion of the current sequence schedule 1800. A collection of one or more flow diagrams 1954 that are created in the assay window 1952 visually represents the sequence schedule 1800 that is solved by the sequence scheduling algorithm 1704. The flow diagram 1954 illustrated in
The main menu 1950 may also include other tools. A project tree viewing window 1964 provides a logical or hierarchical tree representation of the flow diagrams 1954 forming the current sequence schedule 1800. The contents of project tree viewing window 1964 may correspond to the main diagram tab 1118 and the sub-diagram tabs 1962 of the assay window 1952. The main menu 1950 may further include a styles settings window 1966, which allows the user to edit any attribute (e.g., text, text color, shape, fill color, border color, and border size) associated with a selected one of the icons 1956 in the flow diagram 1954.
Each sequence 1710 may be associated with certain properties. Each sequence 1710, for example, may be associated with, but not limited to, “ON” vectors, “OFF” vectors, and duration (such as milliseconds). Associated with each sequence 1710 may also be certain attributes or flags. For example, a “fixed flag” means that the sequence must not be stalled (i.e., held up). This is useful for splitting, dispensing and other time-sensitive sequences. A “variable flag” means that the exact duration of the sequence is not known at compile time and, as such, it should not be merged with a fixed sequence. A “priority flag” means that a sequence 1710 having a priority value X is never merged with any other sequence having a priority value less than X.
The sequence scheduling algorithm 1704 provides the ability to merge sequences. For example, two sequences are not mergeable when (1) their “ON” and “OFF” vectors conflict; (2) one sequence is “fixed” and the other is “variable;” (3) merging them results in a “fixed” sequence running for longer than its specified duration; (4) their priorities conflict; and (5) merging them results in an assertion less than 100 milliseconds (configurable, occurs in out-of-sync parallelization).
No sequences may be mergeable if and only if all pairs of the sequences are mergeable. If a merge fails, the sequence scheduling algorithm 1704 tries a different execution path higher up in the sequence graph. The sequence schedule 1800 is an example of a sequence schedule that has no merge conflicts.
The sequence scheduling algorithm 1704 of the assay development application 1702 generates valid initial states (i.e., all mergeable combinations of the root vectors). For each initial state, the sequence scheduling algorithm 1704 generates valid follow-up states, such as, but not limited to, the following: (1) for each vector in the current state, generate its valid follow-ups; (2) combine the individual follow-up states; (3) attempt introducing runnable successor vectors; and (4) always attempt the most aggressive follow-up possible first, so that stalling only occurs when absolutely necessary.
The sequence scheduling algorithm 1704 may repeat in a recursive fashion. If no valid follow-up states are found, the sequence scheduling algorithm 1704 backtracks and tries a different execution path. When all vectors have been processed, the schedule has been solved and the result is returned. If a particular state is known to result in failure from a previous encounter in the search algorithm, it will not be searched again, which results in a significant speed improvement.
Examples of situations in which out-of-sync sequences may occur include, but are not limited to (1) Washing: Out-of-sync wash dispensing and waste disposal; (2) Detection: Heavy parallelization. Out-of-sync sequences. Good example of splitting sequences and using fixed & variable nodes; (3) Pipelining Assays: The ultimate schedule; and (4) Pyrosequencing: Heavy parallelization. Large time savings in assay duration.
A limitation of handling out-of-sync sequences may be that the output vectors may not be less than a configurable duration (typically 100 milliseconds). If this occurs, the sequence scheduling algorithm 1704 may briefly stall one or more sequences in order to re-synchronize.
Other features of the assay development application 1702 may include, but are not limited to, (1) the ability to generate visual graphs (e.g., graph 2200 of
A second part 3620 of the driver model memory space 3600, however, may be reserved for special variables. The second part 3620 of the driver model memory space 3600 may be one or more virtual address spaces that correspond to a particular hardware peripheral device. Each special variable may be divided into fixed blocks 3630 of a pre-prescribed number 3630 of variables. Each block may correspond to a function. A “move droplet” function, for example, may have a pre-prescribed location of virtual address space. Other functions, such as manipulating temperature and counting photons, may have their own corresponding blocks of virtual address space. Each block may be populated with known, popular, or custom variables that are associated with, or relevant to, the corresponding function. The block 3630 associated with the “move droplet” function, for example, may have a pre-prescribed memory space for setting voltage 3635, setting control mode 3640, and asserting vectors 3645. Any other predefined variables associated with the “move droplet” function may also be pre-prescribed within the block 3630. Each driver communicating with the microfluidics system 200 may claim a memory block and interpret reads/writes to the corresponding memory block as actions that the controller 100 performs.
One advantage of the driver model memory space 3600 is that multiple, different peripherals may claim the same memory block. Because a common abstract address block may be shared by multiple peripherals, the peripherals appear to be same to a software application (such as the electrowetting application 202), even though the peripheral hardware is different. When the controller 100 boots or starts, the controller 100 may perform a check to determine what peripherals are connected and communicating with the controller 100. The controller 100 loads the corresponding driver for each peripheral, and each driver claims one or more of the pre-described blocks 3630 of memory. When reads or writes occur within a pre-described block of memory, the reads and writes translate into controller activities. To the electrowetting application 202, then, different hardware devices appear the same, because the different peripherals claim the same memory block 3630. Each pre-described block of memory has the same interface to the electrowetting application 202. Each pre-described block of memory, as an analogy, resembles a fixed application programming interface (API).
An unclaimed block, or unclaimed variable within a block, may produce an error. Any unclaimed blocks or variables may be reported as errors. Any functions associated with an entire unclaimed block would not be available to the processor 130 and/or to the electrowetting application 202. Similarly, any functions associated with an unclaimed variable within a block 3630 would not be available. A driver that offers less functional capability (perhaps to reduce cost) would not have all the functions available within a block. A reported error may identify or explain that a particular pre-described function is unavailable. A particular function or feature, in other words, is not available from the peripheral.
Droplet activity may be monitored. As a particular assay is performed, electrodes may be electrically activated to move one or more droplets. When the simulation component 1740 performs a simulation of an assay, the simulation component 1740 may track what individual electrodes and/or groups of electrodes are repeatedly activated in the simulation. The simulation component 1740, in other words, may maintain a table in the memory 132 that logs and sums the number of times a particular electrode is turned ON and/or turned OFF. The simulation component 1740 may maintain a counter associated with each electrode. The simulation component 1740 may sum the activations to obtain a total number of times each electrode in the simulation is turned ON and turned OFF. This droplet activity is monitored throughout a simulated assay. The traffic map 3700, then, visually displays what electrodes or group of electrodes are heavily activated during the simulated assay, and what electrodes are little used or unused.
The traffic map 3700 is particularly useful in validation. A validation assay may be developed to purposefully test every electrode in the droplet actuator 102. When the validation assay is simulated, the traffic map 3700 would indicate what electrodes were activated during the validation assay. The traffic map 3700 is updated in real time, so the slider control 2102 may be used to skip forward and backward in time to view the traffic at any moment.
The traffic map 3700 may also utilize color coding. When an electrode is activated a high number of times during a simulation, the electrode may be colored (such as red coloring) to indicate high usage. A green coloring may indicate low levels of traffic. Different threshold values of activation may be defined and associated with a software color. No coloring may indicate no traffic at a particular electrode or group of electrodes.
The traffic map 3700 may also be used to predict failures. When a particular electrode has high usage (perhaps indicated by a red software coloring), then that electrode may be more prone to failure. When an electrode is highly used during an assay, then that electrode may also be more prone to contamination, which may lead to degraded results. The simulation component 1740, then, may be configured with a maximum number of activations for any electrode. If any simulation causes an individual electrode's activations to exceed the maximum number of activations during an assay, then the simulation component 1740 may determine another route that reduced the potential for failure.
The traffic map 3700 may also visually display a current position of any droplet. As a simulation progresses in time, the simulation component 1740 may determine an actual droplet's location based on a contiguous path of ON or activated electrodes. The simulation component 1740 may estimate a droplet's position within the electrode configuration 500 by sequentially following each electrical state of the electrodes.
Suppose, for example, that the R1 reservoir may reliably dispense twelve (12) droplets of reagent. When the assay developer creates an assay, the simulation component 1740 may determine how many droplets will be required from each reservoir. If the assay requires twenty (20) droplets of reagent, then the R1 reservoir alone cannot supply the assay. Another reservoir must be used, and/or the assay must be reconfigured.
Multiple reservoirs may be used. If a single reservoir cannot dispense the needed material, an assay may use multiple reservoirs. Reservoirs R1 and R2, for example, may be combined to dispense the needed amount of material. Reservoirs R3 and R4 may, likewise, be combined to dispense the needed amount of material. The assay may thus be flexible and permit either reservoir pair (R1 and R2) or (R3 and R4) to be used.
Parallel assays, however, may impose constraints. When multiple assays are being performed in parallel, any reservoir, or combination of reservoirs, may be claimed or needed by a particular assay. Suppose a first assay is assigned reservoirs R1 and R2, and a second parallel assay is assigned reservoirs R3 and R4. The simulation component 1740 may thus determine what reservoirs can, and cannot, be shared when multiple assays are performed. The assignment of the reservoirs may thus be indicated in the reservoir assignment map 3800.
Bussing may also affect the assignment of reservoirs. The droplet actuator 102, as earlier explained, may have hundreds or even thousands of electrodes. Each electrode, of course, may have its own dedicated activation circuit. The overall circuitry, however, would be very complex. Bussing may thus be used to simply the circuitry of the droplet actuator 102. When bussing is used, multiple electrodes are connected to the same activation circuit or “bus.” When an individual circuit bus is activated, all the electrodes connected to that circuit are ON. The assay development application 1702, and/or the simulation component 1740, may thus include software code that determines what bus circuits need to be activated to correctly move a droplet. When bussing is used, one or more of the reservoirs R1 through R8 may also be connected to the same bus circuit.
The reservoir assignment map 3800 may indicate the bussed reservoirs. The reservoir assignment map 3800 may visually indicate what reservoirs are bussed together on the same bus circuit.
Bussing may thus impose additional constraints or restrictions. Suppose a first assay uses reservoir R1, but the same first assay will not use reservoir R2. Reservoir R2, then, cannot be assigned to a second assay. The assignment of reservoir R2 to a second assay would cause both reservoirs R1 and R2 to dispense droplets, thus interfering with the first assay. The first and the second assay, then, may not be able to be run in parallel.
Each assay may publish or present its reservoir requirements. Some assays may require a certain reservoir, while other assays may be more flexible and not care from which reservoir a droplet is dispensed. Each assay may thus determine its associated restrictions, and each assay may report options for different combinations of reservoir operations. The assay development application 1702 and/or the simulation component 1740 may collect this bussed reservoir information and any requirements for a particular assay. If a solution cannot be found that permits all assays to be run together, then one or more individual assays must be removed from the parallel simulation.
The central database 4000 may be queried. The central server 4005 may run and execute a query handler 4115. The query handler 4115 is a software application that manages queries to the central database 4000. In this example, researchers and other users may send queries to the central server 4005, and the query handler 4115 queries the central database 4000 for a search term 4120. The query handler 4115 retrieves one or more of the stored assay reports 3900 that match the search term(s). The query handler 4115 then sends the matching assay reports 3900 to the requestor. A web portal or interface 4125 may also be stored to permit easy Internet access to the assay reports. The central database 4000 may even be an aggregate database of all assays performed by all users and not just users associated with a lab, university, or corporation.
For examples of droplet actuator architectures that are suitable for use with the present invention, see U.S. Pat. No. 6,911,132, entitled “Apparatus for Manipulating Droplets by Electrowetting-Based Techniques,” issued on Jun. 28, 2005 to Pamula et al.; U.S. patent application Ser. No. 11/343,284, entitled “Apparatuses and Methods for Manipulating Droplets on a Printed Circuit Board,” filed on filed on Jan. 30, 2006; U.S. Pat. Nos. 6,773,566, entitled “Electrostatic Actuators for Microfluidics and Methods for Using Same,” issued on Aug. 10, 2004 and 6,565,727, entitled “Actuators for Microfluidics Without Moving Parts,” issued on Jan. 24, 2000, both to Shenderov et al.; Pollack et al., International Patent Application No. PCT/US 06/47486, entitled “Droplet-Based Biochemistry,” filed on Dec. 11, 2006, the disclosures of which are incorporated herein by reference. Methods of the invention may be executed using droplet actuator systems, e.g., as described in International Patent Application No. PCT/US2007/09379, entitled “Droplet manipulation systems,” filed on May 9, 2007.
For examples of fluids that may be subjected to droplet operations using the approach of the invention, see the patents listed herein, especially International Patent Application No. PCT/US 06/47486, entitled, “Droplet-Based Biochemistry,” filed on Dec. 11, 2006. In some embodiments, the fluid includes a biological sample, such as whole blood, lymphatic fluid, serum, plasma, sweat, tear, saliva, sputum, cerebrospinal fluid, amniotic fluid, seminal fluid, vaginal excretion, serous fluid, synovial fluid, pericardial fluid, peritoneal fluid, pleural fluid, transudates, exudates, cystic fluid, bile, urine, gastric fluid, intestinal fluid, fecal samples, fluidized tissues, fluidized organisms, biological swabs and biological washes. In some embodiment, the fluid includes a reagent, such as water, deionized water, saline solutions, acidic solutions, basic solutions, detergent solutions and/or buffers. In some embodiments, the fluid includes a reagent, such as a reagent for a biochemical protocol, such as a nucleic acid amplification protocol, an affinity-based assay protocol, a sequencing protocol, and/or a protocol for analyses of biological fluids.
The fluids may include one or more magnetically responsive and/or non-magnetically responsive beads. Examples of droplet actuator techniques for immobilizing magnetic beads and/or non-magnetic beads are described in the foregoing international patent applications and in Sista, et al., U.S. Patent Application Nos. 60/900,653, filed on Feb. 9, 2007, entitled “Immobilization of magnetically-responsive beads during droplet operations”; Sista et al., U.S. Patent Application No. 60/969,736, filed on Sep. 4, 2007, entitled “Droplet Actuator Assay Improvements”; and Allen et al., U.S. Patent Application No. 60/957,717, filed on Aug. 24, 2007, entitled “Bead washing using physical barriers,” the entire disclosures of which is incorporated herein by reference.
In general, the routines executed to implement the embodiments of the invention, whether implemented in hardware, as part of an operating system, or as a specific application, component, program, engine, process, programmatic tool, object, module, or sequence of instructions, or even a subset thereof, may be referred to herein as an “algorithm,” “function,” “program code,” or simply “program.” Program code typically comprises one or more instructions that are resident at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause that computer to perform the steps necessary to execute steps or elements embodying the various aspects of the invention. One of skill in the art should appreciate that embodiments consistent with the principles of the present invention may nonetheless use program code resident at only one or at any number of locations.
Moreover, while the invention has and hereinafter will be described in the context of computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of computer readable, signal bearing media used to actually carry out the distribution. Examples of signal bearing, computer readable media include, but are not limited to tangible, recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, magnetic tape, optical disks (e.g., CD ROMs, DVDs, etc.), among others, and transmission type media such as digital and analog communication links. The invention may be physically embodied on or in a computer-readable or processor-readable storage medium. This computer- or processor-readable medium, or media, could be distributed to end-subscribers, licensees, and assignees. A computer program product comprises the computer- or processor-readable medium storing processor-executable code or instructions for performing droplet operations.
In addition, various program code described hereinafter may be identified based upon the application or engine within which it is implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature is used merely for convenience, and thus the invention should not be limited to use solely in any specific application or engine identified and/or implied by such nomenclature.
Furthermore, given the typically endless number of manners in which computer programs may be organized into routines, procedures, methods, modules, objects, and the like, as well as the various manners in which program functionality may be allocated among various software layers that are resident within a typical computer (e.g., operating systems, libraries, API's, applications, applets, etc.), it should be appreciated that the invention is not limited to the specific organization and allocation of program functionality described herein.
The various software components and resources illustrated in the Figures may be implemented in a number of manners, including using various computer software applications, routines, components, programs, objects, modules, data structures and programs. Those skilled in the art will further recognize that the exemplary environments illustrated in the Figures are not intended to limit the present invention. Indeed, those skilled in the art will recognize that other alternative hardware and/or software environments may be used without departing from the scope of the invention.
The foregoing detailed description of embodiments refers to the accompanying drawings, which illustrate specific embodiments of the invention. Other embodiments having different structures and operations do not depart from the scope of the present invention. The term “the invention” or the like is used with reference to certain specific examples of the many alternative aspects or embodiments of the applicants' invention set forth in this specification, and neither its use nor its absence is intended to limit the scope of the applicants' invention or the scope of the claims. This specification is divided into sections for the convenience of the reader only. Headings should not be construed as limiting of the scope of the invention. The definitions are intended as a part of the description of the invention. It will be understood that various details of the present invention may be changed without departing from the scope of the present invention. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation.
This application is a divisional of and incorporates by reference U.S. patent application Ser. No. 12/596,905, filed Oct. 21, 2009, entitled “Methods, Systems, and Products for Conducting Droplet Operations”, the application of which is a national phase application of PCT/US2009/053725, filed on Aug. 13, 2009, entitled “Methods, Systems, and Products for Conducting Droplet Operations”, the application of which claims priority to and incorporates by reference: U.S. Provisional Application No. 61/088,611, filed Aug. 13, 2008, entitled “Electrode Activation Methods for Droplet Actuators”; U.S. Provisional Application No. 61/088,822, filed Aug. 14, 2008, entitled “Software Components for Use in Droplet Actuator Design and Operation”; U.S. Provisional Application No. 61/092,078, filed Aug. 27, 2008, entitled “Software Components for Use in Droplet Actuator Design and Operation”; U.S. Provisional Application No. 61/139,987, filed Dec. 22, 2008, entitled “Software Components for Use in Droplet Actuator Design and Operation”; and U.S. Provisional Application No. 61/186,151, filed Jun. 11, 2009, entitled “Software Components for Use in Droplet Actuator Design and Operation”; the entire disclosures of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61088611 | Aug 2008 | US | |
61088822 | Aug 2008 | US | |
61092078 | Aug 2008 | US | |
61139987 | Dec 2008 | US | |
61186151 | Jun 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12596905 | Oct 2009 | US |
Child | 13737514 | US |