A modeling argument follows the same moves almost every time: sharpen the question, start from something trusted, get the numbers, solve the simplest case, compare the answer with the scales of the question, and read off what it means. Here they are applied once, to a crawling cell that stops pulling. Newton’s second law with drag says it coasts for about a microsecond and travels about ten femtometres. Both numbers are 10-9 of the cell’s own scales, the twenty minutes it takes to move one body length and the body length itself. So except for a few microseconds after each change in force, a cell’s velocity is proportional to the force on it: .
This page asks one question about a cell and answers it with numbers. The six steps below are not specific to cells; they are the moves of almost every modeling argument.
1. Sharpen the question¶
How a cell gets around a corner (What Is Mathematical Modeling?) cannot be attacked yet, because before asking how a cell steers we have to know what sets its motion at all. A swimmer who stops stroking glides on for a body length or two: the velocity carries memory of the force that produced it. Does a cell’s? So the question is the one underneath:
If a crawling cell stops pulling, how long does it keep moving, and how far does it get?
2. Start from something trusted¶
For a particle in vacuum, . A cell moves through a viscous medium, which resists it. Newton’s second law for the cell center, with an active force, a contact force, and viscous drag, is
The drag is linear in the velocity, with drag coefficient ; step 5 shows why that is the right form for a cell.
3. Get the numbers¶
Before solving anything, estimate everything. For a crawling cell:
| Quantity | Symbol | Typical value |
|---|---|---|
| Cell diameter | 10 to | |
| Migration speed | 0.1 to | |
| Single-motor stall force | ||
| Traction force of a cell | 10 to | |
| Cytoplasmic viscosity | 10 to water |
Nothing in this table is exact, and nothing needs to be. Each entry is an order of magnitude taken from observation, not from a model; what a model does is compare them. Two of the entries are already worth comparing. A single myosin or actin-polymerization motor stalls at a few piconewtons, and a cell exerts tens of nanonewtons of traction, so the number of motors acting together is
Ten thousand motors act together in a cell, but only about ten protrusions. The first number is large enough that averaging over motors gives a meaningful deterministic force-velocity relation for a protrusion. The second is not: ten is too few to average over, so protrusions must be kept as discrete objects.
The two coefficients in (1) follow from the table. A cell is mostly water, so a cell of diameter m has mass kg. For the drag, use Stokes drag on a sphere of radius m in a medium ten times as viscous as water, Pas:
4. Solve the simplest case¶
Let a cell moving at the migration speed stop pulling at . In one dimension, with , (1) becomes with , which is separable:
The constants and have combined into a time.
Definition 1 (Inertial stopping time)
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams.update({"figure.dpi": 130, "font.size": 9, "axes.spines.top": False,
"axes.spines.right": False})
C_EXACT, C_INNER, C_COMP, C_OUTER = "#111111", "#D55E00", "#009E73", "#0072B2"
fig, ax = plt.subplots(figsize=(5.4, 2.9))
x = np.linspace(0, 5, 800)
ax.plot(x, np.exp(-x), color=C_EXACT, lw=2.0, zorder=3)
xt = np.linspace(0, 1.25, 50) # tangent at the origin
ax.plot(xt, 1 - xt, color="#888888", ls=(0, (4, 3)), lw=1.1)
ax.annotate("initial slope meets\nzero at $t=\\tau_i$", xy=(1.0, 0.0), xytext=(2.25, 0.20),
fontsize=8, color="#666666", arrowprops=dict(arrowstyle="->", color="#888888"))
half = np.log(2.0) # half-life
ax.plot([0, half], [0.5, 0.5], color=C_INNER, ls=":", lw=1.3)
ax.plot([half, half], [0, 0.5], color=C_INNER, ls=":", lw=1.3)
ax.plot([half], [0.5], "o", color=C_INNER, ms=5, zorder=4)
ax.annotate(r"half-life $t_{1/2}=\tau_i\ln 2 \approx 0.69\,\tau_i$", xy=(half, 0.5),
xytext=(1.15, 0.70), fontsize=8, color=C_INNER,
arrowprops=dict(arrowstyle="->", color=C_INNER))
ax.plot([1], [np.exp(-1)], "o", color=C_COMP, ms=5, zorder=4) # the 1/e point
ax.annotate(r"$1/e \approx 0.37$ at $t=\tau_i$", xy=(1.0, np.exp(-1)), xytext=(1.9, 0.47),
fontsize=8, color=C_COMP, arrowprops=dict(arrowstyle="->", color=C_COMP))
for k, lab in ((3, r"$5\%$"), (5, r"$0.7\%$")):
ax.plot([k], [np.exp(-k)], "o", color="#999999", ms=3.5, zorder=4)
ax.annotate(lab, xy=(k, np.exp(-k)), xytext=(k - 0.1, np.exp(-k) + 0.07),
fontsize=7.5, color="#777777")
ax.set_xlabel(r"$t/\tau_i$"); ax.set_ylabel(r"$v(t)\,/\,v_0$")
ax.set_xlim(-0.08, 5.1); ax.set_ylim(-0.03, 1.06)
ax.set_title(r"free decay after the forcing is switched off: $v = v_0\,e^{-t/\tau_i}$");
The free decay (4), with three equivalent ways of reading off it: the half-life ; the time to fall to of the starting speed, which is itself; and the initial slope extended until it meets zero, also at . After the cell keeps of its speed; after , one part in a thousand.
The cell is not stopped at , only slowed by a factor ; strictly it never stops. The distance it covers is nevertheless finite, because the speed decays exponentially. Integrating (5) from the moment the cell stops pulling,
Example 1 (Coasting distance of a crawling cell)
V0, TAU = 1e-8, 1e-6 # m/s, s
t = np.linspace(0, 6e-6, 600)
fig, ax = plt.subplots(1, 2, figsize=(6.6, 2.5))
ax[0].plot(t * 1e6, V0 * np.exp(-t / TAU) * 6e7, color=C_EXACT, lw=1.8) # m/s -> um/min
ax[0].set_xlabel(r"time after traction stops ($\mu$s)")
ax[0].set_ylabel(r"speed ($\mu$m/min)")
ax[0].set_title("coasting time: about a microsecond")
ax[0].set_ylim(0, 0.66)
ax[1].plot(t * 1e6, V0 * TAU * (1 - np.exp(-t / TAU)) * 1e15, color=C_COMP, lw=1.8)
ax[1].axhline(V0 * TAU * 1e15, color=C_COMP, ls="--", lw=1.0)
ax[1].annotate(r"$x_{\rm coast} = v_0\tau_i \approx 10$ fm", xy=(2.2, 10.4),
fontsize=8, color=C_COMP)
ax[1].set_xlabel(r"time after traction stops ($\mu$s)")
ax[1].set_ylabel("distance coasted (fm)")
ax[1].set_title("coasting distance: ten femtometres")
ax[1].set_ylim(0, 12.5)
fig.tight_layout();
The same coast in physical units. Left: a cell moving at m/min loses its speed within a few microseconds. Right: the distance it covers meanwhile, (7), levels off at fm.
This answers the question of step 1: the cell keeps moving for about a microsecond and gets about ten femtometres.
5. Compare with the scales of the question¶
A microsecond and ten femtometres are small only compared with something. They must be compared with the scales on which the behavior we want to explain happens, not with the resolution of a microscope. The length is the cell’s own diameter , and the time is built from a length and a speed in the table.
Definition 2 (Migration time)
the time a cell takes to move one body length. It is built from two measured quantities rather than measured itself.
is the time scale of the question: we want to predict where the cell is, in body lengths, and that choice of observable is what put and into it. belongs to the cell; belongs to us.
Measured against these, the coasting time and the coasting distance are the same number:
This is not a coincidence of the numbers: the cell coasts for a fraction of the time it takes to move one body length, at no more than its usual speed, so it covers at most that fraction of a body length. The same ratio appears term by term in (1): a cell moving at and changing its speed over has inertia term and drag term , whose ratio is again .
C_GREY = "#666666"
fig, ax = plt.subplots(2, 1, figsize=(6.6, 3.4))
rows = [
(ax[0], "time (s)", (1e-7, 1e4),
[(1e-6, r"coasting time $\tau_i$", C_INNER, 0.5),
(60, "one frame of\na cell movie", C_GREY, 0.5),
(1e3, r"migration time $T$", C_OUTER, 1.5)]),
(ax[1], "length (m)", (1e-15, 1e1),
[(1e-14, r"cell coasts, $v_0\tau_i$", C_INNER, 0.5),
(1e-11, "bacterium coasts", C_GREY, 1.5),
(1e-10, "hydrogen atom", C_GREY, 0.5),
(1e-5, r"cell diameter $L$", C_OUTER, 0.5),
(2, "swimmer glides", C_GREY, 1.5)]),
]
for a, lab, (lo, hi), marks in rows:
a.set_xscale("log"); a.set_xlim(lo, hi); a.set_ylim(-1.3, 2.3)
a.set_yticks([]); a.spines["left"].set_visible(False)
a.axhline(0, color="#999999", lw=0.8, zorder=1)
a.set_xlabel(lab)
for xm, text, c, h in marks:
a.plot([xm, xm], [0, h - 0.1], color=c, lw=0.7, zorder=2)
a.plot([xm], [0], "o", color=c, ms=6, zorder=3)
a.text(xm, h, text, ha="center", va="bottom", fontsize=7.5, color=c)
b0, b1 = marks[0][0], [m for m in marks if m[2] == C_OUTER][0][0]
a.annotate("", xy=(b1, -0.7), xytext=(b0, -0.7),
arrowprops=dict(arrowstyle="<->", color="#444444", lw=0.9))
a.text(np.sqrt(b0 * b1), -0.7, " nine orders of magnitude ", ha="center",
va="center", fontsize=7.5, color="#444444", backgroundcolor="white")
fig.tight_layout();
The coast against the scales of the question, on logarithmic axes. Top: the coasting time lies nine orders of magnitude below the migration time , and eight below a single frame of a typical cell movie. Bottom: the coasting distance lies nine orders of magnitude below the cell diameter and four below the size of an atom. A bacterium coasts about a tenth of an ångström Purcell (1977); a swimmer glides a metre or two.
The fluid gives the same verdict. The Reynolds number
compares inertia with viscosity in the flow around a body of size moving at speed through a fluid of density .
Example 2 (Reynolds number of a crawling cell)
With , (m/min), m and Pas (ten times water),
At such a small Reynolds number the flow around the cell is a Stokes flow, and that is why the drag in (1) is linear in the velocity, with the coefficient (3). Purcell’s swimming bacterium has Purcell (1977); a crawling cell is four orders of magnitude further into the viscous world.
6. Read off what it means¶
Coasting is the case of zero force. The same calculation works with the force on. Let the net force be constant from , and let the cell start at any speed . In one dimension (1) is , which is linear, and the integrating factor (Background: The Integrating Factor) gives
Whatever speed the cell had, it forgets it on the coasting time and settles at ; (5) is the case . A force that is switched on, off, or changed starts a new transient of the same microsecond length. Protrusion forces change over seconds to minutes, so the cell spends all but a few microseconds of every second with its transient long finished.
A cell therefore has, for every practical purpose, no momentum. A cell that stops pulling stops, to within ten femtometres. This matches what is known: a cell whose motors are disrupted stops essentially instantly, and nobody has filmed a cell coasting. Whenever a cell track looks as though it has inertia, and it often does, the memory is in an internal state of the cell, not in its mass.
The conclusion of the whole page is a single observation. Except for a few microseconds after each change in the force, the velocity of a cell is proportional to the force acting on it now:
Force sets velocity, not acceleration. Turning this observation into an equation of motion means deleting the term , which changes the order of the equation, and From Newton’s Second Law to a Force Balance does this carefully and computes how much error it commits.
- Purcell, E. M. (1977). Life at low Reynolds number. American Journal of Physics, 45(1), 3–11.