Lesson 4IntermediateAbout 120 minutes

Molecules in motion

Nothing in a cell is pushed into place, yet everything gets where it needs to go. You will see why molecules jiggle, discover the square-root law of random walks, work out how long diffusion takes across syn3A, a human cell and a meter of nerve, see how crowded a cell is inside, turn collisions into reaction rates, and build your first simulator, running the same reaction molecule by molecule and with an equation.

Watch first: what you'll learn1 minute · narrated · captions

0:00 / 1:29
Read the transcript

Welcome to lesson four: molecules in motion. Nothing in a cell is pushed into place, yet everything gets where it needs to go.

Water molecules knock every protein about, scrambling its direction nearly a trillion times a second. The result is a random dance: Brownian motion.

In 1905, Albert Einstein showed how to measure that dance, and Jean Perrin's experiments with it settled that atoms are real.

A random walk goes nowhere on average, yet it spreads out. After a hundred steps, a walker is typically just ten steps away.

Because of that square root, twice the distance takes four times as long: diffusion is quick across a cell, hopeless across a body.

A protein crosses syn3A in a few hundredths of a second. Down a meter-long nerve it would take centuries, so our cells use motors.

A cell is also crowded. syn3A's inside is packed with about five hundred ribosomes and over seventy-seven thousand proteins, jostling for room.

Molecules react when they meet. Double one of the partners and the reactions double; double both and they happen four times as often.

You'll simulate a reaction two ways: by moving every molecule, and with an equation, and see when the two agree and when they don't.

Along the way you'll play with random walkers, crowded cells and colliding molecules, and build your first simulator. Let's begin.

Narrated with an AI-generated voice (Amazon Polly, Ruth). The page highlights and scrolls to whatever is being described.

By the end of this lesson you will be able to:

  • Explain Brownian motion as kicks from water molecules, and why a protein's speed matters less than how often its direction is scrambled
  • Use the mean, the mean square and the square root to describe a random walk, and show why its typical distance grows as the square root of the number of steps
  • Define the diffusion coefficient D, use mean square displacement = 2dDt, and estimate D from a molecule's size with the Stokes–Einstein formula
  • Work out diffusion times with t = x²/(6D), read log–log plots, and explain why big cells need motor proteins and bacteria don't
  • Describe how crowded syn3A is inside and what crowding does to diffusion and to finding a partner
  • Turn collisions into reaction rates with mass action, read a rate of change dA/dt, and solve a decay step by step with Euler's method
  • Convert a rate constant in M⁻¹ s⁻¹ into "one pair of molecules in syn3A", explain the diffusion limit, and use Kd and the fraction bound
  • Simulate A + B ⇌ C both as particles and as an equation, and explain when they agree, why few molecules are noisy, and what each costs
On this page
  1. Everything jiggles
  2. Random walks
  3. Diffusion
  4. How fast molecules move in a cell
  5. A crowded cell
  6. Reactions happen when molecules meet
  7. Second-order reactions and the diffusion limit
  8. Equilibrium and binding
  9. Two ways to simulate
  10. Code milestone: your first simulator
  11. Numbers to remember
  12. Sources and further reading
  13. Practice problems

Everything jiggles

Lesson 1 said that a protein drifts across an E. coli cell in about 10 milliseconds. But nothing in a bacterium pushes it. There are no pumps moving the cytoplasm around, no conveyor belts, no motors. The protein gets there anyway, by being knocked about at random. This lesson is about that random motion: how fast it is, why it is quick over short distances and hopelessly slow over long ones, and how it sets the speed of every reaction in the cell. At the end you will write your first simulator.

This is the first lesson of the “how a cell runs” part of the course, and the math steps up: averages and square roots, rates of change, and a first equation that describes change over time. Every piece starts from zero, with numbers worked out before any formula is used.

Heat is motion. Every molecule in a warm liquid is moving and constantly bumping into its neighbors. Lesson 2 measured the size of these thermal kicks with kT, Boltzmann’s constant kk times the temperature TT in kelvin. At body temperature, 37 °C or 310 K:

kT=1.38×10−23 J/K×310 K≈4.3×10−21 JkT = 1.38 \times 10^{-23}\ \text{J/K} \times 310\ \text{K} \approx 4.3 \times 10^{-21}\ \text{J}

Per mole that is RT=2.58RT = 2.58 kJ/mol, the value Lesson 2 used. Biophysicists also write it as 4.3 pN·nm: a piconewton of force pushing over a nanometer. It is a tiny amount of energy, but molecules are tiny too, and for a protein it is plenty to keep it moving.

People saw this motion long before they could explain it. In the summer of 1827 the botanist Robert Brown looked through his microscope at pollen of the wildflower Clarkia pulchella soaked in water. The particles he watched jiggle were not the pollen grains themselves, which are too big to move much, but tiny grains of starch and fat, about 5–6 µm long, that had spilled out of them. He went on to find that any small enough particle moves the same way, living or not. The jiggling is now called Brownian motion.

In 1905 Albert Einstein explained it. The particle is hit from all sides by water molecules, and at any instant the hits don’t quite balance, so it gets shoved one way, then another. He predicted exactly how far such a particle should wander, and from that how to count the molecules hitting it. In 1908 and 1909 Jean Perrin measured the wandering of tiny particles under a microscope, used it to count Avogadro’s number, and so showed that atoms are real. He won the Nobel Prize in Physics in 1926.

Zoom in from Brown’s microscope to the water molecules. The first two stops run in real time, with the real amount of jiggle. The last two are slowed down about a trillion times.

Why things jiggle

Zoom from what Robert Brown saw in 1827 down to the water molecules that cause it. Tap a stop, or drag the zoom slider.

1Brown’s microscope, 1827

real timegrains 5–6 µm longD ≈ 0.1 µm²/sabout 0.6 µm a second

In the summer of 1827 the botanist Robert Brown watched tiny particles from inside the pollen grains of the flower Clarkia pulchella jiggle in water. They were starch grains and fat drops, the grains about 5–6 µm long: not the pollen grains themselves. Brown went on to find that any small enough particle moves this way, living or not.

Each grain here jiggles in real time by the Stokes–Einstein formula for water at 25 °C: a grain of radius 2.5 µm has D = 0.098 µm²/s, so it wanders about 0.6 µm in a second. The smaller fat drops jiggle faster.

Brown’s grains and the bead move in real time with their Stokes–Einstein D; their positions and the pollen grain are illustrative. The nanometer views are drawn in 2D with simplified water, slowed about 10¹² times, and the protein’s turns drawn as sharp corners (in reality they blur). Sources: Pearle et al. (2010), American Journal of Physics 78:1278 (what Brown saw); Einstein (1905); Perrin (1909); the 1926 Nobel Prize in Physics.

The last stop shows something surprising. A protein the size of GFP (green fluorescent protein, 27 kDa) moves fast: at 37 °C its typical speed is about 17 m/s, faster than a sprinter. But water is so thick at its scale that it loses its direction in about 1.2 picoseconds (trillionths of a second). In that time it covers about 0.012 nm, about a hundredth of a nanometer, before it is heading somewhere new. Its direction is scrambled about a trillion times a second.

Random walks

Take away the physics and keep the randomness. A random walk is the simplest model of a molecule being knocked about. A walker stands on a line at position 0. Each step it flips a coin: heads, it steps +1; tails, −1. Where is it after many steps?

On average, nowhere: it is as likely to be left of the start as right of it, so its average position stays at 0. But it doesn’t stay put. Some walkers drift far to the left and some far to the right, and the longer they walk, the more they spread out. The question is how fast they spread.

The figure shows three views. One walker in 2D took 400 steps but ended only about 20 steps from home. Eight walkers on a line fan out inside a band that widens more and more slowly. And 2,000 walkers of 100 steps each pile up into a bell curve about 10 steps wide.

1 · One walker

One random walker: 400 steps, but only about 20 steps from homeThe path of one walker in a flat, two-dimensional world. It takes 400 steps, each one step long, in a random direction. Its path starts pale and gets darker with time. It starts at the green dot in the middle and ends at the pink dot, 20.3 steps from the start. A dashed circle around the start has a radius of the square root of 400, which is 20 steps: the typical distance after 400 steps.400 steps, but only about20 steps from home20.3 stepsstartend (step 400)radius √400 = 20 steps10 stepsstep 1step 400
One walker. Each step is one unit long, in a random direction. After 400 steps this walker is 20.3 steps from where it started. Another walker might end 5 or 35 steps away, but about 20, the square root of 400, is typical. (A seeded walk, chosen to end near the typical distance.)

2 · Spreading out

Eight walkers on a line spread out like the square root of the number of stepsA graph of position against the number of steps taken, from 0 to 400, for 8 walkers that each step one unit left or right at random. All start at 0. Their paths fan out. A shaded band between plus and minus the square root of N curves outward like a sideways parabola: 10 at 100 steps and 20 at 400 steps. The average position stays at 0. Of the 8 walkers, 5 end inside the band.4 times the steps, 2 times the spread+10−10+√Naverage−√N−40−200+20+400100200300400steps taken, Nposition
Spreading out. Eight walkers on a line, each step +1 or −1 at random. On average they go nowhere (the average stays at 0), but they spread out. The shaded band is ±√N: ±10 after 100 steps, ±20 after 400. Four times the steps gives only twice the spread. Here 5 of 8 walkers end inside the band; the exact odds are 71%, about 7 in 10.

3 · Many walkers

Where 2,000 walkers end after 100 steps: a bell curve with spread 10A histogram of where 2,000 walkers end after 100 steps of plus or minus one. The bars make a bell shape centered on 0. A smooth bell curve with spread 10, the square root of 100, sits on top. Dashed lines mark minus 10 and plus 10. Of the 2,000 walkers, 1,459 (73.0 percent) end inside them; the exact odds are 72.9 percent.2,000 walkers, 100 steps each±10inside ±10:1,459 (73%)exact odds 72.9%bell curve,spread √100 = 10mean square ofthe ends: 98 ≈ N−40−200+20+40where each walker ends
Many walkers. Two thousand walkers, 100 steps each, dropped into bins by where they end. They pile up into a bell curve whose spread is √100 = 10. Here 1,459 of them (73.0%) end within ±10. A smooth bell curve says 68%; the exact odds are 72.9%, a little more, because after 100 steps a walker can only be at an even number.

Before you read the rule, find it yourself. In Brownian Bet, a glowing bead hops left or right at random, like a coin toss. You bet where it will finish: slide the gold bracket, lock your bet, then release the beads one at a time or ten at once. Catch enough to win, and the smaller your bet, the more stars you get. Later levels ask how wide to bet, drop a thousand beads at once, and take the walk onto a flat dish and into 3D.

Game · Brownian Bet

Bet on a random walker

Stars 0/18

1. Place your bet

A glowing bead sits on a wire. Each tick it hops one step left or right, like a coin toss: heads right, tails left. After 16 hops it stops.

Your bet is the gold bracket, 2 steps either side of its center. Slide it to where you think the bead will finish. Ten beads make a round; catch at least 5.

Slide the bracket with ◀ ▶, then Release one bead or Run 10. The bracket is always 2 steps either side of its center.

Center +4 · bracket +2 to +6

Honest about the picture: the hops are a drawing convenience. A real molecule is kicked by water about a trillion times a second, so its path is a blur, but its averages follow the same √N law. Time here is slowed enormously.

Math toolkit: averages, spread and square roots

Start with three numbers: 3, −4 and 1. Think of them as where three walkers ended up. Three ways to summarize them:

  • The mean (average): add them up and divide by how many there are. (3−4+1)÷3=0÷3=0(3 - 4 + 1) \div 3 = 0 \div 3 = 0.
  • The mean square: square each one first, then average. (9+16+1)÷3=26÷3≈8.67(9 + 16 + 1) \div 3 = 26 \div 3 \approx 8.67.
  • The root mean square (RMS): the square root of the mean square. 8.67≈2.94\sqrt{8.67} \approx 2.94.

Squaring makes every number positive, so the mean square can’t cancel out the way the mean does. Taking the square root at the end puts it back in the original units, steps instead of steps squared. The RMS is a “typical size” of the numbers, ignoring their signs.

For a random walk the mean is useless: it is 0 for every number of steps, because left and right cancel. The mean square is the useful one. It grows as the walkers spread out, and its square root, the RMS, is the typical distance from the start.

Here is every possible walk of two steps. Each is equally likely, with a chance of 1 in 4:

Step 1Step 2EndEnd squared
+1+1+24
+1−100
−1+100
−1−1−24

The mean end is (2+0+0−2)÷4=0(2 + 0 + 0 - 2) \div 4 = 0. The mean square is (4+0+0+4)÷4=2(4 + 0 + 0 + 4) \div 4 = 2. Two steps, mean square 2.

Why 2? Call the position after some steps xx, and the next step ss, which is +1 or −1. The new position is x+sx + s, and its square is

(x+s)2=x2+2xs+s2(x + s)^2 = x^2 + 2xs + s^2

Look at each piece, averaged over many walkers:

  • x2x^2 is the old square.
  • 2xs2xs averages to zero: for any xx, the next step is as likely to be +1 as −1, so the plus and minus cases cancel.
  • s2s^2 is always exactly 1, because (+1)2=(−1)2=1(+1)^2 = (-1)^2 = 1.

So every step adds exactly 1 to the mean square. After NN steps:

mean square=NRMS=N\text{mean square} = N \qquad\qquad \text{RMS} = \sqrt{N}

A hundred random steps take you about 100=10\sqrt{100} = 10 steps from where you started. Not a hundred. Ten. Four times the steps gives 4=2\sqrt{4} = 2 times the distance, and a hundred times the steps only ten times the distance. The same is true in 2D and 3D, with steps of length 1 in random directions: the mean square after NN steps is NN.

For molecules, the mean square has a name: the mean square displacement, or MSD. “Displacement” is how far a molecule is from where it started, and MSD is the average of its square over many molecules (or over many stretches of one molecule’s path). For a walk of NN steps, each of length aa,

MSD=Na2\text{MSD} = N a^2

So 10,000 hops of 1 nm give an MSD of 10,000 nm², and a typical distance of 10,000=100\sqrt{10{,}000} = 100 nm.

Now build it. Write a random walk in 1D, 2D or 3D, then let 2,000 walkers loose and check that their mean square comes out near NN.

Python exercise

A random walk

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

Then write the mean square displacement itself, for plain numbers and for 2D or 3D positions.

Python exercise

Mean square displacement

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

Check yourselfHow many random steps does a walker need to get typically 30 steps from the start?

The typical distance is N\sqrt{N}, so N=30\sqrt{N} = 30 and N=302=900N = 30^2 = 900 steps.

Check yourselfWhat are the mean, the mean square and the RMS of the displacements 3 and −4?

Mean: (3−4)÷2=−0.5(3 - 4) \div 2 = -0.5. Mean square: (9+16)÷2=12.5(9 + 16) \div 2 = 12.5. RMS: 12.5≈3.54\sqrt{12.5} \approx 3.54.

Check yourselfA walker takes 400 steps of 2 nm each. How far is it typically from the start?

400=20\sqrt{400} = 20 steps, each 2 nm, so about 40 nm. (MSD =400×22=1,600= 400 \times 2^2 = 1{,}600 nm², and 1,600=40\sqrt{1{,}600} = 40.)

Diffusion

A real molecule doesn’t take neat steps, but the same rule holds: its mean square displacement grows in proportion to time. Diffusion is the spreading of molecules by random motion, and the diffusion coefficient DD says how fast the mean square grows. Einstein’s result, for motion in dd dimensions, is

MSD=2dDt\text{MSD} = 2dDt

where tt is the time and dd is 1 for a line, 2 for a flat surface and 3 for space. So MSD is 2Dt2Dt along a line, 4Dt4Dt in a plane and 6Dt6Dt in space. The 2 for each dimension comes from the definition of D: along any one direction the mean square grows by 2D2D per second, and in space there are three directions, which add.

D is measured in square micrometers per second, µm²/s. That looks odd for a speed, but D is not a speed. It is how many square micrometers of mean square displacement a molecule gains each second. Worked example: GFP inside E. coli has D=7.7D = 7.7 µm²/s. In one second, in 3D,

MSD=6×7.7 μm2/s×1 s=46.2 μm2,46.2≈6.8 μm\text{MSD} = 6 \times 7.7\ \mu\text{m}^2/\text{s} \times 1\ \text{s} = 46.2\ \mu\text{m}^2, \qquad \sqrt{46.2} \approx 6.8\ \mu\text{m}

So in a second it typically wanders about 6.8 µm, nearly seven E. coli widths.

To link this with steps: a walk with steps of length aa, one every τ\tau seconds, has MSD=Na2\text{MSD} = N a^2 after N=t/τN = t/\tau steps. Setting that equal to 2dDt2dDt gives D=a2/(2dτ)D = a^2 / (2d\tau). If you drew GFP in E. coli as 1-nm hops in 3D, it would make one hop every

τ=a26D=(10−3 μm)26×7.7 μm2/s≈2.2×10−8 s=22 ns\tau = \frac{a^2}{6D} = \frac{(10^{-3}\ \mu\text{m})^2}{6 \times 7.7\ \mu\text{m}^2/\text{s}} \approx 2.2 \times 10^{-8}\ \text{s} = 22\ \text{ns}

That is only a drawing convenience. The real kicks come every picosecond or so, but the averages follow the same law. Level 6 of Brownian Bet asks you to find this number.

This is how Perrin did it. A bead 1 µm across in water at 25 °C has D=0.49D = 0.49 µm²/s. Through a microscope you see a flat, 2D picture, so in one second its typical distance is 4×0.49×1≈1.4\sqrt{4 \times 0.49 \times 1} \approx 1.4 µm: easy to see. Track many beads, average their squared distances, divide by 4t4t, and you have D.

What sets D? Einstein worked that out too, for a sphere moving through a fluid. The Stokes–Einstein formula is

D=kT6πηrD = \frac{kT}{6 \pi \eta r}

Every symbol in words:

  • kTkT is the size of the thermal kicks, from above. Warmer means bigger kicks and faster spreading.
  • η\eta (the Greek letter eta) is the fluid’s viscosity, how thick it is. Water at 25 °C has η=0.890\eta = 0.890 mPa·s (millipascal-seconds; 1 mPa·s is 10−310^{-3} kg per meter per second), and at 37 °C it is runnier, 0.691 mPa·s.
  • rr is the sphere’s radius. Bigger means slower.
  • 6π6\pi comes from the drag on a sphere moving through a fluid, worked out by George Stokes.

Twice the radius gives half the D; three times the viscosity gives a third.

Worked example: GFP, treated as a sphere of radius 2.8 nm, in water at 25 °C, where kT=4.12×10−21kT = 4.12 \times 10^{-21} J. Everything goes in SI units, meters and seconds:

D=4.12×10−216π×0.890×10−3×2.8×10−9=4.12×10−214.70×10−11≈8.76×10−11 m2/sD = \frac{4.12 \times 10^{-21}}{6\pi \times 0.890 \times 10^{-3} \times 2.8 \times 10^{-9}} = \frac{4.12 \times 10^{-21}}{4.70 \times 10^{-11}} \approx 8.76 \times 10^{-11}\ \text{m}^2/\text{s}

A square meter is (106 μm)2=1012(10^6\ \mu\text{m})^2 = 10^{12} µm², so that is 87.6 µm²/s. The measured value for GFP in salt water is 87 µm²/s. A formula from 1905, using only the size of the protein, gets it right. At 37 °C the same sphere gives 117 µm²/s, because the kicks are bigger and the water runnier.

A ribosome-sized sphere, radius 10 nm, in water at 37 °C would have D=32.9D = 32.9 µm²/s. In living E. coli, ribosomes were measured at 0.04 µm²/s, about 800 times slower. Most of them are threaded on mRNAs, several to a strand, and drag the whole tangle with them. Inside a cell, a formula for a sphere in water is a starting point, not the answer.

Put Stokes–Einstein into code. The trap is the units: nanometers to meters on the way in, and square meters to square micrometers on the way out.

Python exercise

Stokes–Einstein: from size to speed

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

Math toolkit: why time grows with distance squared

Now turn MSD =6Dt= 6Dt around. If a molecule needs to wander a distance xx, the typical time is when its mean square displacement reaches x2x^2:

x2=6Dt⟹t=x26Dx^2 = 6Dt \quad\Longrightarrow\quad t = \frac{x^2}{6D}

Two worked examples:

  • Across syn3A, 0.4 µm, for a protein in syn3A’s computer model, which uses D=1.0D = 1.0 µm²/s: t=0.42÷(6×1.0)=0.16÷6≈0.027t = 0.4^2 \div (6 \times 1.0) = 0.16 \div 6 \approx 0.027 s, about 27 ms.
  • Across E. coli, 1 µm, for GFP at 7.7 µm²/s: t=12÷(6×7.7)=1÷46.2≈0.022t = 1^2 \div (6 \times 7.7) = 1 \div 46.2 \approx 0.022 s, about 22 ms.

Lesson 1 rounded the E. coli crossing to “about 10 milliseconds”. That was an order-of-magnitude figure, from a rule of thumb that uses D of about 10 µm²/s. With GFP’s measured 7.7 µm²/s the careful answer is about 20 ms. Both say the same thing: a hundredth to a fiftieth of a second, very fast.

Because the distance is squared, the time grows much faster than the distance. For GFP in E. coli:

DistanceTimeCompared with 1 µm
1 µm22 ms1 ×
2 µm87 ms4 ×
10 µm2.2 s100 ×
1 mm6 hours1,000,000 ×

Twice as far takes four times as long. Ten times as far takes a hundred times as long.

Numbers like these, from microseconds to centuries, only fit on a chart with log axes, where each tick is ten times the one before (Lesson 1’s ruler). On log axes, a rule like t=x2/(6D)t = x^2/(6D) becomes a straight line. Take the log of both sides:

log⁡t=2log⁡x−log⁡(6D)\log t = 2 \log x - \log(6D)

Moving one tick to the right (10 times the distance) moves you two ticks up (100 times the time). So diffusion is a straight line with a slope of 2. A molecule with a bigger D draws a parallel line, lower down. Something that moves at a steady speed vv takes t=x/vt = x/v, a line with a slope of 1.

That steady-speed line is a motor protein. Kinesin walks along tracks called microtubules in 8-nm steps, burning one ATP per step, at about 0.8 µm/s. Diffusion beats the motor over short distances, and the motor wins over long ones. They take the same time where the lines cross:

x26D=xv⟹x∗=6Dv\frac{x^2}{6D} = \frac{x}{v} \quad\Longrightarrow\quad x^* = \frac{6D}{v}

For GFP in E. coli, x∗=6×7.7÷0.8≈57x^* = 6 \times 7.7 \div 0.8 \approx 57 µm. For a ribosome-sized complex at 0.04 µm²/s, it is only 0.3 µm. Small proteins diffuse happily across a whole human cell, but big cargo rides motors.

Write diffusion_time and its inverse, rms_distance, for 1, 2 or 3 dimensions.

Python exercise

How long does diffusion take?

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

Check yourselfA molecule takes 1 ms to diffuse 1 µm. How long does it take to diffuse 3 µm?

Three times the distance gives 32=93^2 = 9 times the time: about 9 ms.

Check yourselfHow long does GFP, at 7.7 µm²/s, take to cross a yeast cell 4 µm wide?

42÷(6×7.7)=16÷46.2≈0.354^2 \div (6 \times 7.7) = 16 \div 46.2 \approx 0.35 s. Or from the E. coli answer: 4 times the distance, 16 times 22 ms.

Check yourselfWhere does diffusion at D = 1.0 µm²/s cross over with kinesin at 0.8 µm/s?

x∗=6D/v=6×1.0÷0.8=7.5x^* = 6D/v = 6 \times 1.0 \div 0.8 = 7.5 µm. Shorter than that, diffusion is faster; longer, the motor is.

How fast molecules move in a cell

Here are measured diffusion coefficients, from water to the inside of a bacterium:

Molecule, whereD (µm²/s)
Water molecules in water, 25 °C2,299
Glucose in waterabout 600
A fluorescent glucose in E. coli50
GFP in salt water87
GFP in the cytoplasm of mammalian cellsabout 27
GFP in E. coli7.7
A larger protein (72 kDa) in E. coli2.5
Larger proteins in cells, typicallyabout 1
Ribosomes in E. coli0.04
A tagged mRNA in E. coliabout 0.03

The same GFP is 11 times slower inside E. coli than in water (87 against 7.7). E. coli’s cytoplasm slows diffusion 10–30 times; the cytoplasm of our own cells, no more than about 4 times. The big things are slowest of all: ribosomes and mRNAs move about 200 times slower than GFP in the same cell. mRNAs in E. coli don’t even follow the plain rule: their MSD grows more slowly than in proportion to time.

Nobody has measured a diffusion coefficient inside syn3A. Its whole-cell computer model (Thornburg et al., 2022) has to choose values, and it chooses cautiously: every protein diffuses at 1.0 µm²/s, a typical value for larger proteins, about 8 times slower than GFP in E. coli. RNAs get a D from a Stokes–Einstein formula with a very thick effective viscosity, tuned so that a 4,000-letter mRNA moves at 0.03 µm²/s, the measured E. coli value. Ribosomes and DNA are held still. The model cell is a cube of 64 × 64 × 64 boxes, each 8 nm on a side, and it moves molecules between boxes in time steps of 30 µs.

A modeler picks a cautious, slow value on purpose: if the cell still works with slow proteins, the result doesn’t hang on a lucky guess.

With t=x2/(6D)t = x^2/(6D), here are typical times to cross some cells. (Along an axon, a thin tube, motion is effectively 1D, so the time is x2/(2D)x^2/(2D), three times longer.)

Mover, D (µm²/s)syn3A, 0.4 µmE. coli, 1 µmHuman cell, 20 µmAxon, 1 m
Glucose in water, 60044 µs0.28 ms0.11 s26 years
GFP in mammalian cells, 271.0 ms6.2 ms2.5 s590 years
GFP in E. coli, 7.73.5 ms22 ms8.7 s2,100 years
syn3A model protein, 1.027 ms0.17 s67 s16,000 years
Ribosome in E. coli, 0.040.67 s4.2 s28 min400,000 years

Inside a bacterium, every protein gets everywhere in a fraction of a second. That is one reason bacteria are small.

The explorer puts all of these on one log–log chart. Each colored line is a real molecule; the green lines are motors. Tap a molecule and a distance to read off the time.

How long does it take?

The typical time to wander a distance by diffusion, for real molecules, from a ribosome’s width to the length of a nerve. Tap a molecule and a distance.

On log axes each step is ×10. Twice the distance takes four times the time, so diffusion lines have a slope of 2; motor lines a slope of 1.

syn3A’s cell cycle, 105 minkinesin, about 0.8 µm/sfast axonal transport10 nm100 nm1 µm10 µm100 µm1 mm1 cm10 cm1 m1 µs1 ms1 s1 min1 h1 day1 year1,000 yearsribosomesyn3AE. coliyeasthuman cell1 cm axon1 m axon

Molecule (D in µm²/s)

Distance

Tap a molecule and a distance. Each colored line shows how long diffusion takes; the green line is a kinesin motor walking at about 0.8 µm/s, and the green band is fast transport in nerve axons.

Typical time to wander a distance x (straight line from the start): x²/(6D) in 3D, x²/(2D) along a thin tube. One molecule can be faster or slower. D values: glucose BNID 104087; GFP in water and in mammalian cells, Swaminathan et al. (1997); small molecules in E. coli, Mika & Poolman (2011); GFP in E. coli, Elowitz et al. (1999); syn3A’s model, Thornburg et al. (2022); ribosomes, Bakshi et al. (2012); mRNA, Golding & Cox (2004). Kinesin 0.814 µm/s, Schnitzer et al. (2000); fast axonal transport, Roy et al. (2007).

Now the longest cells in your body. A motor neuron in your spinal cord sends an axon all the way to your toes, about a meter. Proteins are made near the cell body and needed at the far end. By diffusion along that meter, a GFP-sized protein would need

t=x22D=(106 μm)22×27 μm2/s=101254 s≈1.9×1010 s≈590 yearst = \frac{x^2}{2D} = \frac{(10^6\ \mu\text{m})^2}{2 \times 27\ \mu\text{m}^2/\text{s}} = \frac{10^{12}}{54}\ \text{s} \approx 1.9 \times 10^{10}\ \text{s} \approx 590\ \text{years}

Your body can’t wait that long, so it uses motors that walk. One kinesin at 0.8 µm/s would take about 14 days. Nerve cells’ fast axonal transport, which carries packages of cargo along microtubules, averages 2.3–4.6 µm/s and makes the trip in 2.5–5 days, faster than one kinesin in a test tube. A meter of walking is 109 nm÷8 nm=12510^9\ \text{nm} \div 8\ \text{nm} = 125 million steps, and so 125 million ATP.

Bacteria such as E. coli and syn3A have no kinesin-like cargo motors and no microtubule tracks. They don’t need them: across a cell less than a micrometer wide, diffusion is fast enough. Big cells pay for motors and tracks because diffusion can’t do the job.

In Special Delivery, you’re a courier inside a cell. Choose how your parcel travels, by diffusing or by riding a kinesin along a microtubule, and set your guess on the slider before you send it. Under the map, a log clock races from microseconds toward a thousand years. Beat the deadline to deliver, and guess within three times of the real time for the third star. The cells get bigger level by level, from syn3A to a meter of nerve.

Game · Special Delivery

Get the parcel there in time

Stars 0/18

A map of syn3A. The parcel starts at the pickup point and must reach the flag 0.4 µm away.

syn3A · 0.4 µm across

1. Across syn3A

Get a protein from one side of syn3A, the minimal cell, to the other: 0.4 µm.

Nothing carries it. It only gets there by being knocked about at random, so it diffuses. Deadline: 0.1 s.

First guess how long it will take, then press Send.

Real time in the cell0 s
Cargo
Method
move the slider

Each step on the clock is 10 times longer than the one before. It shows the typical time from the formula: one molecule can be faster or slower. The map is a flat drawing of a 3D trip.

How this game works

The delivery time is a formula, not a race: t = x² ÷ (6D) for diffusing across a cell, t = x² ÷ (2D) along a thin axon (a molecule can only go back and forth), and t = x ÷ v for a motor. The wandering trail is a seeded random walk, stretched in time so that it arrives at exactly that typical time.

Simplified: the map is drawn in 2D; time is slowed down or sped up (up to about 10 billion times) to fit a few seconds; real motors pause and switch tracks; fast axonal transport in nerves (200–400 mm a day) is faster than one kinesin in a test tube; the yeast level reuses GFP's value from E. coli because this lesson has no yeast measurement. Kinesin is drawn much larger than life, and its steps are slowed down: the counter shows the real number.

Sources: syn3A's model protein D (Thornburg et al. 2022), GFP in E. coli (Elowitz et al. 1999), ribosomes in E. coli (Bakshi et al. 2012), GFP in mammalian cytoplasm (Swaminathan et al. 1997), kinesin speed (Schnitzer, Visscher & Block 2000), axonal transport (Roy et al. 2007).

A crowded cell

So far we’ve imagined a molecule wandering through water. The inside of a cell is not like that. E. coli’s cytoplasm holds about 300–400 grams of protein and RNA per liter, a thick soup. Measured by the space the big molecules actually fill, they take up about 16% of the volume. Measured by the space they keep other molecules out of, which is more than their own volume, it is 34–44%.

For syn3A, we have pictures. In cryo-electron tomography, cells are frozen so fast that the water turns to glass instead of ice, then imaged in an electron microscope from many angles, and a computer builds a 3D picture, like a CT scan. Elizabeth Villa’s lab imaged syn3A this way (Gilbert et al., 2021). A small cell, about 400 nm across, held 503 ribosomes; a larger one, 820. The ribosomes were spread nearly at random through the whole cell. Unlike E. coli, syn3A has no separate region for its DNA. And the ribosomes stood out less against their background than in E. coli pictures, a hint that syn3A’s inside is even denser.

syn3A’s model cell, built on that tomogram, holds the 503 ribosomes where they were seen, the DNA, and over 77,000 proteins, 200 mRNAs and 5,800 tRNAs. A little arithmetic shows how tight that is. The cell’s volume is 3.35×1073.35 \times 10^7 nm³, so each protein has

3.35×107 nm377,000≈435 nm3,4353≈7.6 nm\frac{3.35 \times 10^7\ \text{nm}^3}{77{,}000} \approx 435\ \text{nm}^3, \qquad \sqrt[3]{435} \approx 7.6\ \text{nm}

to itself. The centers of neighboring proteins are about 7.6 nm apart. Proteins are about 5 nm across, so the gap between them is only about 2.6 nm, roughly ten water molecules. The ribosomes alone fill 6.2% of the cell. With the proteins and the DNA, big molecules fill roughly a fifth of syn3A: an estimate, since nobody has measured it.

Here is a slice through syn3A drawn to scale, from those counts. Positions are random, as the tomograms show for ribosomes, and every protein is drawn as a 5-nm ball.

1 · A slice through syn3A, to scale

A slice through the middle of syn3A, drawn to scaleA circle 400 nanometers across: syn3A cut through its middle, as if by a very thin knife. Its rim is the membrane, about 4.5 nanometers thick. Inside, the cut surface is packed with small gold dots, about 1,440 proteins; 37 larger violet circles, ribosomes, each up to 20 nanometers across; and about 350 tiny blue-gray dots and short ovals, places where DNA strands cross the slice. A scale bar shows 100 nanometers. A square, 100 by 100 nanometers, marks the patch shown enlarged in the next panel.2membrane4.5 nm thickribosomes37 cut, 20 nm wideDNA350 strands, 2 nmproteins1,440, 5 nm100 nm
A slice through syn3A, to scale. Cut the cell through its middle and this is what the cut would show: about 37 ribosomes, 1,440 proteins and 350 DNA strands in a circle 400 nm across. Big things cut off-center show as smaller circles. syn3A has no separate DNA region, so DNA is everywhere. Counts from the cryo-electron tomogram and the whole-cell model (Gilbert 2021; Thornburg 2022); positions are random, as the tomograms show for ribosomes; every protein is drawn as a 5-nm ball.

2 · Zoom: 100 × 100 nm

A 100 by 100 nanometer patch of syn3A's slice, three times biggerThe patch marked in the first panel, enlarged. It holds 122 gold protein cross-sections, 3 violet ribosome cross-sections with a grainy inside, and 28 small blue-gray DNA dots and ovals, with narrow gaps of water between them. A dimension line between two neighboring proteins reads 7.6 nanometers: the average distance between protein centers. A circle below magnifies one gap between two proteins, 2.7 nanometers wide, which holds about 10 water molecules side by side.7.6 nm10 nm7.6 nm: the averagedistance between proteincenters (in 3D)One gap, magnified 6 times:2.7 nm wide, about 10 watermolecules across(each 0.28 nm; to scale above)
Zoom: 100 × 100 nm. This patch holds 122 proteins, 3 ribosomes and 28 DNA strands. Protein centers sit about 7.6 nm apart on average, and proteins are about 5 nm across, so the gap between neighbors is often only about 2.6 nm: roughly ten water molecules.

3 · Who takes up the room

How much of the cell's volume big molecules fill, in syn3A and E. coliTwo measuring cylinders show each cell's volume sorted into layers. syn3A, an estimate: ribosomes 6.2 percent at the bottom, DNA 1.7 percent, proteins 11 to 15 percent, and water with small molecules filling the rest, about 79 percent. E. coli, measured: protein, RNA and DNA together fill 16 percent of the volume, and the rest is water. E. coli holds 300 to 400 grams of protein and RNA per liter.syn3A(an estimate)E. coli(measured)water andsmall molecules,about 80%proteins 11–15%an estimateDNA 1.7%ribosomes 6.2%water andsmall molecules,84%protein, RNAand DNA: 16%300–400 g/L ofprotein and RNA
Who takes up the room. Each cell's volume, sorted into layers. In syn3A, ribosomes fill about 6.2% and DNA 1.7%; proteins fill roughly 11–15%, an estimate from the model's 77,000 proteins (no one has measured it). In E. coli, protein, RNA and DNA fill 16% of the volume (Konopka 2009), and protein and RNA weigh 300–400 g per liter (Zimmerman & Trach 1991). About a fifth sounds small, but it leaves only nanometer gaps.

Why is a protein slower in a cell than in water? There are three causes, and a car in a city is a good picture of them:

  • A thicker fluid: the car’s speed on the open road is lower.
  • Binding: the protein sticks for a moment to other molecules, like a car waiting at stop lights.
  • Obstacles: it has to go around big things, like detours.

Crowding alone doesn’t set the slowdown. When E. coli cells slowly adapted to salty water, the space filled by their big molecules rose from 16% to 36% of the cell, yet GFP slowed only 2.4 times. When water was pulled out of cells suddenly, a similar rise slowed GFP 70 times (Konopka et al., 2009). What the molecules are doing matters, not just how much room they fill.

Crowding also changes the question that matters most: how long until a molecule finds its partner? For one molecule searching a volume VV for one target, where they react on touching at a distance RR, the average search time is

t=V4πDRt = \frac{V}{4\pi D R}

With D=7.7D = 7.7 µm²/s and R=5R = 5 nm, one protein finds one partner in about 69 ms in syn3A, about 2.1 s in E. coli, and about 1.7 hours in a human cell. In syn3A, one copy of a protein is already enough to find its partner many times a second. A big cell needs many copies.

Real searches can be stranger. The lac repressor, LacI, is an E. coli protein that switches genes off by sitting on one short stretch of DNA. In a test tube it finds that spot about 100 times faster than 3D diffusion allows, because it slides along the DNA. Inside living E. coli it is the opposite: one LacI takes 3–5 minutes, because it spends about 90% of its search stuck to the wrong DNA, sliding about 45 base pairs at a time and often sliding right past its target. DNA is a giant sticky decoy. syn3A has very few proteins like this; Lesson 6 comes back to them.

Crowd Surfer puts you inside a cube of syn3A, 100 nm on a side, packed as densely as the real cell. The glowing green protein is the size of GFP. Track it, and the game plots its mean square displacement against time; move your line onto the dots to measure D, first in water and then in the crowd. Then try a thicker fluid and some stickiness to slow it to what GFP really does in E. coli, race three molecules of different sizes to a target, and find how big a cell can be before one copy takes a second to find its partner.

3D game · Crowd Surfer

Surf through syn3A’s crowd

Stars 0/12
Cell time 0 µs1 s here = 10 µs in the cell
no crowd · fluid ×1 · sticky off

1. Track a protein

This green protein is the size of GFP (green fluorescent protein), in plain water at 37 °C. Nothing pushes it: water molecules knock it about at random, so it jiggles.

Press Start tracking. The game notes where it is every 0.1 µs and plots the mean square displacement (MSD: the average of the squared distance moved) against the time gap. In 3D, MSD = 6Dt, a straight line. Line up your line with the dots and read off D.

Stokes–Einstein predicts about 117 µm²/s. Goal: measure it within 20%.

Time is slowed 100,000 times: 1 s here is 10 µs in the cell.

seed 1

1 nm²/µs is the same as 1 µm²/s. Tap the chart to aim the line.

Change the cell settings for this step ✓
Thicker fluid
Stickiness
What’s real here, and what’s simplified
  • Real: the counts per volume (syn3A’s whole-cell model and cryo-electron tomogram: Thornburg et al. 2022, Gilbert et al. 2021), the sizes, and the measured D values (GFP: 87 µm²/s in water, 7.7 in E. coli). Stokes–Einstein’s 117 µm²/s is for a 2.8-nm sphere in water at 37 °C.
  • Positions are random. That is fair: tomograms show syn3A’s ribosomes spread nearly at random. The DNA is a random chain, not syn3A’s real fold, cut into strands of about 250 nm.
  • Ribosomes and DNA are held still, as in syn3A’s model. Proteins near the hero move by the same rule as the hero (a step into another molecule is refused); proteins far from it wait until it comes near, which saves work and gives the same answer. Their gentle wobble is only for looks.
  • Viscosity and stickiness settings are made up. D is measured over lags up to 1 µs; over longer times the crowd slows the hero a little more.
  • Molecules are drawn as spheres and blobs; real proteins are not spheres. A window is cut through the crowd in front of the hero so you can see it.
  • Time is slowed 100,000 times (1 s here = 10 µs in the cell); the derby runs faster still. The cube’s edges wrap around: leave one face and you come back in through the opposite one.

Reactions happen when molecules meet

Two molecules can only react if they meet. In a cell that means diffusing until they touch. Most meetings fail. The two may touch at the wrong angle: a protein’s binding site is a small patch of its surface, and the partner has to hit that patch. Or they may not have enough energy.

Many reactions have an energy barrier: the molecules must collide hard enough to get over a hump before they can react. Lesson 2’s Boltzmann factor, e−E/kTe^{-E/kT}, gives the share of collisions with at least that energy EE. A typical barrier of 50 kJ/mol is about 19.4 kT at 37 °C, and only e−19.4≈4×10−9e^{-19.4} \approx 4 \times 10^{-9} of collisions, about 4 in a billion, have that much energy. That share is very sensitive to temperature: warming from 25 to 35 °C multiplies the rate by about 1.9. That is the old chemists’ rule that reactions roughly double for every 10 °C.

Now count. Chemists write the concentration of A in square brackets, [A][A], in moles per liter (M). If A and B react when they meet, the number of meetings each second is proportional to the number of possible A–B pairs: double the A’s and there are twice as many pairs; double both and there are four times as many. So the rate of A+B→CA + B \rightarrow C is

rate=k[A][B]\text{rate} = k[A][B]

This is mass action. The constant kk is the rate constant: it bundles up how often pairs meet and how often a meeting works. A reaction with one ingredient, A→BA \rightarrow B (like an mRNA falling apart), has rate=k[A]\text{rate} = k[A].

The figure shows both kinds of rate law, and a reaction that runs both ways. The first panel is Lesson 3’s mRNAs decaying; we’ll come back to it in the next toolkit.

1 · First order: A → B

Eight mRNAs decaying with a 4-minute half-life, and Euler's methodA graph of how many mRNAs are left against time in minutes. It starts at 8 and curves down: 4 are left at 4 minutes, 2 at 8 minutes and 1 at 12 minutes, so half are gone every 4 minutes. The curve is 8 times e to the minus k t, with k equal to the natural log of 2 divided by 4 minutes, 0.173 per minute. Orange dots joined by straight lines show Euler's method with steps of 1 minute: 8, 6.61, 5.47, 4.52, 3.74. At 4 minutes Euler gives 3.74 instead of 4.00, a little low.0 min4 min8 min12 min0246804812time (minutes)mRNAs left4 left2 left1 leftEuler 3.74exact 4.00exact: 8 e−ktEuler, Δt = 1 mink = ln 2 ÷ 4 min = 0.173 per minuteEuler step:new = old + rate × Δtrate = −k × old
First order: A → B. Lesson 3's 8 mRNAs, with a half-life of 4 minutes. The more there are, the faster they go: dA/dt = −kA. Half are gone every 4 minutes. Euler's method (orange) takes 1-minute steps along the current slope and lands a little low: 3.74 instead of 4.00 at 4 minutes. Smaller steps get closer.

2 · Second order: A + B → C

Counting the pairs: the rate grows with A times BThree boxes of molecules, with a faint line joining every A to every B. The first box has 3 blue A molecules and 3 orange B molecules: 3 times 3 is 9 pairs. The second adds 3 more A: 6 times 3 is 18 pairs, twice as many. The third also adds 3 more B: 6 times 6 is 36 pairs, four times the first. So the rate is k times the concentration of A times the concentration of B, with k in units of per molar per second.3 A + 3 B3 × 3 = 9pairs6 A + 3 B6 × 3 = 18pairs (×2)6 A + 6 B6 × 6 = 36pairs (×4)rate = k [A] [B]k in M⁻¹ s⁻¹: per molar per secondpairs = len(A) * len(B)
Second order: A + B → C. A reaction needs an A to meet a B, so count the pairs. Double the A's and the pairs double; double both and there are four times as many. That is why the rate is k[A][B]. The rate is in molar per second and [A][B] in molar squared, so k has units of M⁻¹ s⁻¹.

3 · Both ways: A + B ⇌ C

The forward and reverse rates meet at equilibriumTen A and ten B molecules start alone in a box the size of syn3A. A graph of reactions per second against time in milliseconds shows two curves. The forward rate, k on times A times B, starts at 50 per second and falls as A and B are used up. The reverse rate, k off times C, starts at 0 and rises as C builds up. After about 200 milliseconds they meet at about 27 per second: equilibrium, where forward equals reverse, with about 7 A, 7 B and 3 C. Kd equals k off divided by k on, 1 micromolar.start: 10 A, 10 Bat equilibrium, about7 A7 B3 C (2.7 on average)equilibrium:forward = reverseKd = koff ÷ kon= 1 µM025500100200300time (ms)reactions per secondforwardkon [A] [B]reversekoff [C]
Both ways: A + B ⇌ C. Ten A and ten B in a box the size of syn3A, with kon = 10⁷ M⁻¹ s⁻¹ and koff = 10 per second (made-up but realistic values). As C builds up, the forward rate falls and the reverse rate rises, until they are equal: equilibrium. Reactions still happen both ways; the amounts just stop changing. Kd = koff/kon = 1 µM, about 20 molecules in syn3A.

In Collision Lab, blue A molecules and orange B molecules jiggle in a glass box. When an A bumps a B it usually bounces off; about one bump in twenty has enough energy, and then they lock together into C. Measure the starting rate, then change the number of molecules or the temperature to hit each target. The lab runs 48 boxes at once and averages them, because one box on its own is noisy. In the last two levels, C can split again.

3D game · Collision Lab

Make molecules meet

Stars 0/15
A 0B 0C 0 made
310 K · 37 °C
Collisions 0/sNot to scale · slowed down

1. Double it

A molecules (blue, with a knob) and B molecules (orange, with a dimple) jiggle at random in this box. When an A touches a B they collide. Only about 1 collision in 20 has enough energy to react: then the knob locks into the dimple and the pair becomes one molecule, C.

Each new C glows for a moment and leaves, and a fresh A and B drop in, so the amounts and the rate stay steady.

Your goal: double the reaction rate. First measure the starting rate. Then change how many A or B there are, and measure again.

Reactions per second (this box, last 10 s)0.0 /s

Goal: Reach 2 times the starting rate (1.7 to 2.3 times) by changing A or B.

A molecules10
B molecules10

Temperature: 310 K (37 °C, body temperature), fixed in this level.

Energies of collisions

Curve: how collision energies are spread at 310 K (the Boltzmann factor from Lesson 2). Gold: the collisions with enough energy to react. Bars: this box’s latest collisions.

How this model works, and what is simplified
  • The molecules are drawn huge and their motion is slowed down enormously. Real molecules in water jiggle like this (Brownian motion); they don’t fly in straight lines like a gas.
  • Each step, every molecule moves a small random distance. An A and a B that touch collide. A collision’s energy comes from the Boltzmann distribution, and it reacts if the energy clears the barrier, E = 3 kT at 37 °C, which happens for e−3 = 5% of collisions. That barrier is much lower than most real ones, so you can see reactions happen.
  • Warmer molecules take their steps more often, so they diffuse faster (D grows with T) and collide more often. Warm water is also runnier, about 2% per °C; the game ignores that.
  • Levels 1–3 use a “flow” box: each C leaves, and a fresh A and B appear at once at random places, so the amounts stay fixed. Levels 4–5 close the box, and each C splits back into A + B at a fixed rate.
  • Only 40 or so molecules in a small box. One box gives about 20 reactions in 10 seconds, and chance moves that by about ±5. So every measurement averages 48 identical boxes (the one on screen plus 47 hidden ones).

Math toolkit: rates of change

How fast is a reaction going? Write AA for the amount of A. The rate of change of A is written

dAdt\frac{dA}{dt}

and read “d A by d t”: how much A changes per second, right now. It is a speedometer. A speedometer doesn’t say how far you’ve gone, only how fast you’re going at this moment. If A drops from 100 to 90 molecules over 2 seconds, it is changing at about (90−100)÷2=−5(90 - 100) \div 2 = -5 molecules per second. The minus sign means A is going down.

The simplest reaction is one where each molecule has the same chance per second of disappearing, kk, whatever the others are doing. Then the more there are, the more disappear each second:

dAdt=−kA\frac{dA}{dt} = -kA

This is a differential equation: it says how A changes, not what A is. Its solution is exponential decay, the curve from Lesson 3:

A(t)=A0 e−ktA(t) = A_0\, e^{-kt}

where A0A_0 is the starting amount. It halves every half-life, t1/2=ln⁡2/kt_{1/2} = \ln 2 / k, so k=ln⁡2/t1/2k = \ln 2 / t_{1/2}. For syn3A’s mRNAs, with a 4-minute half-life, k=0.693÷4≈0.173k = 0.693 \div 4 \approx 0.173 per minute.

1 · First order: A → B

Eight mRNAs decaying with a 4-minute half-life, and Euler's methodA graph of how many mRNAs are left against time in minutes. It starts at 8 and curves down: 4 are left at 4 minutes, 2 at 8 minutes and 1 at 12 minutes, so half are gone every 4 minutes. The curve is 8 times e to the minus k t, with k equal to the natural log of 2 divided by 4 minutes, 0.173 per minute. Orange dots joined by straight lines show Euler's method with steps of 1 minute: 8, 6.61, 5.47, 4.52, 3.74. At 4 minutes Euler gives 3.74 instead of 4.00, a little low.0 min4 min8 min12 min0246804812time (minutes)mRNAs left4 left2 left1 leftEuler 3.74exact 4.00exact: 8 e−ktEuler, Δt = 1 mink = ln 2 ÷ 4 min = 0.173 per minuteEuler step:new = old + rate × Δtrate = −k × old
First order: A → B. Lesson 3's 8 mRNAs, with a half-life of 4 minutes. The more there are, the faster they go: dA/dt = −kA. Half are gone every 4 minutes. Euler's method (orange) takes 1-minute steps along the current slope and lands a little low: 3.74 instead of 4.00 at 4 minutes. Smaller steps get closer.

Most equations in a cell can’t be solved with a neat formula. But a computer can follow them step by step. Euler’s method is the simplest simulator there is: look at how fast things are changing, take a small step in time, and look again.

new=old+rate×Δt\text{new} = \text{old} + \text{rate} \times \Delta t

Δt\Delta t (delta t) is the length of one time step.

Do it by hand. Start with A0=100A_0 = 100, k=0.5k = 0.5 per second and Δt=1\Delta t = 1 s:

  • At t=0t = 0: rate =−0.5×100=−50= -0.5 \times 100 = -50, so new =100+(−50)×1=50= 100 + (-50) \times 1 = 50.
  • At t=1t = 1: rate =−0.5×50=−25= -0.5 \times 50 = -25, so new =50−25=25= 50 - 25 = 25.
  • Then 12.5, then 6.25.
Time (s)01234
Euler, Δt = 1 s100502512.56.25
Euler, Δt = 0.5 s10056.331.617.810.0
Exact, 100e−0.5t100e^{-0.5t}10060.736.822.313.5

Euler comes out low, because it uses the rate at the start of each step, and the rate keeps getting smaller during the step. Halve the step and it gets closer.

Now Lesson 3’s 8 mRNAs, with k=0.173k = 0.173 per minute and 1-minute steps: 8→6.61→5.47→4.52→3.748 \rightarrow 6.61 \rightarrow 5.47 \rightarrow 4.52 \rightarrow 3.74 after 4 minutes. The exact answer is 4.00, one half-life. The error is 0.26. With half-minute steps it is 0.13; with quarter-minute steps, 0.06. Halving the step halves the error.

What if the step is too big? With k=0.5k = 0.5 and Δt=2.5\Delta t = 2.5 s, the first step is 100+(−50)×2.5=−25100 + (-50) \times 2.5 = -25. A negative number of molecules: nonsense. The step overshot zero because kΔt=1.25k \Delta t = 1.25 is bigger than 1. Lesson 6 shows better methods that avoid this.

Write one Euler step, then a loop that follows a decay to the end.

Python exercise

Euler's method: decay step by step

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

Check yourself40 molecules decay with k = 0.25 per second. What does one Euler step of 1 second give, and the next?

Rate =−0.25×40=−10= -0.25 \times 40 = -10 per second, so 40+(−10)×1=3040 + (-10) \times 1 = 30. Then rate =−0.25×30=−7.5= -0.25 \times 30 = -7.5, so 30−7.5=22.530 - 7.5 = 22.5.

Check yourselfA complex falls apart with a half-life of 10 minutes. What is k?

k=ln⁡2/t1/2=0.693÷10≈0.069k = \ln 2 / t_{1/2} = 0.693 \div 10 \approx 0.069 per minute.

Check yourselfWhy does Euler's method undershoot a decay?

It uses the rate at the start of each step for the whole step. During a decay the rate keeps shrinking, so each step removes too much.

Second-order reactions and the diffusion limit

A reaction between two molecules, A+B→CA + B \rightarrow C, is called second order, because the rate depends on two concentrations. Its rate constant has strange-looking units, M⁻¹ s⁻¹, “per molar per second”. Bookkeeping explains them. The rate is in M/s (molar per second), and it equals k×[A]×[B]k \times [A] \times [B], which is k×M×Mk \times \text{M} \times \text{M}. So kk must be in M/s÷M2=M−1 s−1\text{M/s} \div \text{M}^2 = \text{M}^{-1}\,\text{s}^{-1}. A first-order kk, as in decay, is just per second.

Worked example: k=106k = 10^6 M⁻¹ s⁻¹, a typical value for two proteins, with [A]=[B]=1[A] = [B] = 1 µM =10−6= 10^{-6} M:

rate=106×10−6×10−6=10−6 M/s=1 μM per second\text{rate} = 10^6 \times 10^{-6} \times 10^{-6} = 10^{-6}\ \text{M/s} = 1\ \mu\text{M per second}

With equal starting amounts, half of them have paired up after 1/(k[A]0)=11/(k[A]_0) = 1 s. In syn3A, 1 µM is only about 20 molecules (Lesson 1).

In a cell as small as syn3A, it helps to think about single molecules. One particular A and one particular B, in a volume VV liters, react at

c=kNAV per secondc = \frac{k}{N_A V}\ \text{per second}

where NAN_A is Avogadro’s number. For syn3A, NAV=6.022×1023×3.35×10−17≈2.0×107N_A V = 6.022 \times 10^{23} \times 3.35 \times 10^{-17} \approx 2.0 \times 10^7, so c=k×4.96×10−8c = k \times 4.96 \times 10^{-8}. With k=106k = 10^6 M⁻¹ s⁻¹, one pair reacts at 0.050 per second: on average once every 20 seconds. In E. coli, 30 times bigger, it is once every 10 minutes.

If one A swims among 100 B’s in syn3A, it has 100 chances: it reacts at 100×0.050≈5100 \times 0.050 \approx 5 per second, so it waits about 0.2 s. This is called a pseudo-first-order rate, because the crowd of B’s turns a two-molecule reaction into a one-molecule waiting time.

How big can kk be? If every meeting reacts, the rate is set by diffusion alone. In 1917 Marian Smoluchowski worked out this diffusion limit:

k=4π(DA+DB)(RA+RB)×NA×1,000k = 4\pi (D_A + D_B)(R_A + R_B) \times N_A \times 1{,}000

The DD‘s add because both molecules move, the radii RR add because they react on touching, NAN_A turns pairs into moles, and the 1,000 turns cubic meters into liters. For two GFP-sized proteins in E. coli (D=7.7D = 7.7 µm²/s and R=2.8R = 2.8 nm each), it comes to about 6.5×1086.5 \times 10^8 M⁻¹ s⁻¹.

Something lovely happens in water. Use Stokes–Einstein for both molecules, with the same radius rr: then DA+DB=2kT/(6πηr)D_A + D_B = 2kT/(6\pi\eta r) and RA+RB=2rR_A + R_B = 2r. Multiply them and the radius cancels:

4π×2kT6πηr×2r=8kT3η4\pi \times \frac{2kT}{6\pi\eta r} \times 2r = \frac{8kT}{3\eta}

Big molecules move slowly but are big targets; small ones are quick but easy to miss; the two effects cancel exactly. In water at 37 °C, every equal-sized pair has the same limit, about 101010^{10} M⁻¹ s⁻¹.

Real protein pairs usually bind at about 10610^6 M⁻¹ s⁻¹, about a thousand times below the limit, because they have to touch in the right orientation. Measured values span from about 1 to 101010^{10} M⁻¹ s⁻¹. Enzymes (Lesson 5) have a typical efficiency of about 10510^5 M⁻¹ s⁻¹. And one famous result looked “too fast”: in a test tube, LacI finds its DNA target at 7×1097 \times 10^9 M⁻¹ s⁻¹, because it slides along the DNA instead of searching in 3D.

Write mass_action_rate and per_pair_rate, and see what 10610^6 and 10910^9 M⁻¹ s⁻¹ mean for one pair in syn3A.

Python exercise

Rates from mass action

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

Equilibrium and binding

Most binding can be undone. A and B stick together into a complex C, and C falls apart again:

A+B⇌CA + B \rightleftharpoons C

The forward rate is kon[A][B]k_\text{on}[A][B], with konk_\text{on} in M⁻¹ s⁻¹. The reverse rate is koff[C]k_\text{off}[C], with koffk_\text{off} per second, because each complex falls apart on its own. At first there is no C, so only the forward reaction runs. As C builds up, the reverse rate rises and the forward rate falls, until they are equal. Then the amounts stop changing: equilibrium. Molecules keep binding and letting go, but as many bind as let go each second.

At equilibrium, forward equals reverse:

kon[A][B]=koff[C]⟹[A][B][C]=koffkon=Kdk_\text{on}[A][B] = k_\text{off}[C] \quad\Longrightarrow\quad \frac{[A][B]}{[C]} = \frac{k_\text{off}}{k_\text{on}} = K_d

KdK_d, the dissociation constant, is a concentration. A small KdK_d means tight binding. For a typical protein pair with kon=106k_\text{on} = 10^6 M⁻¹ s⁻¹ and koff=10−3k_\text{off} = 10^{-3} per second (made-up but typical values), Kd=10−3÷106=10−9K_d = 10^{-3} \div 10^6 = 10^{-9} M = 1 nM. Each complex lasts 1/koff=1,0001/k_\text{off} = 1{,}000 s on average, about 17 minutes. With koff=1k_\text{off} = 1 per second instead, KdK_d is 1 µM and a complex lasts a second.

Play with the two rates. The curve shows the share of the target that is bound for each level of free partner, and the little syn3A cell shows one target binding and letting go at random, sped up.

How tightly do they bind?

A protein (pink) and its partner (blue) stick together at a rate set by kon and fall apart at a rate set by koff. Try the presets, or set the two rates yourself.

Kd = koff / kon
1 nM= 0.02 free copies in syn3A
Average lifetime, 1/koff
17 min1,000 s
Half-life, ln 2 / koff
12 minhalf of the pairs have split by then

Half bound when the free partner equals Kd. In syn3A, one free copy of a molecule is already about 50 nM.

Kd = 1 nM98% bound0.1 nM10 nM1 µM100 µMfree partner concentration0.010.11101001,000free copies in one syn3A cell0%50%100%
Sped up 500×: 1 s here = 8.3 min

The formula says 98%.

1 free copy = 49.6 nM

With 1 free copy of the partner (49.6 nM) and Kd = 1 nM, the target is bound 98% of the time: L / (L + Kd) = 49.6 nM / (49.6 nM + 1 nM).

Typical protein pair. Made-up but typical values: kon = 10⁶ M⁻¹ s⁻¹ (about how fast real protein pairs stick) and koff = 10⁻³ s⁻¹. Kd = 1 nM, and a complex lasts about 17 minutes on average.

One molecule in a syn3A cell (radius 200 nm, 3.35 × 10⁻¹⁷ L) is 1 / (6.02 × 10²³ × 3.35 × 10⁻¹⁷) = 49.6 nM. The preset rates are made up but typical. The free partners are held at the level you set, as the formula assumes; the target’s binding and letting go are random, with the odds and timing the rates give, and time is sped up or slowed down as labeled.

Math toolkit: fraction bound

How much of B is bound? Call the free partner’s concentration LL (for ligand, the molecule that binds), so L=[A]L = [A]. From the equilibrium, [C]=L[B]/Kd[C] = L[B]/K_d. The fraction of B that is bound is the bound B divided by all of B:

f=[C][B]+[C]=L[B]/Kd[B]+L[B]/Kd=L/Kd1+L/Kd=LL+Kdf = \frac{[C]}{[B] + [C]} = \frac{L[B]/K_d}{[B] + L[B]/K_d} = \frac{L/K_d}{1 + L/K_d} = \frac{L}{L + K_d}

In the second step, [B][B] cancels from top and bottom; in the third, multiply top and bottom by KdK_d.

Check it. When L=KdL = K_d, f=Kd/(2Kd)=1/2f = K_d/(2K_d) = 1/2: half bound when the free partner equals KdK_d. With 9 times KdK_d, f=9/10=90%f = 9/10 = 90\%. With a ninth of KdK_d, 10%. To go from 10% to 90% bound takes 81 times more partner.

Now the syn3A twist. How much is one molecule in syn3A? Its volume is 3.35×10−173.35 \times 10^{-17} L, so

16.022×1023×3.35×10−17≈4.96×10−8 M≈50 nM\frac{1}{6.022 \times 10^{23} \times 3.35 \times 10^{-17}} \approx 4.96 \times 10^{-8}\ \text{M} \approx 50\ \text{nM}

In syn3A, a single molecule is already fifty nanomolar. (In E. coli one molecule is 1.7 nM; in a human cell, 0.55 pM.) So with one free copy of a partner, a target with Kd=1K_d = 1 nM is bound 98% of the time; 10 nM, 83%; 50 nM, 50%; 500 nM, only 9%. A KdK_d of 1 µM is 20 free molecules in syn3A.

Check yourselfA target has Kd = 1 µM. In syn3A, how many free partner molecules does it need to be bound half the time? And 90% of the time?

Half: L=Kd=1L = K_d = 1 µM, about 20 molecules. 90%: L=9Kd=9L = 9K_d = 9 µM, about 180 molecules.

Check yourselfkon = 10⁶ M⁻¹ s⁻¹ and koff = 0.05 per second. What is Kd, and how bound is the target with one free partner in syn3A?

Kd=0.05÷106=5×10−8K_d = 0.05 \div 10^6 = 5 \times 10^{-8} M = 50 nM, which is one molecule in syn3A. So one free partner keeps it bound about half the time.

Check yourselfWhy do we need the free partner, not the total, in f = L / (L + Kd)?

Partner molecules that are already bound can’t bind again. Only the free ones set how often the target finds a partner.

Two ways to simulate

There are two ways to simulate a reaction like A+B⇌CA + B \rightleftharpoons C.

  • Particles: follow every molecule. Move each one by a random step, and when an A and a B come close, let them react with some chance. This is an agent-based model.
  • Equations: follow only the amounts. Write the rate as an ordinary differential equation, or ODE: dC/dt=kon[A][B]−koff[C]dC/dt = k_\text{on}[A][B] - k_\text{off}[C], and step it forward, for example with Euler’s method.

The equation gives the average; the particles give you the luck.

Here is the same reaction both ways, in a box with syn3A’s volume. On the left, every dot is a molecule: blue A, orange B, and glowing pairs for C. On the right, the jagged lines are particle runs and the smooth curve is the equation. The rates are made up but typical (kon=107k_\text{on} = 10^7 M⁻¹ s⁻¹, koff=10k_\text{off} = 10 per second, so Kd=1K_d = 1 µM) and chosen so a run takes seconds; every molecule diffuses at syn3A’s model value, 1.0 µm²/s. Work through the six challenges at the top.

Simulation · Particles vs Equations

One reaction, two simulators

Stars 0/18

A and B bind into a complex C, and C falls apart again: A + B ⇌ C. On the left every molecule wanders and binds when it meets a partner. On the right, the same reaction as an equation: one smooth curve.

Challenge 1: 100 A and 100 B molecules in a box with syn3A’s volume. Run it once and watch the jagged particle line next to the smooth line from the equations. What share of the A molecules ends up bound?

Run N = 100 once, then answer.
0.000 s of 0.5
A 100B 100C 0
322-nm cube · syn3A’s volumeghost: syn3A, 400 nm (same volume)
Next run: seed 1

Time slowed 40 times: 0.5 s of cell time plays in 20 s (slower if the computer can’t keep up).

This box

322 nm on a side (1× syn3A’s volume). 100 A and 100 B: 4.96 µM each. Kd = koff ÷ kon = 10 ÷ 10⁷ = 1 µM, which is 20.2 molecules in this box.

The equations

dC/dt = c·(N − C)² − koff·C, with the per-pair rate c = kon ÷ (NA·V) = 0.496 per second. C settles at 64.1 (64% bound) in about 22 ms (relaxation time). One solve: ….

The spread

Exact chances: C = 64.2 ± 3.75, a noise of 5.8%. Run the particles to measure it.

The particles

D = 1.0 µm²/s for A, B and C, steps of 50 µs (about 10 nm per axis). An A and a B closer than 20 nm bind at λ = 516 per second, which gives kon = 10⁷ M⁻¹ s⁻¹; C splits at koff = 10 per second.

The cost

Run the particles to time them. Equations: … for 500 steps.

Measured on this device with performance.now() around the simulation code only, not the drawing. The equation time is the average of hundreds of solves, because one is too quick for the clock.

Simplified, and honest about it: a cube with wrapped edges stands in for the round cell (same volume); molecules pass through each other (no crowding) and are drawn about 3.5 times too big; kon = 10⁷ M⁻¹ s⁻¹ and koff = 10 s⁻¹ are made up but typical, chosen so a run takes seconds, not hours; D = 1.0 µm²/s is syn3A’s model value. The particle model is the same as the course engine’s particles.py. Its Kd comes out about 3% below the equations’ (a side effect of the finite time steps), so particle runs settle a little above the curve on average. Time is slowed about 40 times at Normal speed.

What the challenges show:

  • With 100 A and 100 B in syn3A’s volume, the particle runs settle around 64% bound, right where the equation says.
  • To see the noise on its own, keep the concentration fixed (4.96 µM) and change the box: 10 molecules in a tenth of syn3A, 1,000 in ten syn3As. The equation says 64% for all three. The particle runs wobble around it by about 18%, 5.8% and 1.9%: the spread is 0.58/N0.58/\sqrt{N}. A hundred times more molecules, ten times less noise.
  • In one syn3A cell, 10, 100 or 1,000 molecules of each are 0.50, 4.96 and 49.6 µM, and the bound share is 27%, 64% and 87%. In a cell, the number of molecules is the concentration.
  • The particles cost far more. A run of 1,000 molecules takes seconds of computing; the equation, a fraction of a millisecond, whatever the number.

syn3A’s real whole-cell models face the same trade-off. The 3D model of 2022, which moves every molecule through a lattice of 8-nm boxes on a graphics card (GPU), took 8–10 hours to simulate 20 minutes of the cell’s life, so it was run for only 8 cells. The well-stirred model, with no space, simulates a whole cell cycle in about 4 hours, and was run for 207 cells. In 2026 the same group simulated the whole cell cycle in 3D with growth and division, at 4–6 days on two GPUs per cell cycle.

Space can change the answer. In the 3D model, mRNAs have to diffuse to one of 120 degradosomes, the machines that shred them, and their average half-life came out 1.97 minutes, against 3.4 minutes in the well-stirred model. The 3D model also found about 63 of syn3A’s 187 RNA polymerases busy early in the cell cycle. (Lesson 3’s “about 29” came from an earlier, well-stirred model; different models, different numbers.) The virtual cell will use equations where counts are large and particles or random events where they are small. That is Lesson 7.

Now write the equation side yourself: simulate A+B⇌CA + B \rightleftharpoons C with Euler’s method. Update all three amounts from the same old values in each step.

Python exercise

Challenge: simulate A + B ⇌ C

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

And the milestone challenge: run the same reaction with the particle simulator that’s written for you and with your equation, for 10 and 100 molecules, and measure the noise and the cost.

Python exercise

Milestone challenge: particles vs equations

Ctrl+Enter runs your code. Tab indents; press Esc then Tab to leave the editor.

Code milestone: your first simulator

Three new modules join the engine in this lesson:

  • virtualcell/diffusion.py holds random_walk, mean_square_displacement, stokes_einstein, diffusion_time and rms_distance.
  • virtualcell/kinetics.py holds mass_action_rate, per_pair_rate, euler_step, simulate_decay, simulate_binding and relative_spread.
  • virtualcell/particles.py is written for you: a small Brownian-particle simulator in a box where A and B react when they meet, plus the equilibrium formula.

constants.py has this lesson’s numbers: Boltzmann’s constant, water’s viscosity, syn3A’s volume, the measured diffusion coefficients and kinesin’s speed. Copy each function you wrote into its module, replacing the stub, then run the checks from the engine folder:

python -m pytest

When they pass, run the reaction both ways:

from virtualcell.constants import SYN3A_VOLUME_L
from virtualcell.kinetics import per_pair_rate, simulate_binding, relative_spread
from virtualcell.particles import simulate

pair = per_pair_rate(1e7, SYN3A_VOLUME_L)            # about 0.50 per pair per second
ode = simulate_binding(100, 100, 0, pair, 10.0, 1e-4, 0.5)
run = simulate(100, 100, seed=0)                     # 100 A + 100 B in syn3A's volume
settled = [c for t, c in zip(run["t"], run["C"]) if t >= 0.15]

print(round(ode["C"][-1]))                           # 64: the equation
print(round(sum(settled) / len(settled)))            # about 66 for this seed: the particles
print(round(relative_spread(settled), 3))            # about 0.04: the wobble
print(run["seconds"])                                # a few seconds of computing

Lesson 6 reuses simulate_binding with better solvers.

Numbers to remember

QuantityValue
kT at 37 °C4.3 × 10⁻²¹ J = 4.3 pN·nm (2.58 kJ/mol)
A random walk of N stepstypical distance √N steps
Mean square displacementMSD = 2dDt (d = 1, 2 or 3)
Time to wander a distance xt ≈ x²/(6D) in 3D; x²/(2D) along a line
Stokes–EinsteinD = kT/(6πηr)
Water’s viscosity0.89 mPa·s at 25 °C; 0.69 mPa·s at 37 °C
D of small molecules in waterabout 600 µm²/s (glucose)
D of GFP87 µm²/s in water, 7.7 in E. coli
D in syn3A’s model1 µm²/s for every protein; ribosomes held still
D of ribosomes and mRNA in E. coliabout 0.04 and 0.03 µm²/s
Crossing syn3A (0.4 µm) / E. coli (1 µm)a few ms to 30 ms / about 20 ms for a protein
1 m of axoncenturies by diffusion; days by fast axonal transport
Kinesin8-nm steps, 1 ATP each, about 0.8 µm/s
syn3A’s crowd503 ribosomes and over 77,000 proteins in 0.0335 µm³
E. coli’s crowd300–400 g/L of protein and RNA
One molecule in syn3Aabout 50 nM (E. coli about 1.7 nM)
First-order decaydA/dt = −kA; t½ = ln 2 / k
Euler’s methodnew = old + rate × Δt
Second-order ratek[A][B], k in M⁻¹ s⁻¹
Diffusion limit / typical protein pairabout 10⁹–10¹⁰ / about 10⁶ M⁻¹ s⁻¹
Kdkoff/kon; half bound when the free partner equals Kd
Noise of N moleculesabout 1/√N
Simulating syn3A in 3D8–10 GPU-hours per 20 minutes of cell time (2022)

Next lesson: enzymes and metabolism. You will see how enzymes speed up reactions, how fast they can work, and how syn3A turns sugar into energy, then use linear programming to predict which genes it can’t live without.

Sources and further reading

  • Brown R. A brief account of microscopical observations made in the months of June, July, and August, 1827, on the particles contained in the pollen of plants. Philosophical Magazine 4:161 (1828). See also Pearle P, et al. What Brown saw and you can too. American Journal of Physics 78:1278 (2010).
  • Einstein A. Über die von der molekularkinetischen Theorie der Wärme geforderte Bewegung von in ruhenden Flüssigkeiten suspendierten Teilchen. Annalen der Physik 17:549–560 (1905).
  • Perrin J. Mouvement brownien et réalité moléculaire. Annales de Chimie et de Physique 18:5 (1909).
  • Swaminathan R, Hoang CP, Verkman AS. Photobleaching recovery and anisotropy decay of green fluorescent protein GFP-S65T in solution and cells. Biophysical Journal 72:1900 (1997).
  • Elowitz MB, Surette MG, Wolf PE, Stock JB, Leibler S. Protein mobility in the cytoplasm of Escherichia coli. Journal of Bacteriology 181:197–203 (1999).
  • Konopka MC, et al. Cytoplasmic protein mobility in osmotically stressed Escherichia coli. Journal of Bacteriology 191:231–237 (2009).
  • Bakshi S, Siryaporn A, Goulian M, Weisshaar JC. Superresolution imaging of ribosomes and RNA polymerase in live Escherichia coli cells. Molecular Microbiology 85:21–38 (2012).
  • Golding I, Cox EC. RNA dynamics in live Escherichia coli cells. PNAS 101:11310–11315 (2004).
  • Zimmerman SB, Trach SO. Estimation of macromolecule concentrations and excluded volume effects for the cytoplasm of Escherichia coli. Journal of Molecular Biology 222:599–620 (1991).
  • Verkman AS. Solute and macromolecule diffusion in cellular aqueous compartments. Trends in Biochemical Sciences 27:27–33 (2002).
  • Gilbert BR, et al. Generating chromosome geometries in a minimal cell from cryo-electron tomograms and chromosome conformation capture maps. Frontiers in Molecular Biosciences 8:644133 (2021).
  • Thornburg ZR, et al. Fundamental behaviors emerge from simulations of a living minimal cell. Cell 185:345–360 (2022).
  • Thornburg ZR, et al. Bringing the genetically minimal cell to life on a computer in 4D. Cell (2026).
  • Schnitzer MJ, Visscher K, Block SM. Force production by single kinesin motors. Nature Cell Biology 2:718–723 (2000).
  • Roy S, et al. Rapid and intermittent cotransport of slow component-b proteins. Journal of Neuroscience 27:3131 (2007).
  • Smoluchowski M. Versuch einer mathematischen Theorie der Koagulationskinetik kolloider Lösungen. Zeitschrift für Physikalische Chemie 92:129–168 (1917).
  • Elf J, Li GW, Xie XS. Probing transcription factor dynamics at the single-molecule level in a living cell. Science 316:1191–1194 (2007).
  • Hammar P, et al. The lac repressor displays facilitated diffusion in living cells. Science 336:1595–1598 (2012).
  • Northrup SH, Erickson HP. Kinetics of protein–protein association explained by Brownian dynamics computer simulation. PNAS 89:3338–3342 (1992).
  • Milo R, Phillips R. Cell Biology by the Numbers. Garland Science, 2015. Free online at book.bionumbers.org, especially “What are the time scales for diffusion in cells?”.