A lateral flow test has no pump, yet the sample moves along the strip and reaches the test line. What pulls the sample along the strip, and how long does it take to reach the test line?
The nitrocellulose membrane of a strip is a porous medium, a tangle of connected pores (Altschuh et al. 2022). The model replaces them by straight tubes of one effective radius \(R\), with flow in each tube following Poiseuille’s law. Nothing pushes on the sample, so the driving pressure must come from the liquid surface.
Interfacial tension
NoteDefinition — interfacial tension
The interfacial tension\(\gamma\) is the energy needed to create one unit of area of interface between two phases. When one of the phases is air, it is called the surface tension.
Since 1 J = 1 N·m, J/m² equals N/m, so \(\gamma\) is also a force per unit length: the pull the surface exerts along a line drawn on it. For water at 20 °C, \(\gamma = 0.0728\) N/m (Urone and Hinrichs 2022).
Water molecules attract one another (cohesion), and a molecule at the surface has fewer neighbors, so creating surface costs energy (Urone and Hinrichs 2022). Attraction between unlike molecules, such as a liquid and the solid it touches, is adhesion(Urone and Hinrichs 2022).
A curved interface also carries a pressure difference, the Laplace pressure (in a capillary, the capillary pressure).
The Laplace pressure
Consider a drop of fluid 2, of radius \(r_m\), in fluid 1 at equilibrium, with pressure \(P_2\) inside and \(P_1\) outside. A force balance relates the two pressures: when a body is not accelerating, the forces on it sum to zero. The body is a small square patch of the interface, of side \(s\) (Figure 44.1). The balance is written perpendicular to the patch, because the forces along the surface cancel by symmetry. Pressure pushes on the two faces of the patch, perpendicular to the surface. Surface tension pulls on each of its four edges along the surface, with force \(\gamma\) per unit length of edge.
Figure 44.1: Side view of a patch of side \(s\) on a drop of radius \(r_m\). Each edge is pulled with force \(\gamma s\), tilted inward by \(\alpha = s/(2r_m)\), half the angle \(s/r_m\) that the patch spans at the center of curvature.
NoteDerivation — the pressure jump across a curved surface
Setup. The system is the patch. Along the outward normal, \(\sum F_\perp = 0\): (force from pressure) \(-\) (inward pull of surface tension) \(= 0\).
Pressure force. The net outward push is \((P_2 - P_1)\,s^2\), the pressure difference times the patch area.
Surface-tension force. Surface tension \(\gamma\) is a force per unit length of line drawn in the surface (N/m). The surface beyond each edge of the patch pulls on the patch along the surface, perpendicular to the edge and away from the patch. An edge of length \(s\) therefore feels a pull of \(\gamma s\) (Figure 44.2). On a flat surface the pulls on opposite edges are equal and opposite, and they cancel. A curved surface leaves a net pull toward the center of curvature.
Figure 44.2: Top view of the patch. Each of the four edges is pulled outward, along the surface and perpendicular to the edge, with force \(\gamma\) per unit length, so \(\gamma s\) on an edge of length \(s\).
Why the pull has an inward part. The pull at an edge points along the surface at the edge, which is tilted toward the center of curvature relative to the patch’s own plane. Figure 44.3 shows a side view, with the patch centered on the top of the sphere and its right edge at \(E\).
The size of the tilt. The patch has length \(s\) along a circle of radius \(r_m\), so it spans an angle \(s/r_m\) at the center \(O\) (arc length equals radius times angle in radians). The patch is centered on the top, so its edge \(E\) lies half of that angle, \(s/(2r_m)\), away from the vertical radius to the middle of the patch. The pull at \(E\) is tangent to the sphere, so it is perpendicular to the radius \(OE\). The patch’s own plane at its middle is perpendicular to the vertical radius. The angle between two lines equals the angle between their perpendiculars, so the pull is tilted below the patch’s plane by the same angle,
\[\alpha = \frac{s}{2r_m}.\]
Figure 44.3: Side view. The patch (blue) is centered on the top of a sphere of radius \(r_m\) and center \(O\). Its right edge \(E\) is at angle \(s/(2r_m)\) from the vertical radius. The pull \(\gamma s\) at \(E\) is tangent to the sphere, so it is perpendicular to the radius \(OE\) and tilts below the horizontal (the patch’s own plane) by \(\alpha = s/(2r_m)\). It splits into \(\gamma s\cos\alpha\) along the patch and \(\gamma s\sin\alpha\) toward the center. The angle is drawn large so that it can be read.
The two components. The pull \(\gamma s\) splits into a part along the patch’s plane, \(\gamma s\cos\alpha\), and a part perpendicular to it, pointing toward the center, \(\gamma s\sin\alpha\). The balance is written perpendicular to the patch, so only the inward part, \(\gamma s\sin\alpha\), enters it.
A small patch. The patch is small compared with the radius of the drop, so \(\alpha\) is small and \(\sin\alpha \approx \alpha\). For \(\alpha = 0.05\) rad, \(\sin\alpha = 0.04998\). The inward part of one edge’s pull is then
Adding the four edges. The along-the-plane parts, \(\gamma s\cos\alpha\), of two opposite edges point in opposite directions and cancel. The two edges that point into and out of the page in the side view are tilted by the same angle, because a sphere curves equally in every direction, so each also contributes \(\gamma s^2/(2r_m)\) toward the center. The four edges together pull inward with
NoteKey result: the Young–Laplace equation (sphere)
\[\Delta P = P_2 - P_1 = \frac{2\gamma}{r_m}\]
\(\Delta P\) (Pa) is the pressure jump across the interface, inside minus outside, and \(r_m\) (m) is its radius of curvature (Gennes et al. 2004).
A flat surface (\(r_m \to \infty\)) has no pressure jump, and a smaller drop has a higher internal pressure than a larger one. The higher pressure is on the concave side, which contains the center of curvature.
Radius of curvature in a tube
In a tube the liquid surface, the meniscus, is curved. The liquid meets the wall at the contact angle\(\theta\), measured through the liquid. The meniscus is part of a sphere (Figure 44.4, left). Let \(r_m\) be the radius of this sphere, drawn to the contact point, and \(R\) the tube radius, drawn from the axis to the wall. Because \(r_m\) is perpendicular to the meniscus and \(R\) to the wall, \(r_m\) makes the angle \(\theta\) with \(R\) (marked in the figure), so in the right triangle \(\cos\theta = R/r_m\).
Figure 44.4: Left: the meniscus is part of a sphere of radius \(r_m\) (dashed circle) whose center lies on the tube axis, on the air side. The contact angle \(\theta\) lies in the liquid, between the wall and the tangent to the meniscus at the contact point; the same angle appears at the center, between \(r_m\) and \(R\), and the right triangle gives \(\cos\theta = R/r_m\). Right: a pore filled with liquid to length \(x\); the liquid just behind the meniscus is at \(P_\text{air} - P_c\).
\(P_c\) (Pa) is the pressure difference across the meniscus. The meniscus is assumed spherical, which holds in narrow tubes where gravity is negligible (Gennes et al. 2004).
As \(\theta \to 90^\circ\), \(r_m \to \infty\): the meniscus is flat and there is no capillary pressure. At \(\theta = 0\), \(r_m = R\): the meniscus is a hemisphere and \(P_c = 2\gamma/R\) is as large as it can be.
The contact angle and the Young equation
Where a liquid, a gas, and a solid meet, the solid–gas (\(\gamma_{sg}\)), liquid–solid (\(\gamma_{ls}\)), and liquid–gas (\(\gamma_{lg}\)) tensions pull on the line of contact (Figure 44.5). At equilibrium their components along the solid balance, with \(\gamma_{lg}\cos\theta\) acting in the direction of \(\gamma_{ls}\). This gives the Young equation(Gennes et al. 2004):
If \(\theta < 90^\circ\), adhesion dominates and the liquid wets the surface. If \(\theta > 90^\circ\), cohesion dominates and the liquid beads up. Water on clean glass has \(\theta \approx 0^\circ\), and mercury on glass \(\theta \approx 140^\circ\)(Urone and Hinrichs 2022).
Figure 44.5: Left: three interfacial tensions pull on the contact line. Middle and right: drops with \(\theta = 40^\circ\) (wets) and \(\theta = 140^\circ\) (beads up).
What makes the liquid front move
Consider a horizontal pore filled with liquid to length \(x\) (Figure 44.4, right). The inlet is open to the air, at \(P_\text{air}\). Just behind the meniscus the liquid is at \(P_\text{air} - P_c\), because the air is on the concave side, the side at higher pressure. The pressure falls by \(P_c\) along the liquid column, and this drop drives flow toward the meniscus, as \(\Delta P\) drives flow in a pipe.
The Washburn equation
NoteDerivation — position of the front
As the front advances by \(dx\), the liquid gains a disk of volume \(dV = \pi R^2\,dx\), so the flow rate is \(Q = \pi R^2\,dx/dt\). Applied to the liquid column of radius \(R\) and length \(x\), Poiseuille’s law gives \(Q = \pi R^4\,\Delta P/(8\mu x)\), with viscosity \(\mu\). The pressure drop is the capillary pressure, \(\Delta P = P_c = 2\gamma\cos\theta/R\), so
The driving pressure is constant, but the resistance of the filled column grows with its length \(x\), so the front slows (\(Q = \pi R^4 P_c/(8\mu x)\)). Separating variables and integrating from an empty pore (\(x = 0\) at \(t = 0\)) to the filled length \(x\) at time \(t\):
Writing \(L\) for the filled length \(x\) at time \(t\) gives the Washburn equation. This \(L\) is the distance the front has reached, not the tube length of Poiseuille’s law.
NoteKey result: the Washburn equation
\[L^2 = \frac{\gamma R\cos\theta}{2\mu}\,t
\qquad\Longleftrightarrow\qquad
L = \sqrt{\frac{\gamma R\cos\theta}{2\mu}\,t}\]
\(L\) (m) is the distance the front has reached at time \(t\) (s), \(R\) (m) the pore radius, and \(\mu\) (Pa·s) the viscosity. The equation assumes a horizontal pore of uniform radius, laminar Poiseuille flow of a Newtonian liquid, and a spherical meniscus with a constant contact angle (Washburn 1921).
Units: \((\text{N/m})(\text{m})(\text{s})/(\text{Pa}\cdot\text{s}) = \text{m}^2\). With the pore diameter \(D = 2R\), the equation is \(L^2 = \gamma D\cos\theta\,t/(4\mu)\). Forms without \(\cos\theta\) assume perfect wetting, \(\theta = 0\).
Because \(L\) grows as \(\sqrt{t}\), a test line twice as far away takes four times as long to reach. The front speed, \(dx/dt = \gamma R\cos\theta/(4\mu x) = x/(2t)\), falls as \(1/x\).
ImportantKnowledge check
A sample takes 30 s to wick 1 cm. How long does it take to wick 3 cm along the same strip?
NoteAnswer
The time scales as \(L^2\): \(3^2 \times 30~\text{s} = 270\) s, or 4.5 min.
Where the model breaks
The pores of a real membrane are about 1 to 10 µm across (Altschuh et al. 2022). Unlike the straight, identical tubes of the model, they wind, interconnect, and vary in size. The \(R\) in the Washburn equation is therefore an effective pore radius, fitted so that the equation matches measured wicking. It absorbs these differences, so it need not equal any measured pore size (Altschuh et al. 2022). Commercial membranes are rated by their capillary flow time, the time in seconds for the liquid front to cover 4 cm of membrane (s/4 cm) (Parolo et al. 2020).
Example: wicking saliva along a test strip
THC (tetrahydrocannabinol) is the main psychoactive compound in cannabis (Brown 2020). In a lateral flow assay for THC in saliva, the sample must reach the test line, 2 cm along the membrane, within 10 s. Assumed values for the saliva are \(\mu = 1.5\times10^{-3}\) Pa·s, a surface tension equal to water’s, rounded to \(\gamma = 0.072\) N/m, and \(\theta = 30^\circ\), so \(\cos\theta = 0.866\). The pore radii in this example, 0.2 µm and the candidates of 1.5 to 2.0 µm, are assumed effective radii, not measured pore sizes. For a membrane with \(R = 0.2\) µm, the Washburn equation gives the distance wicked in 10 s:
This membrane wicks the saliva only 0.645 cm in 10 s, about a third of the required 2 cm. Its capillary pressure, \(P_c = 2\gamma\cos\theta/R = 6.2\times10^{5}\) Pa (about 6 atm), is large, but its narrow pores resist flow. At 10 s the front moves at \(dx/dt = L/(2t) = 0.32\) mm/s. With an assumed saliva density of 1000 kg/m³, the Reynolds number in a pore is \(\mathrm{Re} = \rho\,(dx/dt)(2R)/\mu = 8.6\times10^{-5}\), so the flow is laminar, as the model assumes. Reaching 2 cm in 10 s needs a pore radius of at least
Three membranes with assumed effective pore radii of 1.5, 1.75, and 2.0 µm are compared:
import numpy as npmu, gamma =1.5e-3, 0.072# Pa s, N/mtheta = np.radians(30) # code expects the angle in radians: 30 deg = pi/6def wick_distance(R, t): # Washburn: distance (m) after t (s), pore radius R (m)return np.sqrt(gamma * R * np.cos(theta) * t / (2* mu))def wick_time(R, L): # Washburn solved for the time (s) to wick L (m)return2* mu * L**2/ (gamma * R * np.cos(theta))for R in [1.5e-6, 1.75e-6, 2.0e-6]:print(f"R = {R *1e6:.2f} um: L(10 s) = {100* wick_distance(R, 10):.2f} cm, "f"time to 2 cm = {wick_time(R, 0.02):.1f} s")
R = 1.50 um: L(10 s) = 1.77 cm, time to 2 cm = 12.8 s
R = 1.75 um: L(10 s) = 1.91 cm, time to 2 cm = 11.0 s
R = 2.00 um: L(10 s) = 2.04 cm, time to 2 cm = 9.6 s
Only the 2.0 µm membrane, the one above 1.92 µm, reaches 2 cm within 10 s (Figure 44.6). Because \(L \propto \sqrt{R}\), its 33% larger pores carry the saliva only 15% farther than those of the 1.5 µm membrane.
Figure 44.6: Distance wicked against time for saliva (\(\mu = 1.5\) mPa·s, \(\gamma = 0.072\) N/m, \(\theta = 30^\circ\)) in membranes with effective pore radii of 0.2, 1.5, 1.75 and 2.0 µm. The point marks the target, 2 cm at 10 s.
Time to read the test
A test can be read once the sample has wicked to the test line and enough gold has bound there to be visible. The front reaches a test line a distance \(L\) away at \(t_\text{wick} = 2\mu L^2/(\gamma R\cos\theta)\): 9.6 s for a line 2 cm away on the 2.0 µm membrane of the example. The binding time \(t_\text{vis}\) (binding) is counted from the liquid’s arrival at the line, so the two times add:
Table 44.1 applies this to the illustrative assay of binding, where \([G]_0\) is the concentration of gold-labeled antigen reaching the line.
Table 44.1: Estimated time to read the saliva test.
sample
wicking to 2 cm, \(t_\text{wick}\)
binding to visible, \(t_\text{vis}\)
total, \(t_\text{read}\)
\([G]_0 = 1\) nM
9.6 s
105 s
115 s ≈ 1.9 min
\([G]_0 = 0.2\) nM
9.6 s
693 s
703 s ≈ 11.7 min
For these values binding, not flow, sets \(t_\text{read}\). The sum is an estimate: in a real strip, liquid keeps flowing past the test line during binding, and the binding model omits that flow. The 1 nM line is visible from 1.9 min onward, but the 0.2 nM line does not appear until 11.7 min, so the result depends on when the strip is read. Test instructions therefore fix a read time, 5 to 30 min after the sample is added (Koczula and Gallotta 2016).
Exercises
TipProblem 1
Water has \(\gamma = 0.0728\) N/m.
Find the pressure difference across the surface of a water droplet of radius 1 µm in air. Is the pressure higher inside or outside?
Water fills a membrane pore of radius 1.5 µm and meets its wall at \(\theta = 40^\circ\). Find the radius of curvature of the meniscus and the capillary pressure. On which side of the meniscus is the pressure higher?
For this wall, what is \(\gamma_{sg} - \gamma_{ls}\)?
\(r_m = R/\cos\theta = 1.5/0.766 = 1.96\) µm, and \(P_c = 2\gamma\cos\theta/R = 7.44\times10^{4}\) Pa. The pressure is higher on the air side, which contains the center of curvature.
By the Young equation, \(\gamma_{lg}\cos\theta = (0.0728)(0.766) = 0.0558\) N/m.
TipProblem 2
For the 0.2 µm membrane of the example:
How long does the saliva take to wick 2 cm?
How fast is the front moving at \(t = 1\) s, and when it reaches 2 cm?
NoteAnswer 2
\(t = 2\mu L^2/(\gamma R\cos\theta) = 2(1.5\times10^{-3})(0.02)^2/\big((0.072)(0.2\times10^{-6})(0.866)\big) = 96\) s.
At 1 s, \(x = 0.204\) cm and \(dx/dt = x/(2t) = 1.02\) mm/s. At 2 cm, \(dx/dt = (20~\text{mm})/(2\times 96.2~\text{s}) = 0.10\) mm/s. The speed falls as \(1/x\).
TipProblem 3
A nitrocellulose membrane with a nominal pore diameter of 8 µm has a capillary flow time of about 135 s per 4 cm (Parolo et al. 2020). Assume the rating was measured with water.
Using \(L \propto \sqrt{t}\), how long does water take to reach a test line 1.5 cm into the membrane?
How far has the front traveled after 1 min?
What effective pore radius reproduces the rating (\(\gamma = 0.0728\) N/m, \(\mu = 1.0\times10^{-3}\) Pa·s, \(\theta = 0^\circ\))? Compare it with the nominal pore size.
NoteAnswer 3
\(t = 135~\text{s}\times(1.5/4)^2 = 19\) s.
\(L = 4~\text{cm}\times\sqrt{60/135} = 2.7\) cm.
\(R = 2\mu L^2/(\gamma t) = 2(1.0\times10^{-3})(0.04)^2/\big((0.0728)(135)\big) = 0.33\) µm, about a twelfth of the 4 µm radius of an 8 µm pore. The effective radius is a fitted constant, not a measured pore dimension.
TipProblem 4
A test runs on blood plasma (assumed values: \(\mu = 1.3\times10^{-3}\) Pa·s, \(\gamma = 0.073\) N/m, \(\theta = 20^\circ\)). The plasma must reach a test line 2.5 cm into the membrane within 40 s.
What is the smallest effective pore radius that meets this requirement?
Which of three membranes, with effective pore radii of 0.5, 0.8, and 1.2 µm, meet it, and how long does each take?
The 0.5 µm membrane has the largest capillary pressure. Why is it the slowest?
\(t = 2\mu L^2/(\gamma R\cos\theta)\) gives 47.4 s, 29.6 s, and 19.7 s, so the 0.8 and 1.2 µm membranes meet it.
As \(R\) falls, the capillary pressure \(P_c = 2\gamma\cos\theta/R\) grows as \(1/R\), but the ratio \(P_c/(dx/dt) = 8\mu x/R^2\), which plays the role of hydraulic resistance (Poiseuille’s law), grows as \(1/R^2\). The front speed, \(dx/dt = R^2 P_c/(8\mu x) = \gamma R\cos\theta/(4\mu x)\), is therefore proportional to \(R\), so smaller pores wick more slowly and the wicking time scales as \(1/R\).
TipProblem 5
A saliva test (\(\mu = 1.5\times10^{-3}\) Pa·s, \(\gamma = 0.072\) N/m, \(\theta = 30^\circ\)) uses a membrane with effective pore radius \(0.5\) µm and a test line 2 cm from the sample pad. At the test line, \(k_{\text{on},s} = 1\times10^{5}~\text{M}^{-1}\text{s}^{-1}\), \([\text{Ab}_s]_0 = 10\) nM, \(C_\text{vis} = 0.1\) nM, and the sample delivers \([G]_0 = 0.5\) nM. Use Case A of binding.
How long does the sample take to wick to the test line?
How long does the line then take to become visible?
What fraction of the total read time is spent wicking?
NoteAnswer 5
\(t = 2\mu L^2/(\gamma R\cos\theta) = 2(1.5\times10^{-3})(0.02)^2/\big((0.072)(0.5\times10^{-6})(0.866)\big) = 38.5\) s.
\(\tau = 1/(k_{\text{on},s}[\text{Ab}_s]_0) = 1000\) s, so \(t_\text{vis} = \tau\ln\big([G]_0/([G]_0 - C_\text{vis})\big) = 1000\ln(0.5/0.4) = 223\) s.
The total is \(38.5 + 223 = 262\) s, about 4.4 min. Wicking is \(38.5/262 = 15\%\) of it. Binding, not flow, sets the read time.
TipProblem 6
A saliva test uses the 2.0 µm membrane of the example (\(\mu = 1.5\times10^{-3}\) Pa·s, \(\gamma = 0.072\) N/m, \(\theta = 30^\circ\)), with the test line 2 cm from the sample pad. At the test line, \(k_{\text{on},s} = 1\times10^{5}~\text{M}^{-1}\text{s}^{-1}\), \([\text{Ab}_s]_0 = 10\) nM and \(C_\text{vis} = 0.1\) nM (Case A of binding). The instructions say to read the test 5 min after the sample is added.
With Python, compute \(t_\text{wick}\), \(t_\text{vis}\) and \(t_\text{read}\) for a sample with \([G]_0 = 0.2\) nM. Does its line show at the read time?
What is the smallest \([G]_0\) whose line shows at 5 min? Compare it with the smallest \([G]_0\) that gives a line after an indefinitely long wait (\(C_\text{vis}\), the visibility threshold).
NoteAnswer 6
import numpy as npmu, gamma, theta =1.5e-3, 0.072, np.radians(30) # Pa s, N/m, radR, L =2.0e-6, 0.02# pore radius, distance to line (m)k_on_s, Ab_s0, C_vis, G0 =1e5, 10e-9, 0.1e-9, 0.2e-9# M^-1 s^-1, M, M, Mt_read_max =300# read time, st_wick =2* mu * L**2/ (gamma * R * np.cos(theta)) # Washburntau =1/ (k_on_s * Ab_s0)t_vis = tau * np.log(G0 / (G0 - C_vis)) # Case Aprint(f"t_wick = {t_wick:.1f} s, t_vis = {t_vis:.0f} s, t_read = {t_wick + t_vis:.0f} s")G0_min = C_vis / (1- np.exp(-(t_read_max - t_wick) / tau)) # part (b)print(f"smallest [G]0 visible at 5 min = {G0_min *1e9:.2f} nM")
t_wick = 9.6 s, t_vis = 693 s, t_read = 703 s
smallest [G]0 visible at 5 min = 0.40 nM
The line needs about 703 s, or 11.7 min, so it is not visible at the 5-min (300 s) read, and the test gives a false negative. At 300 s the sandwich has reached \([G]_0\big(1 - e^{-(300 - 9.6)/1000}\big) = 0.050\) nM, half of \(C_\text{vis}\).
Binding must finish within \(t_\text{vis} = 300 - 9.6 = 290\) s. In Case A the line becomes visible when \(C_\text{vis} = [G]_0\big(1 - e^{-t_\text{vis}/\tau}\big)\), so \([G]_0 = C_\text{vis}/\big(1 - e^{-t_\text{vis}/\tau}\big) = 0.1~\text{nM}/\big(1 - e^{-0.290}\big) = 0.40\) nM. A 5-min read detects samples above 0.40 nM, four times the smallest \([G]_0\) that gives a line after an indefinitely long wait (\(C_\text{vis} = 0.1\) nM, the visibility threshold).
References
Altschuh, Patrick, Willfried Kunz, Marcel Bremerich, Andreas Reiter, Michael Selzer, and Britta Nestler. 2022. “Wicking in Porous Polymeric Membranes: Determination of an Effective Capillary Radius to Predict the Flow Behavior in Lateral Flow Assays.”Membranes 12 (7): 638. https://doi.org/10.3390/membranes12070638.
Brown, Joshua D. 2020. “Potential Adverse Drug Events with Tetrahydrocannabinol (THC) Due to Drug–Drug Interactions.”Journal of Clinical Medicine 9 (4): 919. https://doi.org/10.3390/jcm9040919.
Gennes, Pierre-Gilles de, Françoise Brochard-Wyart, and David Quéré. 2004. Capillarity and Wetting Phenomena: Drops, Bubbles, Pearls, Waves. Springer. https://doi.org/10.1007/978-0-387-21656-0.
Koczula, Katarzyna M., and Andrea Gallotta. 2016. “Lateral Flow Assays.”Essays in Biochemistry 60 (1): 111–20. https://doi.org/10.1042/EBC20150012.
Parolo, Claudio, Amadeo Sena-Torralba, José Francisco Bergua, et al. 2020. “Tutorial: Design and Fabrication of Nanoparticle-Based Lateral-Flow Immunoassays.”Nature Protocols 15 (12): 3788–816. https://doi.org/10.1038/s41596-020-0357-x.