SOFTWARE CONTROLLED TRANSPORT AND OPERATION PROCESSES FOR FLUIDIC AND MICROFLUIDIC SYSTEMS, TEMPORAL AND EVENT-DRIVEN CONTROL SEQUENCE SCRIPTING, FUNCTIONAL LIBRARIES, AND SCRIPT CREATION TOOLS
20190073238 ยท 2019-03-07
Inventors
- Lester F. Ludwig (San Antonio, TX)
- Catherine LUK (San Francisco, CA, US)
- Sulu LALCHANDANI (San Francisco, CA, US)
- Ying CHEN (San Francisco, CA, US)
Cpc classification
B01J19/0093
PERFORMING OPERATIONS; TRANSPORTING
G06F9/30072
PHYSICS
B01L3/5027
PERFORMING OPERATIONS; TRANSPORTING
B01L3/502738
PERFORMING OPERATIONS; TRANSPORTING
B81B2207/01
PERFORMING OPERATIONS; TRANSPORTING
F16K99/0001
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
G05D7/0694
PHYSICS
B01L2400/0622
PERFORMING OPERATIONS; TRANSPORTING
G05D7/0652
PHYSICS
B01L2200/143
PERFORMING OPERATIONS; TRANSPORTING
International classification
G06F9/30
PHYSICS
Abstract
Although most contemporary and envisioned microfluidic systems are entirely passive or have limited control capabilities, future microfluidic systems require detailed sequenced control of valves and other elements. For this software-control of transport and processes for microfluidic systems under the control of temporal and/or event-driven scripts, script authoring and editing, functional libraries, and other development tools for process and configuration control are proposed with intent towards future standardization. Scripts can respond to external inputs and can comprise conditional-logic, temporal-logic, calculations, hierarchical structure, subroutines, macros, multi-thread and parallel execution operations, procedural calls, interrupts, real-time regulatory control calculations, and element resource allocation.
Scripts can be executed by a script reader, responsive to incoming signals and information, to produce temporal control sequences for operating microfluidic devices, emulation hardware, simulation software, process visualization, etc.
Script authoring/editing tools and readers can record and store information, and can interface to with commercial software, systems, languages, and protocols.
Claims
1. A system for software-controlled transport and operation processes for microfluidic systems that comprise a plurality of controllable elements, each of the controllable elements controlled by a control signal, the control signal comprising at least two control values, the system comprising: a data structure comprising a plurality of data values, each value associated with a particular controllable element from the plurality of controllable elements, the value in the data structure for controlling the control value of a control signal to be generated at a later time; a first instance of the data structure comprising a first plurality of data values; a second instance of the data structure comprising a second plurality of data values; a list of a plurality of instances of the data structure, the list comprising at least the first instance of the data structure and second instance of the data structure, the list further comprising one or both of at least a time value and at least a conditional statement; and a computational processor for executing an algorithm, the computational processor and algorithm arranged to process the list of pluralities of instances of the data structure and responsive to the list to produce a plurality of control signals for providing to the plurality of controllable elements within the microfluidic system, wherein the computational processor and algorithm are further configured so that the control values comprised by one or more control signals that are associated with an instance of the data structure are responsive to the plurality of data values comprised by that instance of the data structure, and wherein the one or more control signals that are associated with that instance of the data structure begin transmission to the microfluidic device at a time determined by the computational processor and algorithm, the transmission time determination responsive to one or both of the at least a time value and the at least a conditional value.
2. The system of claim 1, wherein the list does not include a time value.
3. The system of claim 1, wherein each instance of at least some of the data structures comprised by the list is associated with a separate individual time value.
4. The system of claim 1, wherein the time value represents a time duration from an incoming starting indication.
5. The system of claim 1, wherein the time value represents a time duration from time of the transmission of the at least one control signal associated with a previous instance of the data structure in the list and the beginning of the transmission of the at least one control signal associated with a next instance of the data structure in the list.
6. The system of claim 1, wherein the list does not include a conditional statement.
7. The system of claim 1, wherein the computational processor and algorithm are arranged to be able to receive and respond to incoming input information.
8. The system of claim 7, wherein each instance of at least some of the data structures comprised by the list is associated with a separate individual conditional statement.
9. The system of claim 8, wherein the transmission of at least one control signal associated with an instance of the data structure in the list begins after at least some received input information satisfies the conditional statement associated with that instance of the data structure.
10. The system of claim 9, wherein the transmission of at least one control signal associated with an instance of the data structure in the list does not begin until after a time condition responsive to a time value in the list is also satisfied.
11. The system of claim 1, wherein the list further comprises temporal-logic.
12. The system of claim 1, wherein the list further comprises calculations.
13. The system of claim 1, wherein the list further comprises a hierarchical structure.
14. The system of claim 1, wherein the list further comprises a subroutine.
15. The system of claim 1, wherein the list further comprises a macro operation.
16. The system of claim 1, wherein the list further comprises a macro.
17. The system of claim 1, wherein the list further comprises a multi-thread operation.
18. The system of claim 1, wherein the list further comprises a parallel execution operation.
19. The system of claim 1, wherein the list further comprises a procedural call.
20. The system of claim 1, wherein each control signal is transmitted as a control message.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146]
[0147]
[0148]
[0149]
[0150]
[0151]
[0152]
[0153]
[0154] In this example, the fluid flows from U1 valve-2 to U3 valve-3. Thus, the valves U.sub.1 valve-2, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, and U.sub.3 valve-3 are turned on to allow the fluid to flow from U.sub.1 valve-2 to U.sub.3 valve-3 during a desired period of time or until a desired quantity of fluid is delivered. After the fluid has been delivered from U.sub.1 valve-2 to U.sub.3 valve-3, the U.sub.1 valve-2 valve is turned off.
[0155]
[0156]
[0157]
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164]
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
DETAILED DESCRIPTION
[0212] In the following description, reference is made to the accompanying drawing figures which form a part hereof, and which show by way of illustration specific embodiments of the invention. It is to be understood by those of ordinary skill in this technological field that other embodiments may be utilized, and structural, electrical, as well as procedural changes may be made without departing from the scope of the present invention.
[0213] In the following description, numerous specific details are set forth to provide a thorough description of various embodiments. Certain embodiments may be practiced without these specific details or with some variations in detail. In some instances, certain features are described in less detail so as not to obscure other aspects. The level of detail associated with each of the elements or features should not be construed to qualify the novelty or importance of one feature over the others.
1. Background
[0214] The present application pertains to the software-control of fluidic transport and operation processes for microfluidic systems and the related aspects of temporal and event-driven sequence scripting, functional libraries useful in the creation of scripts, and software-based script authoring and editing tools.
[0215] Although most microfluidic systems in the literature to date are either entirely passive or have limited process control capability, future microfluidic systems (such as New Renaissance Institute's Fluidic Microprocessors and component technologies such as its Microfluidic Bus) and longer-term programs such as Micro Total Analysis Systems (uTAS) entail the sequenced control of a great number of valves and other controllable entities (motorized or sequenced-pulse pumps, photochemical and optical sensor illumination, thermal processing, sensor measurement capture, active mixer elements, electrochemical electrodes and hardware, sonochemical and surface-acoustic wave elements, etc.) to implement a one-pass or continuous process.
[0216]
[0217]
[0218]
[0219] Further regarding transport, as mentioned above, U.S. Pat. Nos. 8,032,258, 8,606,414, and related cases describe various approaches to and aspects of software controlled multichannel microfluidic chemical transport busses and related fluidic systems and methods.
[0220]
[0221]
[0222]
[0223]
[0224] Many other chemical transport bus arrangements are taught in U.S. Pat. No. 8,032,258 and related patents and patent applications, and the arrangements are taught in U.S. Pat. No. 8,032,258 and related patents and patent applications can employ other valve arrangements than the examples explicitly taught therein.
[0225] As an example,
[0226] Idle
[0227] Fluid Flow
[0228] Gas-Pressure Clearing
[0229] Solvent-Based Cleaning
[0230] Gas-Based Drying.
[0231] Such classes of states are realized by combinations of valve states (on/off, route-selection, etc.) and in some cases material locations/motions. Controlled sequences of operations among such states can be implemented through the execution of computational algorithms, the computational algorithms which in turn control the operation of valves and perhaps other entities (pumps, electrokinetic drivers, etc.).
[0232] Similarly, the example software-controlled/software-reconfigurable conduit and reaction chamber microfluidic arrangements for lab-on-a-chip and miniature chemical processing technologies depicted in
2. Contributions of the Present Invention
[0233] Referring to
[0234] The present patent application further addresses many aspects described above, in particular including:
[0235] sequences among classes of operational states
[0236] configuration specification files
[0237] operational scripts
[0238] libraries of files and scripts
[0239] authoring/editing tools
[0240] multithreaded operation
[0241] simulation
[0242] emulation systems
[0243] alterative valve configurations for chemical transport busses.
[0244] To begin, first fluidic bus transport arrangements with gas-pressure clearing, solvent-based cleaning, and gas-based drying states are considered, discussed, and illustrated with several detailed simple contiguous-flow examples. Here contiguous-flow can signify a fluid flow from one source to at least one destination that is simply started and stopped with no intervening gas or air introduced to create segmenting open gaps in the fluid flow. It is possible to modify the definition of contiguous-flow in various ways to admit and/or differentiate additional minor distinctions; such alternative definitions are anticipated and provided for by the invention. (It is also possible to extend the definition of contiguous-flow in various ways to include and/or pertain to gas flows; such extended definitions are also anticipated and provided for by the invention.)
[0245] Next, burst transport is considered. Here burst transport can signify a fluid flow from one source to at least one destination wherein intervening gas or air introduced to create segmenting open gaps in the fluid flow. Typically burst transport would be used to sequentially transport multiple types of fluids through the same conduit, valve, pump, etc. It is possible to modify the definition of contiguous-flow in various ways to admit and/or differentiate additional minor distinctions; such alternative definitions are anticipated and provided for by the invention. (It is also possible to extend the definition of burst transport in various ways to include and/or pertain to gas flows; such extended definitions are also anticipated provided for by the invention.)
[0246] Then, conduit taps and conduit junction points are discussed; in particular traditional T-topology taps/junction and New Renaissance Institute's innovative triangular-topology valve-cluster implementations and operations are introduced, explained, and illustrated with operational examples. These are also described in companion patent filing U.S. patent application Ser. No. 16/179,825.
[0247] Next, example process step and configuration representations, data, and specification files are introduced, explained, and illustrated with examples. Macros of various types are then discussed.
[0248] Next, process event-scripting is introduced, explained, and illustrated with examples. Then the execution of scripts to control various types of hardware and software systems are discussed.
[0249] Finally, authoring, editing, modeling, and simulation tools are introduced, explained, and illustrated with examples.
3. Fluidic Bus Transport Arrangements with Gas-Pressure Clearing, Solvent-Based Cleaning, and Gas-Based Drying States
[0250] Fluidic bus transport arrangements with gas-pressure clearing, solvent-based cleaning, and gas-based drying states have been presented for example in New Renaissance Institute U.S. Pat. Nos. 8,032,258; 8,594,848; 8,606,414; 8,812,163; and 9,636,655. Both continuous flow and burst flow are considered in these.
[0251] The following remarks apply to the simple related examples 1-3 that are provided in this section and subsequent portions of the present patent application: [0252] In these examples, there are four star-topology valve units connected in tandem to form a bus by interconnecting designated side-ports that are used to connect with immediately-neighboring units. These four units are indexed and labeled as U.sub.1-U.sub.4. Each unit has 8 ports, each gated by an associated valve and joined at a star junction point. Six of the ports are gated with simple on/off valves. The flow between the star junction and each of two side-ports is controlled by the associated SPDT valves, one valve associated with each side port. To form the fluidic bus, each unit is interconnected to neighboring units via port 7 and port 8 as suggested in
[0263] That being said, uniformity with an electrical switch analogy is tempting to employ for the sake of conformity, and the reader should be aware that some technical literature and some products could choose to adopt an electrical switch analogy instead of the conventions described above.
[0264] In the figures for these examples, CLN denotes a Cleaning solvent source while AP denotes a gas pressure source that in these examples can be used both for reagent clearing and cleaning-solvent drying purposes.
3.1. Example 1Fluid Flows from U.SUB.2 .to U.SUB.3
[0265] In the following example, operation of the system is sequenced in five classes of states:
[0266] Idle,
[0267] Fluid Flow,
[0268] Gas-Pressure Clearing,
[0269] Solvent-Based Cleaning,
[0270] Gas-Based Drying.
[0271] An example sequence of these classes of states is depicted in
[0272] Input chosen in this example is as follows: [0273] Unit 2 (U.sub.2) valve-2 is used as a fluid input fed by a reagent or fluidic source, [0274] Unit 3 (U.sub.1) valve-3 is used as a fluid output to feed a reagent or fluidic destination.
[0275] The fluidic system for this example is depicted in
Idle State
[0276] In the idle state, all the valves are turned off, no fluid or solvent is flowing, and no gas pressure is applied. The valves that are involved in this example are valves T1 and T2, U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-2, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-3, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-8, and valve T4. The idle state with all the valves turned off involved for this example is represented in
Fluid Flow State
[0277] In the fluid flow state, the fluid flows from one input to an output. In this example, the fluid flows from U.sub.2 valve-2 to U.sub.3 valve-3. Thus, the valves U.sub.2 valve-2, U.sub.2 valve-8, U.sub.3 valve-7, and U.sub.3 valve-3 are turned on to allow the fluid to flow from U.sub.2 valve-2 to U.sub.3 valve-3 during a desired period of time or until a desired quantity of fluid is delivered. After the fluid has been delivered from U.sub.2 valve-2 to U.sub.3 valve-3, the U.sub.2 valve-2 valve is turned off. The fluid flow state is represented in
Gas-Pressure Clearing State
[0278] In the Gas-Pressure Clearing state, the gas pressure pushes further the remaining fluid present in the fluidic pathways into the output. In this particular example, the remaining fluid in the fluidic pathways is pushed into the output U.sub.3 valve-3. T1 valve needs to remain turned off so that the NO and COM are connected, whereas T2 valve needs to be turned on so that the NC and COM are connected together. U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, and U.sub.3 valve-3 are turned on while U.sub.2 valve-2, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-8, and T4 remains turned off. An example Gas-Pressure Clearing_state is depicted in
Solvent-Based Cleaning State
[0279] In the solvent-based cleaning state, the fluidic pathways are cleaned by allowing a cleaning solvent to flow into the fluidic pathways which are then deposited into the drain. This way, the next fluid flowing from a new input to a new output will flow into clean fluidic pathways without contaminations from the previous fluid flow. In the example, after the gas pressure transports the remaining fluid into U.sub.3 valve-3 output, the valve U.sub.3 valve-3 is turned off so that the solvent-based cleaning state can begin. In order for the CLN to flow the T1 valve needs to be turned on to connect the NC and COM together and T2 remains turned on. The valves U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-8 are turned on, while U.sub.2 valve-2, U.sub.3 valve-3 are turned off and T4 remains turned off in order to connect the COM and NO to allow the CLN to go into the drain. The solvent-based cleaning state is represented in
Gas-Based Drying State
[0280] In the gas-based drying state, applied gas pressure is used to push and dry the remaining cleaning solvent into the drain as well as drying any volatile components. In order to let the AP flow, T1 valve needs to be turned off so that the NO and COM are connected again. The valves T2, U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, and U.sub.4 valve-8 remain turned on, while the valve U.sub.2 valve-2, U.sub.3 valve-3, and T4 remain turned off. The gas-based drying state is represented in
3.2. Example 2Fluid Flows from U.SUB.1 .to U.SUB.3
[0281] In the following example, operation of the system is sequenced through the same five classes of states as the previous example. An example sequence of these classes of states is depicted in
[0282] Inputs and outputs are chosen in this example is as follows:
[0283] Unit 1 (U.sub.1) valve-2 is used as a fluid input fed by a reagent or fluidic source,
[0284] Unit 3 (U.sub.3) valve-3 is used as a fluid output to feed a reagent or fluidic destination.
[0285] The valves that are involved in this example are T1, T2, U.sub.1 valve-7, U.sub.1 valve-2, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-3, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-8, and
[0286] T4.
[0287] The fluidic systems used in this example are depicted in
Idle State
[0288] In the idle state, all the valves are turned off, no fluid or solvent is flowing, and no air pressure is applied. Thus, valves T1, T2, U.sub.1 valve-7, U.sub.1 valve-2, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-3, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-8, and T4 are all turned off. The idle state with all the valves turned off involved for this example is represented in
Fluid Flow State
[0289] In the fluid flow state, the fluid flows from one input to an output. In this example, the fluid flows from U.sub.1 valve-2 to U.sub.3 valve-3. Thus, the valves U.sub.1 valve-2, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, and U.sub.3 valve-3 are turned on to allow the fluid to flow from U.sub.1 valve-2 to U.sub.3 valve-3 during a desired period of time or until a desired quantity of fluid is delivered. After the fluid has been delivered from U.sub.1 valve-2 to U.sub.3 valve-3, the U.sub.1 valve-2 valve is turned off. The fluid flow state is represented in
Gas-Pressure Clearing State
[0290] In the Gas-Pressure Clearing state, the gas pressure pushes further the remaining fluid present in the fluidic pathways into the output. In this particular example, the remaining fluid in the fluidic pathways is pushed into the output U.sub.3 valve-3. T1 valve needs to remain turned off so that the NO and COM are connected. On the contrary, T2 valve needs to be turned on so that the NC and COM are connected together. U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, and U.sub.3 valve-3 are turned on while U.sub.1 valve-2, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-8, and T4 still remain turned off. The Gas-Pressure Clearing state is represented in
Solvent-Based Cleaning State
[0291] In the solvent-based cleaning state, the fluidic pathways are cleaned by allowing a cleaning solvent to flow into the fluidic pathways which are then dumped into the drain. This way, the next fluid flowing from a new input to a new output will flow into clean fluidic pathways without contaminations from the previous fluid flow. In this example, after the gas pressure transports the remaining fluid into U.sub.3 valve-3 output, the valve U.sub.3 valve-3 is turned off so that the solvent-based cleaning state can begin.
[0292] In order for the CLN to flow the T1 valve needs to be turned on to connect the NC and COM together and T2 remains turned on. The valves U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-8 are turned on while U.sub.1 valve-2, U.sub.3 valve-3 are turned off and T4 remains turned off in order to connect the COM and NO to allow the CLN to go into the drain. The solvent-based cleaning state is represented in
Gas-Based Drying State
[0293] In the gas-based drying state, applied gas pressure is used to push and dry the remaining cleaning solvent into the drain as well as drying any volatile components. In order to let the AP flow, T1 valve needs to be turned off so that the NO and COM are connected again. The valves T2, U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, and U.sub.4 valve-8 remain turned on while the valve U.sub.1 valve-2, U.sub.3 valve-3, and T4 remain turned off. The gas-based drying state is represented in
3.3. Example 3Fluid Flows from U.SUB.4 .to U.SUB.1
[0294] The fluidic system used in this example is represented in
[0295] In the following example, operation of the system is sequenced in the same five classes of states as the previous two examples. These are depicted in
[0296] Inputs and outputs chosen in this example is as follows:
[0297] Unit 4 (U.sub.4) valve-6 is used as a fluid input fed by a reagent or fluidic source,
[0298] Unit 1 (U.sub.1) valve-3 is used as a fluid output to feed a reagent or fluidic destination.
[0299] The valves that are involved in this example are T3, T4, U.sub.4 valve-8, U.sub.4 valve-6, U.sub.4 valve-7, U.sub.3 valve-8, U.sub.3 valve-7, U.sub.2 valve-8, U.sub.2 valve-7, U.sub.1 valve-8, U.sub.1 valve-3, U.sub.1 valve-7, and T2.
Idle State
[0300] In the Idle state, all the valves are turned off, thus blocking fluid, solvent and gas flow, no fluid is flowing, and no gas pressure is applied.
Fluid Flow State
[0301] In the fluid flow state, the fluid flows from U.sub.4 input to U.sub.1 output. In the following example the fluid flows from U.sub.4 valve-6 to U.sub.1 valve-3. Thus, the valves U.sub.4 valve-6, U.sub.4 valve-7, U.sub.3 valve-8, U.sub.3 valve-7, U.sub.2 valve-8, U.sub.2 valve-7, U.sub.1 valve-8, and U.sub.1 valve-3 are turned on to allow the fluid to flow from U.sub.4 valve-6 to U.sub.1 valve-3 during a desired period of time or until a desired quantity of fluid is delivered. After the fluid has been delivered from U.sub.4 valve-6 to U.sub.1 valve-3, the U.sub.4 valve-6 valve is turned off. The fluid flow state is represented in
Gas-Pressure Clearing State
[0302] In the Gas-Pressure Clearing state, applied gas pressure pushes the remaining fluid present in the fluidic pathways into the output. In the example, the remaining fluid in the fluidic pathways is pushed into the output U.sub.1 valve-3. T3 valve needs to be turned off so that the NO and COM are connected. T4 valve needs to be turned on so that the NC and COM are connected together and U.sub.4 valve-8, U.sub.4 valve-7, U.sub.3 valve-8, U.sub.3 valve-7, U.sub.2 valve-8, U.sub.2 valve-7, U.sub.1 valve-8, and U.sub.1 valve-3 are turned on while U.sub.4 valve-6, U.sub.1 valve-7 and T2 are turned off. The Gas-Pressure Clearing state is represented in
Solvent-Based Cleaning State
[0303] In the solvent-based cleaning state, the fluidic pathways are cleaned by allowing a cleaning solvent to flow into the fluidic pathways which is then dumped into the drain. The next fluid burst or segment flowing from a new input to a new output will flow into clean fluidic pathways without contaminations from the previous fluid flow. In this example, after the gas transports the remaining fluid into U.sub.1 valve-3 output, the valve U.sub.1 valve-3 is turned off so that the solvent-based cleaning state can begin. In order for the CLN to flow the T3 valve needs to be turned on to connect the NC and COM together while T4 remains turned on. The valves U.sub.4 valve-8, U.sub.4 valve-7, U.sub.3 valve-8, U.sub.3 valve-7, U.sub.2 valve-8, U.sub.2 valve-7, U.sub.1 valve-8, and U.sub.1 valve-7 are turned on while U.sub.4 valve-6, U.sub.1 valve-3 are turned off and T2 remains turned off in order to connect the COM and NO to allow the CLN to go into the drain. The solvent-based cleaning state is represented in
Gas-Based Drying State
[0304] In the gas-based drying state, applied gas pressure is used to push and dry the remaining cleaning solvent into the drain as well as drying any volatile solvent components. In order to let the AP flow, T3 valve needs to be turned off so that the NO and COM are connected again. The valves T4, U.sub.4 valve-8, U.sub.4 valve-7, U.sub.3 valve-8, U.sub.3 valve-7, U.sub.2 valve-8, U.sub.2 valve-7, U.sub.1 valve-8, and U.sub.1 valve-7 remain turned on while the valve U.sub.4 valve-6, U.sub.1 valve-3, and T2 remain turned off. The gas-based drying state is represented in
4. Burst Transport
[0305] As a reminder, all of the above examples have been made in the context of contiguous flow transport.
[0306] Again: [0307] Contiguous-flow can signify a fluid flow from one source to at least one destination that is simply started and stopped with no intervening gas or air introduced to create segmenting open gaps in the fluid flow. It is possible to modify the definition of contiguous-flow in various ways to admit and/or differentiate additional minor distinctions; such alternative definitions are anticipated and provided for by the invention. (It is also possible to extend the definition of contiguous-flow in various ways to include and/or pertain to gas flows; such extended definitions are also anticipated and provided for by the invention.) [0308] Burst transport can signify a fluid flow from one source to at least one destination wherein intervening gas or air introduced to create segmenting open gaps in the fluid flow. Typically burst transport would be used to sequentially transport multiple types of fluids through the same conduit, valve, pump, etc. It is possible to modify the definition of contiguous-flow in various ways to admit and/or differentiate additional minor distinctions; such alternative definitions are anticipated and provided for by the invention. (It is also possible to extend the definition of burst transport in various ways to include and/or pertain to gas flows; such extended definitions are also anticipated provided for by the invention.)
[0309]
[0310] In this example, SPDT valves are connected to every port 7 and port 8 of each of four 8-branch valve cluster units and are denoted T1-T8 as indicated in
[0311] As an example, the SPDT valve can be implemented as a solenoid-operated valve. When such a SPDT valve is not energized (off) its NO port and COM port are connected and the NC port is blocked. In the figures, this unenergized (off) condition is represented by a solid line linking the valve's NO port and COM port, and the non-connected NC port is represented with a dotted line linking the valve's NC port and COM port.
[0312] When electricity is applied the SPDT valve, the NC port and COM port become connected and the NO port becomes blocked. In the figures, this energized (on) condition is represented by a solid line linking the valve's NC port and COM port, and the non-connected NC port is represented with a dotted line linking the valve's NO port and COM port, for example as suggested by selected valves depicted in
[0313] In the following example, the new operation of the system is sequenced in the same five classes of states as the previous two examples. These are depicted in
[0314] The fluidic system used in this example is represented in
[0315] Unit 1 (U.sub.1) valve-1 is used as a fluid input fed by a reagent or fluidic source,
[0316] Unit 4 (U.sub.4) valve-4 is used as a fluid output to feed a reagent or fluidic destination.
[0317] Valves that are involved in an example where fluid flows from port 1 on Unit 1 to port 4 on Unit 4 are T1, U.sub.1 valve-7, U.sub.1 valve-1, U.sub.1 valve-4, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-4, U.sub.4 valve-8, and T8.
[0318] The following operational example illustrates a sequence of events that facilitates a fluid flow from U.sub.1 to U.sub.4.
Idle State
[0319] In the idle state, all the valves are turned off, no fluid or solvent is flowing, and no air pressure is applied. Thus, valves T1, U.sub.1 valve-7, U.sub.1 valve-1, U.sub.1 valve-4, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, U.sub.4 valve-4, U.sub.4 valve-8, and T8 are all turned off. The idle state with all the valves turned off involved for this example is represented in
Fluid Flow State
[0320] In the fluid flow state, the fluid flows from one input to an output. In this example, the fluid flows from U.sub.1 valve-1 to U.sub.4 valve-4. Thus, the valves U.sub.1 valve-1 and U.sub.4 valve-4 are turned on while U.sub.1 valve-7, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, and U.sub.4 valve-8 are already on. This allows the fluid to flow from U.sub.1 valve-1 to U.sub.4 valve-4 during a desired period of time or until a desired quantity of fluid is delivered. After the fluid has been delivered from U.sub.1 valve-1 to U.sub.4 valve-4, the U.sub.1 valve-1 valve is turned off.
The fluid flow state is represented in detail with the fluid visibly flowing from U.sub.1 valve-1 to U.sub.4 valve-4 in
Gas-Pressure Clearing State
[0321] In the gas-pressure clearing state, the gas pressure pushes further the remaining fluid present in the fluidic pathways into the output. In this particular example, the remaining fluid in the fluidic pathways is pushed into the output U.sub.4 valve-4. The T1 valve needs to remain turned off so that the NO and COM are connected. U.sub.1 valve-7 needs to be turned off so that the NO is connected to the COM of T1. U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, and U.sub.4 valve-4 remain turned on. The gas-pressure clearing state is represented in detail with the gas moving represented with a dashed line in
Solvent-Based Cleaning State
[0322] In the solvent-based cleaning state, the fluidic pathways are cleaned by allowing a cleaning solvent to flow into the fluidic pathways which is then dumped into the output U.sub.1 valve-4, here used as a drain. The next fluid burst or segment flowing from a new input to a new output will flow into clean fluidic pathways without contaminations from the previous fluid flow. In this example, after the gas pressure transports the remaining fluid into U.sub.4 valve-4 output, the valve U.sub.4 valve-4 is turned off so that the solvent-based cleaning stage can begin. In order for the CLN to flow the U.sub.4 valve-8 valve needs to be turned off to connect the NO and COM together and U.sub.1 valve-7 remains turned off. T1 and T8 are turned on so that NC is connected with COM. The valves U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, and U.sub.4 valve-8 are all on. U.sub.1 valve-4 used as a drain in this example is also turned on. The solvent-based cleaning state is represented in detail with the cleaning fluid flowing in both directions in
Gas-Based Drying State
[0323] In the gas-based drying state, applied gas pressure is used to push and dry the remaining cleaning solvent into the drain U.sub.1 valve-4 as well as drying any volatile solvent components. In order to let the drying gas (AP) flow, T1 and T8 valve needs to be turned off again so that the NO and COM are connected again. The valves U.sub.1 valve-7, U.sub.1 valve-4, U.sub.1 valve-8, U.sub.2 valve-7, U.sub.2 valve-8, U.sub.3 valve-7, U.sub.3 valve-8, U.sub.4 valve-7, and U.sub.4 valve-8 remain all turned on. The gas-based drying state is represented in detail with the air flowing in both directions in
5. Valve-Chaperoned T-Topology Junction and Triangle-Topology Valve-Cluster Implementations and Operations
[0324]
[0325] Depending on the type of valve cluster, the intervening valve-cluster arrangements can perform at least some or all of several types of functions and/or serve to represent functional entities: [0326] The intervening valve-cluster arrangements can be or can represent intervening taps on a microfluidic bus; [0327] The intervening valve-cluster arrangements can serve as transfer points for applying gas pressure for propelling a fluid through valves and conduits. Since gas compresses, long transmission paths require increasing amounts of gas pumping and can slow down the rate of transfer; [0328] The intervening valve-cluster arrangements can also be used to introduce clearing gases, cleaning solvent, and drying gases useful for reusable, reconfigurable, and/or decontamination of recyclable or safe-disposal microfluidic devices; [0329] As will be shown, the intervening valve-cluster arrangements can be used to return unused materials abandoned in conduits and valve passages along a transmission path back to their source; [0330] As will be shown, the intervening valve-cluster arrangements can be used to create small-volume bursts of fluid.
[0331]
[0332] The example arrangements shown in
[0333] In overview: [0334] The example valve-chaperoned T-topology arrangement shown in
[0337]
[0338] The example arrangement shown in
[0339] The example arrangement shown in
[0340] The example arrangement shown in
[0341] Accordingly, the example triangle-topology valve-cluster arrangement shown in
5.1 Example Valve-Chaperoned T-Topology Implementations and Operations
[0342]
[0343]
[0344]
[0345]
[0346]
[0347]
[0348]
[0349]
[0350]
[0351] Alternatively, the sequences described above can be modified so that pressure passage 6 provides a vacuum draw at Chamber 2, drawing fluid into Chamber 2 from Chamber 1 through the transport line with pressure passages 1 through 5 sequentially providing incoming-pressure venting.
[0352] Alternatively, the sequences described above can be modified so that is applied as presented in the example and additionally pressure passage 6 provides a vacuum draw at Chamber 2, drawing fluid into Chamber 2 from Chamber 1 through the transport line with pressure passages 1 through 5 sequentially providing incoming-pressure.
5.2 Example Triangular-Topology Valve-Cluster Implementations and Operations
[0353] As mentioned, the triangle-topology valve-cluster provides better contamination performance and better facilitates various types of clearing, cleaning, and drying capabilities that simple passive T-topology junctions or valve-chaperoned T-topology junctions.
[0354] In this section example operation and features are presented for the example valve-chaperoned T-topology implementation, incorporating multiple instances of the valve cluster depicted in
[0355]
[0356]
[0357]
[0358]
[0359]
[0360]
[0361] Further as to
[0362]
[0363] Further as to
[0364]
[0365] Further as to
[0366]
[0367] Further as to
[0368] Alternatively, the sequences described above can be modified so that pressure passage 6 provides a vacuum draw at Chamber 2, drawing fluid into Chamber 2 from Chamber 1 through the transport line with pressure passages 1 through 5 sequentially providing incoming-pressure venting.
[0369] Alternatively, the sequences described above can be modified so that is applied as presented in the example and additionally pressure passage 6 provides a vacuum draw at Chamber 2, drawing fluid into Chamber 2 from Chamber 1 through the transport line with pressure passages 1 through 5 sequentially providing incoming-pressure.
5.3 Clearing, Cleaning, and Drying Operations Using the Triangular-Topology Valve-Cluster
[0370] In addition to the highly-controlled bi-directional transport capabilities illustrated above in part with the examples provided in Section 4.2, as discussed in the introduction to this section (Section 4) the example triangle-topology valve-cluster arrangement of
[0371] As discussed in the introduction to this section (Section 4), the example valve-state arrangement depicted in the top portion of
[0374] The example arrangement shown in
[0377] Thus, any material left in the interconnection passage between valve A and valve B from an earlier transport flow is inherently cleared, cleaned, and dried employing the example triangle-topology valve-cluster arrangement of
[0378] Further, by first passing a fluid flow through a triangle-topology valve-cluster arrangement of
[0379] Yet further, as discussed in of Section 4.2 with respect to the operation of the portion of the example arrangement to the right and above the long dashed angular dividing line in
[0380] Additionally, the example triangle-topology valve-cluster arrangement of
6. Process-Step and Configuration Representations, Commands, Data Structures and Specification Files
[0381] For a reconfigurable system, such as the reconfigurable microfluidics systems describe in New Renaissance Institute U.S. Pat. No. 9,636,655 and pending U.S. patent application Ser. No. 15/499,767, the designated configuration involves setting the states of valves and potentially the states and/or operating parameters of other elements in the system (for example as sensors, reaction chambers, pump directions, etc.). When system configuration and reconfiguration are placed under computer control, each configuration thus is equivalent to a list or list of lists (more generally, a list or array) of state values and/or parameter values.
[0382] Since systems such as those discussed in at least U.S. Pat. No. 9,636,655 and pending U.S. patent application Ser. No. 15/499,767 can be configured under software control, the resulting system is regarded as a software-configurable system or software-reconfigurable system. In more rigorous treatments or semantics, a system that is locked into a specific unchanging configuration for its operational lifetime can be more precisely regarded as a software-configurable system, while a system whose configuration is changed at least once during its operational lifetime can be more precisely regarded as a software-reconfigurable system. Importantly it is also noted that fixing states of specific valves (for the duration of a process interval) in New Renaissance Institute microfluidic bus U.S. Pat. Nos. 8,032,258, 8,606,414, and 8,812,163 so as to define associated fixed pathways through a microfluidic bus can also be explicitly used to effectively define and invoke a particular system configuration under software control.
[0383] Similarly, system operation while in any given configuration can also involve a sequence of setting or changing the states of valves and potentially the states and/or operating parameters of other elements in the system (for example as sensors, reaction chambers, pump directions, etc.). Correspondingly, when system operation is placed under computer control, each actionable process operating step enacted under computer control is thus also equivalent to a list or list of lists (more generally, a list or array) of state values and/or parameter values.
[0384] The invention provides for the use of process operating step representations information, for example contained within process-specification files, to specify and/or store an actionable process step.
[0385] Similarly, the invention provides for the use of configuration representation information, for example contained within configuration-specification files, to specify and/or store a representation system configuration.
[0386] As a second example, the reader is first referred to the control (and as will be discussed later, script-authoring) example process step or configuration set by an interactive user interface depicted in
[0391] As an example representation of this second process step or configuration as an array of (state and/or parameter) values, contained within a specification file for this scenario is the list of lists (or equivalently, the nested array) of: {1,1,1,1,1,1},{1,1,1,1,1,0},{0,1,1,0,1,1},{0,0,0,1,1,1}
where 1 designates an enabled valve and 0 designates a disabled valve.
[0392] A third example associated with the selections depicted in
[0397] As an example representation of this third process step or configuration as an array of (state and/or parameter) values, contained within a specification file for this scenario is the list of lists (or equivalently, the nested array) of: {1,1,1,1,1,1},{1,1,1,1,1,0},{0,1,1,0,1,1},{0,0,0,1,1,1}
where 1 designates an enabled input valve, 1 designates an enabled output valve, and 0 designates a disabled valve.
[0398] The above are simple examples of process step or configuration representations, process step or configuration data, and specification file contents, but the invention provides for process step or configuration capabilities of far greater range, complexity, scope, and diversity. For example, elements and/or interconnections among elements in a complex system such as that depicted in
[0399] It is noted that the list of lists (or equivalently, the nested arrays) considered above could be of the entire system, or of only portions of the entire system. The latter are useful in multithreaded operations, however resource allocation and other provisions can in some situations be necessary; these topics are considered in New Renaissance Institute U.S. Pat. No. 9,636,655 and U.S. patent application Ser. No. 15/499,767.
7. Macros via Logic Electronics, Firmware, and/or Software has Higher-Level States and Control Messages
[0400] Much or all of the operation of the valve systems discussed in the present patent application involve choreographed and/or feedback-control of groups of a large number of valves and other entities (for example pumps, mixers, electrically controlled photochemical reactors, etc.), and these controlled operations can be implemented through the execution of computational algorithms.
[0401] In some implementations it can be useful and most flexible to provide direct controllability of each valve, and to provide each valve with its own unique address.
[0402] In some implementations it can be useful (for example faster performance, simplified programing, etc.) to provide simultaneous-event macro controllability for operating groups of valves at the same time. In various implementations, such macro-based control could be implemented in software, firmware, and/or hard-wired logic.
[0403] Note that the list of lists (or equivalently, nested array) considered in Section 5 could in some constructions be considered a simultaneous-event macro.
[0404] In some implementations it can be useful (for example faster performance, simplified programing, etc.) to provide sequential-event macro controllability for operating groups of valves that involve a time-defined sequence. In various implementations, such macro-based control could also be implemented in software, firmware, and/or hard-wired logic.
[0405] Note that a time-scripted list of the list of lists (or equivalently, nested array) considered in Section 5 could in some constructions be considered a sequential-event macro. (Such time-scripted list of Section 5 lists of lists (or equivalently, nested arrays) will be defined in the next section as a type of script.)
[0406] In implementations involving one or both of simultaneous-event macro control or sequential-event macro control, it can additionally be useful (for example faster performance, simplified programing, etc.) to provide conditional inputs or parameters for the macros. Such implementations involving macro control for operating groups of valves can include provisions for at least one parameter that can affect the behavior of the group operation by a macro.
[0407] In various implementations, such conditional-macro and/or parameterized-macro control could also be implemented in software, firmware, and/or hard-wired logic.
[0408] Any of the above can be used individually or in combination. Additional extensions and variations along these lines are anticipated and provided for by the invention.
8. Scripts
[0409] Regarding at least multi-step microfluidic control software, a descriptor for the outcome of such multi-step control software algorithm (or an individual thread or component co-executing process) can be represented in full non-ambiguous detail in the form of an adequately-specified flow chart (mathematically equivalent to an annotated graph) or an adequately-specified conditional event list or script. These will be discussed in this section.
[0410] For a given process-step or configuration, valves and other elements can be put into various states (for example off/on, non-energized/energized SPDT valves, pump direction, etc.) and/or put into other types of non-binary parameterized operation (for example pump speed, illumination intensity, operating temperature, etc.) under software control.
[0411] The system can be stepped through a sequence of steps comprising one or more such modes by listing the modes into an array or file which operates as a time-driven, event driven, or combined list of configurations. This will be referred to as a script.
[0412] Such a script can be organized, structured, and/or populated in various ways. As a few examples of this: [0413] A script can be structured so that the steps are read out and enacted by the system, one after another, at periodic intervals. This type of script can be referred to as time-driven or clock-driven; [0414] A script can be structured so that the steps are read out and enacted by the system, one after another, for a specific time interval provided in the script for that specific step. This type of script can be referred to as duration-specified; [0415] A script can be structured so that the steps are read out and enacted by the system, one after another, after a specific time delay provided in the script for that specific step. This type of script can be referred to as delay-specified; [0416] A script can be structured so that at least actions taken in at least some of the steps depend on specific conditions, for example ranges of sensor values and/or the value of one or more of outside control signal(s), user interface events, and user interface settings. This type of script, or aspect of a script, can be referred to as conditional; [0417] A script can be structured to be purely time-driven, purely event-driven, or a combination of time-driven and event-driven aspects;
[0418] Many other types of scripts and script features of various levels of sophistication are of course possible and are anticipated and provided for in the invention. For example, the script can comprise conditional-logic statements, temporal-logic statements, calculation statements, etc. As another example, a script can comprise a multithreaded algorithm, real-time regulatory numerical control calculations, etc. For example [0419] A script can be hierarchical in structure (for example, include subroutines, procedure calls, etc; [0420] A script can specify states or parameters for specific elements and/or can specify states or parameters for macros defined above [0421] Employing various approaches, a script could be regarded as a thread in a parallel or multitask system; alternatively, a script could be defined in a way to include multiple threads involved in the operation of a parallel or multitask system. Additionally, special multi-thread and parallel execution operations such as thread-split, thread rejoin/merge, parallel-Do, etc. can be included. The invention provides for scripts to include configuration information. Thus such a configuration-script can be created that includes conditional and/or time-driven reconfiguration events.
[0422] As an early step towards a standardizable framework for multi-step microfluidic control software, the present invention employs the use of scripts for representing multi-step microfluidic control software. The invention further provides an example script authoring tool. The invention further provides example (timer-including) script execution system for control outputs that can optionally include external control inputs and sensing inputs; one of these examples is configured to operate an example simulation, and the other is configured to operate one or more actual microfluidic device(s) and/or emulating prototypes.
9. Script Execution and Associated Control of Hardware and Software Systems
[0423] Scripts can be enacted or executed by an entity acting as a script reader. Such a script reader produces a temporal sequence of control signals or control messages directed to one or more target systems, for example a microfluidic system, a prototype fluidic system, an emulation of a fluidic system, a model of a fluidic system, a simulation of a fluidic system, a status-depicting visualization of a fluidic system, etc. as suggested in
[0424] In some implementations, such a script reader can be additionally arranged to receive one or more of incoming control signals from a user interface, incoming actual sensor and status information from an actively-operating microfluidic device, incoming actual sensor and status information from an actively-operating microfluidic emulation system, incoming control signals from a simulation, incoming control signals from another executing process, or incoming control signals from other hardware or software entities.
[0425] In example implementations, a script reader can be formally interfaced to one or more of these commercial software systems, languages, and protocols:
[0426] Lab View
[0427] Mathematica
[0428] MatLab
[0429] I.sup.2C
[0430] Serial Peripheral Interface (SPI)
[0431] Dallas One-Wire
9.1 Interfacing with Microfluidic Devices and Systems and Their Control from Control Scripts
[0432] The invention provides for interfacing with a script reader and for the control of individual microfluidic devices from the execution of scripts. Such arrangements are suggested in
[0433] The script reader executes a provided script that is compatible with the design, features, control message set, and any sensing message set associated with the particular microfluidic device to be interfaced.
[0434] Interfacing with and operation of software-controlled microfluidic devices and system technologies are discussed in at least the following New Renaissance Institute U.S. Pat. No. 8,396,701 Software Systems for Development, Control, Programming, Simulation, and Emulation of Fixed and Reconfigurable Lab-on-a-Chip Devices.
[0435] In an aspect of the invention, the script reader can be responsive to resource allocations. In another aspect of the invention, script reader can provide resource allocations. In yet another aspect of the invention, the script reader produces temporal sequences of control signals for operating microfluidic devices, emulation hardware, simulation software, process visualization, etc. In still another aspect of the invention, the script reader can be responsive to real-time regulatory control calculations.
9.2 Visualization Systems and Their Control from Control Scripts
[0436] The invention provides for interfacing with the same script reader and for the control of visualization systems from the execution of scripts. Such arrangements are suggested in
[0437] The script reader executes a provided script that is compatible with the design, features, control message set, and any sensing message set associated with the particular microfluidic device to be visualized.
[0438] Visualization graphics can be abstract, schematic, representational, or combinations of these. Visualizations of fluid flows and fluid accumulations that respond directly to only control messages from the script reader can often be stateless (memoryless) and avoid calculations, but for all but the simplest visualizations some state and some calculation is needed to graphically convey for example the evolving locations of the heads and tails of fluid flows, the amount of fluids in reaction chambers and reservoirs after flow events, etc.
[0439] In one implementation, the visualization system directly accepts and directly renders from the control message set that would be used to control the particular microfluidic device to be visualized. In another implementation, the visualization system receives translated control message produced by a message translator which in turn directly accepts and renders from the control message set that would be used to control the particular microfluidic device to be visualized.
[0440] Additionally: [0441] the visualization system can be arranged to receive actual sensor and status information from an actual microfluidic device that can be operated in parallel from very same control messages, so that the visualization system and actual microfluidic device are simultaneously controlled by the output from the script reader; [0442] the visualization system can be arranged to receive simulated sensor and status information from a simulation of the same microfluidic device that the visualization system represents, with the simulation system and visualization system operated in parallel from very same control messages, so that the visualization system and simulation system are simultaneously controlled by the output from the script reader. [0443] the visualization system can be arranged to receive emulated sensor and status information from a hardware emulation of the same microfluidic device that the visualization system represents, with the emulation system and visualization system operated in parallel from very same control messages, so that the visualization system and emulation system are simultaneously controlled by the output from the script reader. [0444] Any two or more of these arrangements can also be combined in various ways; for example part of a process could be emulated and another part could be simultaneously simulated.
[0445] Functional interfacing with and operation of rendered visualizations of software-controlled microfluidic devices and system technologies are discussed in at least New Renaissance Institute U.S. Pat. No. 8,396,701 Software Systems for Development, Control, Programming, Simulation, and Emulation of Fixed and Reconfigurable Lab-on-a-Chip Devices.
9.3 Simulation Systems and Their Control from Control Scripts
[0446] The invention provides for interfacing with the same script reader and for the control of simulation systems from the execution of scripts. Such arrangements are suggested in
[0447] The script reader executes a provided script that is compatible with the design, features, control message set, and any sensing message set associated with the particular microfluidic device to be simulated.
[0448] In one implementation, the simulation system directly accepts and directly renders from the control message set that would be used to control the particular microfluidic device to be simulated. In another implementation, the simulation system receives translated control message produced by a message translator which in turn directly accepts and renders from the control message set that would be used to control the particular microfluidic device to be simulated.
[0449] Additionally: [0450] the simulation system can be arranged to receive actual sensor and status information from an actual microfluidic device that can be operated in parallel from very same control messages, so that the simulation system and actual microfluidic device are simultaneously controlled by the output from the script reader; [0451] the simulation system can be arranged to receive emulated sensor and status information from a hardware emulation of the same microfluidic device that the simulation system represents, with the emulation system and simulation system operated in parallel from very same control messages, so that the simulation system and emulation system are simultaneously controlled by the output from the script reader. [0452] the simulation system can be arranged to provide simulated sensor and status information to a conditional software and macros provided by the output from the script reader; [0453] the simulation system can be arranged to provide simulated sensor and status information to a visualization of the same microfluidic device that the visualization system represents, with the simulation system and visualization system operated in parallel from very same control messages, so that the visualization system and simulation system are simultaneously controlled by the output from the script reader. [0454] Any two or more of these arrangements can also be combined in various ways; for example, part of a process could be emulated and another part could be simultaneously simulated.
[0455] Functional interfacing with and operation of simulations of software-controlled microfluidic devices and system technologies are discussed in at least New Renaissance Institute U.S. Pat. No. 8,396,701 Software Systems for Development, Control, Programming, Simulation, and Emulation of Fixed and Reconfigurable Lab-on-a-Chip Devices.
9.4 Interfacing with Emulation Systems and Their Control from Control Scripts
[0456] The invention provides for interfacing with the same script reader and for the control of fluidic emulation systems from the execution of scripts. Such arrangements are suggested in
[0457] Software-controlled emulation of microfluidic system technologies are discussed in at least the following New Renaissance Institute U.S. patents and Applications: [0458] U.S. Pat. No. 8,560,130 Software-Controlled Lab-on-a-Chip Emulation [0459] U.S. Pat. No. 9,802,190 Modular computer-controlled multistep chemical processing system for use in laboratory automation or chemical production spanning a plurality of scales [0460] U.S. Pat. No. 8,594,848 Reconfigurable Chemical Process Systems [0461] U.S. patent application Ser. No. 15/717,024 Modular Computer-Controlled Multistep Chemical Processing System for Use in Laboratory Automation or Chemical Production (PGP 2018/0015463) [0462] U.S. Pat. No. 8,396,701 Software Systems for Development, Control, Programming, Simulation, and Emulation of Fixed and Reconfigurable Lab-on-a-Chip Devices.
[0463] The present invention provides for interfacing with an emulation system configured to emulate another fluidic system. In some embodiments the emulating system can comprise sensors or other measuring instruments. In some embodiments the emulating system can interface with sensors or other measuring instruments. In some embodiments, signals or measurements from sensors or other measuring instruments comprised by and/or interfacing with the emulating system can provided to a user interface. In some embodiments, signals or measurements from sensors or other measuring instruments comprised by and/or interfacing with the emulating system can recorded and stored, for example in the form of a recorded and/or stored in a file, for example, as an event log file, data-log file, data stream file, recorded animation graphic, etc.
[0464] Additionally: [0465] The emulation system can be arranged to receive actual sensor and status information from an actual microfluidic device that can be operated in parallel from very same control messages, so that the simulation system and actual microfluidic device are simultaneously controlled by the output from the script reader; [0466] the emulation system can be arranged to receive emulated sensor and status information from a simulation of the same microfluidic device that the emulation system represents, with the emulation system and simulation system operated in parallel from very same control messages, so that the simulation system and emulation system are simultaneously controlled by the output from the script reader. [0467] The emulation system can be arranged to provide measured sensor and status information to a conditional software and macros provided by the output from the script reader; [0468] The emulation system can be arranged to provide measured sensor and status information to a visualization of the same microfluidic device that the visualization system represents, with the simulation system and visualization system operated in parallel from very same control messages, so that the emulation system and simulation system are simultaneously controlled by the output from the script reader. [0469] Any two or more of these arrangements can also be combined in various ways; for example part of a process could be emulated and another part could be simultaneously simulated.
[0470] Further along the same lines of consideration: [0471] In some embodiments, the invention provides for both interfacing with an emulation system and a model and/or numerical simulation. [0472] In some embodiments, part of a fluidic system under design, review, or analysis can be partially emulated and partially modeled and/or numerically simulated. [0473] In some embodiments, part of a fluidic system under design, review, or analysis can be simultaneously emulated and modeled and/or numerically simulated.
[0474] Functional interfacing with and operation of emulations of software-controlled microfluidic devices and system technologies are discussed in at least New Renaissance Institute U.S. Pat. No. 8,396,701 Software Systems for Development, Control, Programming, Simulation, and Emulation of Fixed and Reconfigurable Lab-on-a-Chip Devices.
9.5 Interfacing with Combinations of Two or More of Microfluidic Devices, Emulation Systems, and Simulation Systems and their Control from Shared Control Scripts
[0475] The invention provides for interfacing with combinations of two or more of microfluidic devices, emulation systems, visualization systems, and/or simulation systems and their control from shared control scripts as suggested in
10. Example Combined Authoring, Editing, and Visualization Tools and Example User Experiences
[0476] The invention provides for authoring tools for the creation of scripts and editing tools for the modification of scripts. The invention additionally provides for models and/or numerical simulation tools for examining and/or confirming aspects of the execution of scripts. In some embodiments the outputs of a model and/or numerical simulation can drive real-time graphical visualizations, auditory indications, etc. In some embodiments the outputs of a model and/or numerical simulation can be recorded and/or stored in a file, for example, as an event log file, data-log file, data stream file, recorded animation graphic, etc. In some embodiments, information store in a file can additionally or alternately include:
[0477] measurements;
[0478] calculated qualities;
[0479] model outputs;
[0480] simulation outputs;
[0481] interpreted data;
[0482] user annotations.
[0483] The invention further provides for authoring tools and editing tools to comprise a status-depicting graphic or visualization of a fluidic system for examining and/or confirming aspects of the execution of scripts. The status-depicting graphic can be driven only from the script, or in some embodiments comprise graphic representation of one or more of:
[0484] measurements;
[0485] calculated qualities;
[0486] model outputs;
[0487] simulation outputs;
[0488] interpreted data;
[0489] user annotations.
[0490]
[0491]
[0492] Additionally, the example user interface and user experiences depicted in
10.1 First Example Temporal and Event-Driven Control Sequence Script Authoring and Editing Tools
[0493]
[0494]
[0495]
[0496]
[0497]
[0498]
[0499]
[0500]
[0501]
[0502]
[0503]
[0504] Step 1 duration: 0 seconds
[0505] Step 2 duration: 0.54 seconds
[0506] Step 3 duration: 0.8 seconds
[0507] Step 4 duration: 2.7 seconds
[0508] Step 5 duration: 4.22 seconds
[0509] Step 6 duration: 3.9 seconds
[0510] Step 7 duration: 4.72 seconds.
[0511] The above provides only an example user experience; many variations in actions, results, display, format, appearance, etc. are of course possible and are provided for by the invention.
[0512] Although the examples shown above are entirely time-driven, extensions can be provided to respond to sensor measurements, user interface controls, analog control system outputs, and other input stimulus that can be used for event-driven process control. Additionally, scripts can be supplemented to invoke function calls to external software process. Further, scripts can also be supplemented (as mentioned above) to receive outputs and interrupts from external software process.
[0513] In example implementations, the authoring and editing tools and/or script readers can be formally interfaced to one or more of these commercial software systems, languages, and protocols:
[0514] Lab View
[0515] Mathematica
[0516] MatLab
[0517] I.sup.2C
[0518] Serial Peripheral Interface (SPI)
[0519] Dallas One-Wire
10.2 Second Example Temporal and Event-Driven Control Sequence Scripting, Functional Libraries, and Script Creation Tools Implementations
[0520]
[0521]
[0522]
[0523]
[0524] Additionally,
[0525]
[0526] Note further in
[0527]
[0528]
[0529]
[0530]
[0531] The above provides only an example user experience; many variations in actions, results, display, format, appearance, etc. are of course possible and are provided for by the invention.
INVENTOR ATTRIBUTIONS
[0532] Inventor Ying Chen worked on prototype construction and on extensive coding of the simulator graphics rendering software using Mathematica. Inventors Catherine Luk and Sulu Lalchandani worked on prototype construction, and the engineering, scripting, and documentation of the detailed operational examples provided in this patent specification. All other aspects of the invention are due to the first-named inventor.
CLOSING REMARKS
[0533] The terms certain embodiments, an embodiment, embodiment, embodiments, the embodiment, the embodiments, one or more embodiments, some embodiments, and one embodiment mean one or more (but not all) embodiments unless expressly specified otherwise. The terms including, comprising, having and variations thereof mean including but not limited to, unless expressly specified otherwise. The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise. The terms a, an and the mean one or more, unless expressly specified otherwise.
[0534] The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.
[0535] While the invention has been described in detail with reference to used embodiments, various modifications within the scope of the invention will be apparent to those of ordinary skill in this technological field. It is to be appreciated that features described with respect to one embodiment typically can be applied to other embodiments.
[0536] The invention can be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiments are therefore to be, considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
[0537] Although exemplary embodiments have been provided in detail, various changes, substitutions and alternations could be made thereto without departing from spirit and scope of the disclosed subject matter as defined by the appended claims. Variations described for the embodiments may be realized in any combination desirable for each particular application. Thus particular limitations and embodiment enhancements described herein, which may have particular advantages to a particular application, need not be used for all applications. Also, not all limitations need be implemented in methods, systems, and apparatuses including one or more concepts described with relation to the provided embodiments. Therefore, the invention is properly to be construed with reference to the claims.
[0538] Further, a program can be stored and provided to a computer using any type of non-transitory computer readable media. Non-transitory computer readable media may include any type of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g., magneto-optical disks), CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.). The program may be also provided to a computer using any type of transitory computer readable media. Examples of transitory computer readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer readable media can provide the program to a computer via a wired communication line (e.g., electric wires, and optical fibers) or a wireless communication line.