Skip to main content
Proceedings of the National Academy of Sciences of the United States of America logoLink to Proceedings of the National Academy of Sciences of the United States of America
. 2001 Mar 13;98(6):2961–2966. doi: 10.1073/pnas.061014198

Using three-dimensional microfluidic networks for solving computationally hard problems

Daniel T Chiu *, Elena Pezzoli , Hongkai Wu *, Abraham D Stroock *, George M Whitesides *,
PMCID: PMC30589  PMID: 11248014

Abstract

This paper describes the design of a parallel algorithm that uses moving fluids in a three-dimensional microfluidic system to solve a nondeterministically polynomial complete problem (the maximal clique problem) in polynomial time. This algorithm relies on (i) parallel fabrication of the microfluidic system, (ii) parallel searching of all potential solutions by using fluid flow, and (iii) parallel optical readout of all solutions. This algorithm was implemented to solve the maximal clique problem for a simple graph with six vertices. The successful implementation of this algorithm to compute solutions for small-size graphs with fluids in microchannels is not useful, per se, but does suggest broader application for microfluidics in computation and control.


Microfluidic systems are providing the basis for new types of rapid chemical and biological analyses (refs. 13). With the increasing complexity of microfluidic systems, there is also a growing need to carry out relatively complex processes—logic operations, fluidic control, and detection—on the chip. Although these processes can be (and usually are) controlled by electronic systems, it would be more natural and compatible to use the same medium (that is, a fluid) to carry out some or all elements of the required computation and control/decision making. Here, we explore the potential of microfluidic systems in computation by using a representative “hard” problem—a parallel solution of a nondeterministically polynomial (NP) complete problem [the maximal clique problem (MCP)] for a graph with six vertices. This method we describe uses moving fluids to search the parallel branches of a three-dimensional (3D) microfluidic system simultaneously, exploits parallel fabrication of relief patterns by photolithography, and detects solutions in parallel with fluorescence imaging.

Intuitively, a problem is in the class NP (i) if it can be solved only by an algorithm that searches through exponentially many candidate solutions, and (ii) when the correct solution has been identified, verification of the solution can be performed easily (ref. 4). No feasible sequential algorithm is known to solve NP problems. If one can, however, search all candidate solutions simultaneously in parallel, solution of NP problems becomes feasible. The potential for parallel searches is the foundation for interest in DNA-based computation (refs. 58) and in part for interest in quantum computation (refs. 912). In addition to sequence-specific recognition (the basis of DNA computation) and manipulation and resolution of entangled quantum states (the basis for quantum computation), other physical phenomena or systems might also be suited for solving computational problems. In this paper, we demonstrate the use of moving fluids in a microfluidic system to solve an NP complete problem.

Algorithm.

A graph is a set of vertices (dots) connected by a set of edges (lines) (Fig. 1). A clique is a graph such that any two of its vertices are connected by an edge. For a given graph G with n vertices, the MCP asks for the maximum number k, such that G contains a subgraph of k vertices that forms a clique (refs. 4, 7). Fig. 1 shows a graph G with three vertices (n = 3) and three edges (Fig. 1A) and a graph with six vertices (n = 6) and 13 edges (Fig. 1B). In Fig. 1A, the largest clique is {1,2,3} (k = 3), which is the graph itself; in Fig. 1B, the largest clique is {1,3,4,5,6} (k = 5). The naïve way, and more or less the only way, to solve MCPs is to check whether each of all possible subgraphs of G (there are exponentially many) is a clique, then return the size of the biggest subgraph that is a clique. For example, to find the largest clique in Fig. 1 A and B, there are 23 − 4 = 4 and 26 − 7 = 57 subgraphs that must be checked, respectively. We ignore the (n + 1) subgraphs that are trivial: for a graph of size n with 2n subgraphs, there are n subgraphs that contain only one vertex (e.g., {1}, {2}, etc.), plus one subgraph that is empty ({0}).

Figure 1.

Figure 1

Graphs with three (A) and six (B) vertices. The largest subgraph that forms a clique in A is {1,2,3} and in B, {1,3,4,5,6}. We denote these subgraphs with the vertices they contain. For example, {1,3} denotes the subgraph that contains vertices 1 and 3. For simplicity, we use the terms subgraph and subset interchangeably in this paper (formally, a subset is a collection of vertices of a graph G, and a subgraph is a collection of vertices and edges of G).

Our algorithm for solving MCP for a graph G has four steps: (i) for every edge [i,j] (edge that connects vertices i and j) of G, label (tag) every subgraph of G that contains vertices i and j, (ii) for every subgraph, count the number of tags, (iii) decide whether there are enough tags (edges) in each subgraph to be a clique, and (iv) return the size and identity of the largest clique.

Implementation of Algorithm.

To implement this algorithm, we build a generic microfluidic device that can be used to solve the MCP for every graph having the same number of vertices.§ Fig. 2A is a schematic diagram that shows the encoding of a generic three-vertex graph as a set of reservoirs, wells, and channels. Every possible subgraph of a graph with n vertices is represented as a well, and every possible edge is represented as a reservoir (Fig. 2A). Each edge [i,j] (reservoir) is connected, through microfluidic channels, to each subgraph (well) that contains both vertices i and j (Fig. 2A). To avoid the crossover between channels that would occur in a two-dimensional system (as depicted in the two-dimensional diagram of Fig. 2A), we construct a 3D microfluidic system and divide the microfluidic device into layers: each layer contains a reservoir representing one edge, the wells for all of the subgraphs that contain the edge, and the channels that connect these wells to the reservoir. For example, Layer One (Fig. 2B) represents the edge [1,2] and its connections to subgraphs {1,2} and {1,2,3}; Layer Two (Fig. 2C) and Layer Three (Fig. 2D) represent the connections of edges [1,3] and [2,3] to their respective subgraphs. The microfluidic device for solving a graph having three vertices contains four layers (Fig. 2 BE). Quantitation of the connectivity of each subgraph is accomplished by measuring the flow from reservoirs into wells. This quantitation, in turn, is accomplished by using liquid containing a uniform suspension of fluorescent beads. A filter membrane is sandwiched between the top three layers (Fig. 2 BD) and the bottom layer (Fig. 2E) for collection of these fluorescent beads (Fig. 3A).

Figure 2.

Figure 2

(A) A schematic diagram that shows the encoding of a generic three-vertex graph as a set of reservoirs, wells, and channels. Reservoir [i,j] represents the edge that connects the ith vertex to the jth vertex. Each well represents a possible subgraph, and each edge [i,j] (reservoir) is connected by a channel to each subgraph (well) that contains {i,j}. To implement this representation in a microfluidic system, we must avoid crossover between the channels, which is accomplished by dividing the microfluidic network into layers (BE): one layer represents one edge and all subgraphs that contain that edge. For example, Layer One (B) contains the reservoir for the edge [1,2] and the channels connecting it to wells (subgraphs) {1,2} and {1,2,3}, whereas Layer Two (C) and Layer Three (D) contain channels connecting reservoirs (edges) [1,3] and [2,3] to their respective wells (subgraphs). The Bottom Layer collects the fluids from the top three layers into a waste reservoir. Note that the sets {1}, {2}, and {3} do not contain edges, and so do not receive input from any reservoirs; we have omitted the empty set {0} in this figure.

Figure 3.

Figure 3

(A) Schematic of the four-layer microfluidic device used in solving a MCP for a graph having three vertices. This 3D microfluidic system has reservoirswhere we inject a plug of fluorescent beads—to represent all of the possible edges of a graph with three vertices, and wells—where the fluorescent beads are collected by a size filter sandwiched between the bottom and the top three layers—to represent all possible subgraphs of a three-vertex graph. The arrows in the schematic indicate directions of fluid flow; suction (house vacuum) is applied at the waste reservoir to drive fluid flow from the reservoirs representing edges to the waste reservoir. (B and C) Two three-vertex graphs and the expected fluorescence intensity distributions for each graph. The threshold for size three cliques is 3 units of fluorescence, and for size two cliques is 1 unit. The largest clique in B is {1,2,3}, which is the graph itself. In C, the maximal cliques are {1,2} and {2,3}. Note that the positions of the wells (subgraphs) in the x--y plane encode their identity. The presence of {3} between {1,2} and {1,3} accounts for the extra spacing between these two subgraphs (see Fig. 2).

Step 1 of our algorithm is implemented by putting a calibrated number of beads into each reservoir that corresponds to an edge in G. These beads flow from the [i,j] reservoirs (edges) and are split evenly over all of the wells (subgraphs) of G that contain vertices i and j; the presence of the beads in a well corresponding to a subgraph thus indicates the presence of the edge [i,j] in that subgraph. This marking of the subgraphs is parallel, because at each branching point, the moving fluid splits and flows simultaneously into both channels.

To implement step 2, we exploit the parallel nature of optical systems to read out the relative amount of fluorescence in each well simultaneously. For beads with homogeneous size and fluorescence intensity, the measured intensity of fluorescence from a well correlates well with the number of beads in that well. This intensity can also be related to the number of edges in the graph. If a subgraph has k vertices, it must have k(k-1)/2 units of fluorescence to be a clique. Here, we define 1 unit of fluorescence as the intensity observed in the subgraphs (wells) that have only one edge, so the distribution of fluorescence intensity among the wells is self-calibrated.

Step 3 is implemented by setting the appropriate optical detection threshold for each clique size.

Step 4 is implemented by observing the position of the clique along the x and y axes in our microfluidic device (Fig. 3). Subgraphs of the same size occupy the same y position. Therefore, the size of a clique can be easily derived by knowing its relative displacement along the y axis. The position of the subgraph along the x axis codes for its identity.

Fig. 3A is a schematic of the microfluidic device used to solve the MCP for a graph having three vertices. To find the largest clique for the three-vertex graph in Fig. 3B, a plug of buffer containing fluorescent beads is introduced into all three reservoirs representing edges [1,2], [1,3], and [2,3], because all three edges are present in the graph. The fluorescent beads in each layer flow from their reservoir (edge) toward the wells that represent subgraphs that contain that edge. For example, beads in reservoir [1,2] flow toward subgraphs {1,2} and {1,2,3} but not to {1,3} or {2,3}. When the beads in each layer reach the wells, they flow down in the z direction toward the bottom layer. The beads from each layer are then collected by a polycarbonate filter, whereas the buffer solution that carries the beads flows through the filter toward a waste collection reservoir. The number of collected beads in each well (subgraph) varies, depending on the number of reservoirs from which it receives input. For example, the subgraph {1,2} has only 1 unit of fluorescence (from reservoir [1,2]), whereas the subgraph {1,2,3} has 3 units of fluorescence (from reservoir [1,2] [1,3], and [2,3]). The largest clique in Fig. 3B is {1,2,3}, because it satisfies the threshold of 3 units (3[3–1]/2) of fluorescence.

For the graph shown in Fig. 3C, a plug of buffer containing fluorescent beads is introduced only into reservoirs [1,2] and [2,3]. Therefore, subgraphs {1,2} and {2,3} each have 1 unit of fluorescence, whereas {1,3} has no fluorescence and {1,2,3} has 2 units of fluorescence. The largest cliques in this example are {1,2} and {2,3}, because {1,2,3} does not satisfy the threshold of 3 units of fluorescence. Note that the y position of the well representing the subgraph {1,2,3} is shifted up with respect to the other subgraphs of size two.

Materials and Methods

Fabrication of Microfluidic System.

Our method for the fabrication of a 3D microfluidic system has been described in detail elsewhere (refs. 13 and 14). Briefly, the silicon master was fabricated by first spinning a negative photoresist (SU 8–50 or SU 8–100) onto a silicon wafer, which has been cleaned by sonicating in acetone (5 min) then in methanol (5 min) and dried by baking at 180°C (10 min). The photoresist-covered wafer was soft baked (105°C for 15 min) to evaporate the solvent, let cool, then placed under a photomask in a Karl Suss mask-aligner (Zeiss) to expose the photoresist. The exposed photoresist was baked (105°C for 5 min), then developed in propylene glycol methyl ether acetate to create a master with one level of feature. Masters with two levels of feature were fabricated by repeating this procedure with a different photomask. The masters were silanized in vacuo (in a desiccator) with 0.5 ml tridecafluoro-1,1,2,2-tetrahydrooctyl-1-trichlorosilane for 12 h. The silanized masters were then used for molding slabs and membranes of poly(dimethylsiloxane) (PDMS). To fabricate the PDMS membrane, a drop of PDMS prepolymer was sandwiched between the master and a Teflon sheet and was allowed to cure overnight under pressure (10–50 kPa) at 70°C. The cured PDMS membranes and slabs were aligned by using a home-built micromanipulator stage, oxidized in a plasma cleaner (model SP100 Plasma System, Anatech, Alexandria, VA) for 40 sec at 60 W under ≈0.2 Torr (1 torr = 133 Pa) oxygen, and brought into contact to form an irreversible seal. This procedure of alignment, oxidation, and sealing was repeated multiple times for the fabrication of a multilayer microfluidic system.

Chemicals.

Negative photoresists (SU 8–50 and SU 8–100) were obtained from Microlithography Chemical (Newton, MA), propylene glycol methyl ether acetate from Aldrich, tridecafluoro-1,1,2,2-tetrahydrooctyl-1-trichlorosilane from United Chemical Technologies (Bristol, PA), PDMS prepolymer (Sylgard 184) from Dow-Corning, fluorescent nanospheres from Molecular Probes, and silicon wafers from Silicon Sense (Nashua, NH).

Results and Discussion

Experimental Solution to a Three-Vertex Graph.

Fig. 4 A and B show the actual device used to solve the three-vertex graph in Fig. 3B. This 3D microfluidic device is constructed by fabricating, stacking, and sealing thin surface-embossed membranes of PDMS by using rapid prototyping technique (refs. 1316); this technique is especially valuable here, because several iterations of multiple layers of design are required. There are two major motivations for using 3D microfluidic systems for solving MCP: (i) the 3D structure solves all problem of crossover by isolating layers, and (ii) a membrane filter can be sandwiched between the bottom (waste) layer and the top layers for the accumulation of fluorescent beads. In addition, the flow in the z direction through the size filter performs an integration operation for beads from different levels.

Figure 4.

Figure 4

(A and B) Fluorescence photographs of the actual device for solving a three-vertex graph, viewed from the top (A) and side (B). The channels in both A and B were filled with fluorescein for ease of visualization. The whitish membrane below the top three layers is the polycarbonate size filter used to collect the fluorescent beads. The bright circles in A are wells that represent the different subgraphs; the reservoirs that represent edges are to the left of the picture and are not shown. In B, the part of the channels that is directly underneath the membrane was not fluorescent because the membrane blocked the UV light used to excite fluorescence. (C) Plot of the fluorescence intensities obtained experimentally for the input graph shown in the inset. The largest clique in this graph is {1,2,3}.

Fig. 4C shows a plot of the experimentally obtained fluorescence intensity for the three-vertex graph shown in Fig. 3B. The Inset plots the fluorescence intensity for each of the subgraphs, {1,2}, {1,3}, {2,3}, and {1,2,3}. The observed fluorescence intensities match the expected ones well; the intensity of fluorescence for {1,2,3} is exactly three times that for the two-vertex subgraphs.

The accurate accounting of the contributions to each well (subgraph) from the appropriate reservoirs (edges) relies critically on the ability of the multichannel structure to divide incoming flows without bias. This even splitting is accomplished by ensuring that, at each junction, the pressure drop along the two branches is identical. Two geometrical factors affect this pressure difference, the cross section of the channels and the total length of channels that make up the different paths. The cross section of the channels is very homogeneous across a layer, because spin coating—the step in rapid prototyping that determines this thickness—results in constant resist thickness across a wafer. The length of the channels between source and reservoir in each layer varies substantially (Fig. 2), because wells that code for large subgraphs are further from the reservoirs than are wells of small subgraphs. We compensate exactly for this difference in length, however, by designing a channel system in the very bottom (waste) layer (Fig. 2E) such that the channels in this layer make the distance from reservoir to waste the same for all channels. Because both the cross section and the total length of each channel pathway from reservoir to waste are the same, and because the pressure that drives flow is applied across this path, flow rates in each channel are indistinguishable.

Experimental Solution to a Six-Vertex Graph.

Fig. 5 B and C show the solution to the six-vertex MCP in Fig. 1B; to solve a generic six-vertex MCP, we need 15 “top” layers (layers containing reservoirs and splitting channels), one filter membrane, and one bottom layer (to connect the vertical channels to the membrane and the channels leading to waste). The design of one layer is shown in Fig. 5A; the design of the other layers is shown in Fig. 7, which is published as supplemental data on the PNAS web site, www.pnas.org. In general, for a graph with n vertices, we need [n(n-1)]/2 layers, that is, one for each possible edge. To fabricate the device for solving a graph with six vertices, we can stack all 16 layers ((6(6–1)/2] + 1), as we did for the three-vertex MCP. Alternatively, we can fabricate each layer individually by sealing a filter membrane between one of the top layers and a copy of the bottom layer; this approach results in the fabrication of 15 independent microfluidic systems, with each system containing one top layer, one filter membrane, and one bottom layer. Instead of using the z-direction fluid flow for summing the beads from each layer, we can optically integrate (parallel) the fluorescence intensities from each layer. We demonstrate this latter approach for solving the graphs in Fig. 5.

Figure 5.

Figure 5

(A) The design of Layer One of the microfluidic device used for solving a six-vertex MCP; the other 15 layers are shown in Fig. 7. (B) Fluorescence micrograph showing integrated fluorescence intensities for all subgraphs of the six-vertex graph depicted in the Inset. Note that all subgraphs with two vertices are along row y2, three vertices along row y3, … , and six vertices along row y6. (C) The corresponding fluorescence intensity plot for all subgraphs. Row y1 corresponds to subgraphs having only one vertex (no edges), and is omitted in C. The largest clique that reaches threshold is {1,3,4,5,6}, colored black in C.

Fig. 5B shows the optically integrated image of all 15 layers. Six sets of wells (subgraphs) are displaced from each other along the y axis, y1–y6, which correspond to subgraphs of sizes 1 to 6. Fig. 5C plots the fluorescence intensities of the sets y2–y6. Subgraphs of size 1 (y1) are trivial solutions and do not contain any fluorescent beads because they have no edges. The threshold criterion in Fig. 5 is identical to that in Fig. 4C, that is, subgraphs with k vertices must have k (k-1)/2 units of fluorescence to be cliques. Using this criterion, we see that the largest subgraph that reaches threshold is {1,3,4,5,6}. To account for errors, we can use a more relaxed criterion. For a subgraph of size k, we might set a threshold halfway between the intensities expected for a k clique and a k-1 clique. To satisfy this threshold, subgraphs of size k must have [(k-1)(k-2)/2 + (k-1)/2] units of fluorescence intensities. The microfluidic device we used to solve MCP for a graph of size n can also be used to solve any MCP of size less than n. Fig. 6 presents solutions to the five-vertex MCP solved by the same device as that used for the graph in Fig. 5B. The largest cliques for this graph are {1,3,4} and {3,4,5}.

Figure 6.

Figure 6

Micrograph (A) and intensity plot (B) of solutions to the five-vertex clique problem shown in the Inset in A. The largest cliques are {1,3,4} and {3,4,5}.

The microfluidic system we described for solving MCP is an analog computation device. Two potential sources of error in our microfluidic computer are: (i) biased splitting of fluorescent beads at each channel branching, and (ii) misalignment between layers that results in error in the integrated fluorescence intensities. For the six-vertex MCP we solved, we did not detect deviations in fluorescence intensities from the expected values. If we were to use a very small number of beads, however, we might encounter errors associated with statistical fluctuations in the number of beads that distribute between channels at branch points. To overcome errors caused by uneven splitting of beads, we could implement an error-correction step before integrating the intensities from each layer: all fluorescence readings above a certain fixed threshold would be reset to 1 unit of fluorescence, and all readings below this threshold would be reset to zero. In effect, this procedure would digitize the fluorescence readings from each layer.

Misalignment between layers is a more serious problem. The main cause of misalignment in our system is differential shrinkage of PDMS in different layers during fabrication (probably reflecting small differences in concentrations of crosslinks formed). We solved this problem, in part, by fabricating all layers by using exactly the same procedures, that is, by using the same amount of catalyst for polymerization, by mixing components carefully, and by curing at the same temperature. Use of a hard nonelastomeric material like silicon would eliminate or greatly alleviate this shrinkage problem but would make the fabrication more complex in other ways. Fabrication in PDMS is especially appropriate in this study, which focuses on proof of concept.

Conclusions

The strength of this microfluidic system as an analog computational device is its high parallelism. Its weakness is the exponential increase in its physical size with the number of vertices. This space–time tradeoff is reminiscent of the limitations of using DNA for solving large NP problems (refs. 57). We estimate that the largest graph that might be solved with our algorithm—by using 12-inch wafers (commercially available) and 200-nm channels (within the range of photolithography)—is 20 vertices. If we use space more efficiently by encoding subgraphs in a plane and use the third dimension for fluid flow, we might solve 40-vertex graphs. By using a computer capable of performing 109 operations per second, a 40-vertex graph can be solved in about 20 min, which makes this microfluidic approach (in its current form) impractical to compete with traditional silicon computers for solving large search problems. In comparison to DNA-based computation, this microfluidic system can carry out certain logical operations, such as addition, more naturally. The z-direction flow in the four-layer microfluidic device (Fig. 4) acts as an integrator by adding the beads that arrive at the wells from all of the layers. In contrast, the implementation of an algorithm for DNA-based addition was nontrivial (ref. 8), although a far more direct method for DNA addition has been proposed (ref. 17) and partially implemented (ref. 18).

The algorithm we described here for using fluids to search the parallel architecture of a microfluidic system could also, perhaps, be implemented in a 3D microelectronic circuit. There are, however, several advantages to using microfluidic systems. (i) Fluids can carry fluorescent beads or molecules, thereby making the readout by using parallel optical systems simpler than in microelectronic circuits. (ii) Many different “color” beads/molecules can be used in microfluidic systems, whereas electrons have only one “color”; this feature permits fluidic systems to encode more information than electrical systems. (iii) Microfluidic systems might not require power (our algorithm, for example, can be implemented by using gravity). Advantages of electrical over fluidic systems include ease of use (no clogging of channels) and the high speed at which electrons travel through the circuit (which is important for implementing sequential algorithms). Although clogging is a concern in microfluidic systems, it was not a problem under our experimental conditions, because of the relatively small sizes of the beads used (400 nm or smaller) compared with the widths of the microchannels (50 μm or greater).

Another motivation for using microfluidic-based computation is the possibility of integrating fluidic components for controlling complex chip-based microanalytical devices. In addition, computation by using microfluidic systems are complementary to ones based on biological molecules (e.g., DNA) or coupled chemical reactions (refs. 19 and 20). The wells and channels in our 3D microfluidic system, for example, could compartmentalize and transport molecules and reactions for the construction of a chemical or DNA-based computer.

Supplementary Material

Supplemental Figure

Acknowledgments

This work is supported by Defense Advanced Research Planning Agency/Air Force Research Laboratory/Space and Naval Warfare Systems Command and National Science Foundation Grant ECS-9729405. A.D.S. was supported by National Institutes of Health Molecular Biophysics Training Grant No. 5T32GM08313–10.

Abbreviations

3D

three-dimensional

PDMS

poly(dimethylsiloxane)

NP

nondeterministically polynomial

MCP

maximal clique problem

Footnotes

§

To fabricate each layer of our microfluidic device in a polynomial number of steps, we exploit the ability of photolithography (flood illumination) to transfer, in one step, the patterns from a photomask onto a silicon wafer. The photomask for each layer can be generated in parallel. We use the layer [i,j]n, which represents the [i,j] reservoir for a graph having n vertices, to generate the layer [i,j]n+1 in three basic steps: (i) we make two copies of the layer [i,j]n, (ii) we translate one copy with respect to the other along the y axes (this translation encodes the size of all subgraphs (wells) by its y position), and (iii) we connect the reservoirs of the two copies of the [i,j]n layer to a new reservoir, which becomes the [i,j]n+1 reservoir. This iterative algorithm works if jn+1; a similar but different algorithm is used when j = n+1.

The cost of fabricating the chrome masks for the 16-layer device is ≈$500 × 16 = $8,000, with typical turnaround times of a few weeks. In comparison, the transparency masks used in this experiment cost ≈$50 for all 16 layers, with turnaround time of less than 24 h. These issues of time and cost become significant when multiple optimization steps are involved, as is the case in these experiments.

References

  • 1.Burns M A, Johnson B N, Brahmasandra S N, Handique K, Webster J R, Krishnan M, Sammarco T S, Man P M, Jones D, Heldsinger D, et al. Science. 1998;282:484–487. doi: 10.1126/science.282.5388.484. [DOI] [PubMed] [Google Scholar]
  • 2.Kopp M U, de Mello A J, Manz A. Science. 1998;280:1046–1048. doi: 10.1126/science.280.5366.1046. [DOI] [PubMed] [Google Scholar]
  • 3.Kovacs G T A. Micromachined Transducers Sourcebook. New York: WCB/McGraw–Hill; 1998. [Google Scholar]
  • 4.Papadimitriou C H. Computational Complexity. New York: Addison–Wesley; 1994. [Google Scholar]
  • 5.Adleman L M. Science. 1994;266:1021–1024. doi: 10.1126/science.7973651. [DOI] [PubMed] [Google Scholar]
  • 6.Lipton R J. Science. 1995;268:542–545. doi: 10.1126/science.7725098. [DOI] [PubMed] [Google Scholar]
  • 7.Ouyang Q, Kaplan P D, Liu S, Libchaber A. Science. 1997;278:446–449. doi: 10.1126/science.278.5337.446. [DOI] [PubMed] [Google Scholar]
  • 8.Guarnieri F, Fliss M, Bancroft C. Science. 1996;273:220–223. doi: 10.1126/science.273.5272.220. [DOI] [PubMed] [Google Scholar]
  • 9.Shor P. Proceedings of the 35th Annual Symposium on Foundations of Computer Science. Los Alamitos, CA: IEEE Computer Society; 1994. [Google Scholar]
  • 10.Gershenfeld N A, Chuang I L. Science. 1997;275:350–356. doi: 10.1126/science.275.5298.350. [DOI] [PubMed] [Google Scholar]
  • 11.Furusawa A, Serensen J L, Braunstein S L, Fuchs C A, Kimble H J, Polzik E S. Science. 1998;282:706–709. doi: 10.1126/science.282.5389.706. [DOI] [PubMed] [Google Scholar]
  • 12.Chuang I L, Vandersypen L M K, Zhou X, Leung D W, Lloyd S. Nature (London) 1998;393:143–146. [Google Scholar]
  • 13.Anderson J R, Chiu D C, McDonald J C, Jackman R J, Cherniavskaya O, Wu H, Whitesides S, Whitesides G M. Anal Chem. 2000;72:3158–3164. doi: 10.1021/ac9912294. [DOI] [PubMed] [Google Scholar]
  • 14.Chiu D T, Jeon N L, Huang S, Kane R S, Wargo C J, Choi I S, Ingber D E, Whitesides G M. Proc Natl Acad Sci USA. 2000;97:2408–2413. doi: 10.1073/pnas.040562297. . (First Published February 18, 2000; 10.1073/pnas.040562297) [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 15.Duffy D C, McDonald J C, Schueller O J A, Whitesides G M. Anal Chem. 1998;70:4974–4984. doi: 10.1021/ac980656z. [DOI] [PubMed] [Google Scholar]
  • 16.Jo B H, Van Lerberghe L M, Motsegood K M, Beebe D J. J Microelectromech Syst. 2000;9:76–81. [Google Scholar]
  • 17.LaBean T H, Winfree E, Reif J H. In: DNA Based Computers, V, DIMACS Series in Discrete Mathematics and Theoretical Computer Science. Winfree E, editor. Providence, RI: Am. Math. Soc.; 2001. , in press. [Google Scholar]
  • 18.Mao C, LaBean T H, Reif J H, Seeman N C. Nature (London) 2000;407:493–496. doi: 10.1038/35035038. [DOI] [PubMed] [Google Scholar]
  • 19.Hjelmfelt A, Ross J. Physica D. 1995;84:180–193. [Google Scholar]
  • 20.Laplante J P, Pemberton M, Hjelmfelt A, Ross J. J Phys Chem. 1995;99:10063–10065. [Google Scholar]

Associated Data

This section collects any data citations, data availability statements, or supplementary materials included in this article.

Supplementary Materials

Supplemental Figure
pnas_98_6_2961__1.html (728B, html)

Articles from Proceedings of the National Academy of Sciences of the United States of America are provided here courtesy of National Academy of Sciences

RESOURCES