Lesson 1NoviceAbout 90 minutes

The cell by the numbers

How big cells are, what is inside them, and how fast things happen there. Along the way you will learn the math for reasoning about it, one step at a time.

Watch first: what you'll learn2 minutes · narrated · captions

0:00 / 1:34
Read the transcript

Welcome to Virtual Cell. Over twelve lessons, you'll go from knowing no biology at all, to building a working, living cell in code.

The cell we'll build is real. It's called syn3A: a bacterium that scientists stripped down to just four hundred and ninety-three genes. It's about as simple as a living thing can be.

Lesson one is about numbers. Before you can simulate a cell, you need a feel for what's inside one: how big things are, how many of them there are, and how fast they move.

Cells cover an enormous range of sizes, so we'll start with powers of ten: a tidy way to write very big and very small numbers, and to multiply them in your head.

Then we'll zoom, from a human hair, down past cells and viruses, to single molecules. Blow everything up two hundred and fifty thousand times, and a ribosome becomes an ant, while syn3A becomes a mouse.

Next, counting. You'll work out the volume of a cell, and turn a concentration into an actual number of molecules. A cell like E. coli holds about three million proteins.

You'll learn to estimate like a biologist, with rough numbers that still land close to the truth.

And you'll see how fast things happen inside: from a chemical bond that vibrates in a few femtoseconds, to a whole cell dividing in under two hours.

Along the way, there are games, a quiz, and Python exercises that run right in your browser.

At the end, you'll write the first module of the virtual cell engine. 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:

  • Read, write, multiply, and divide numbers in scientific notation
  • Place atoms, proteins, viruses, and cells on a size scale, and explain why that scale has to be logarithmic
  • Calculate the volume of a cell and convert it to liters
  • Convert between a concentration and the actual number of molecules in a cell
  • Estimate how many proteins a cell contains using only rough numbers
  • Write the first module of the virtual cell engine in Python
On this page
  1. Why start with numbers
  2. Math toolkit: powers of ten
  3. How big is a cell?
  4. Math toolkit: logarithmic scales
  5. Guess the count
  6. Math toolkit: the volume of a cell
  7. Math toolkit: counting molecules
  8. Estimating like a biologist
  9. How fast do things happen?
  10. Code milestone: your first engine module
  11. Numbers to remember
  12. Sources and further reading
  13. Practice problems

Why start with numbers

Before you can simulate a cell, you need a feel for what is inside one: how big things are, how many of them there are, and how fast they move. Without that feel, you cannot tell whether a simulation’s output is plausible or nonsense.

This lesson builds that list, and it also teaches the math you need to work with it. The math is arithmetic with very large and very small numbers, explained slowly. If you have not done any math since school, that is fine. Every step is shown.

Two cells appear throughout the course:

  • E. coli (Escherichia coli) is a gut bacterium and the best-studied living thing on Earth. When biologists need a reference value, they usually measured it in E. coli first.
  • JCVI-syn3A (“syn3A” for short) is a bacterium that scientists at the J. Craig Venter Institute stripped down to only 493 genes. It is the cell we will eventually simulate, because it is about as simple as a self-sufficient cell gets.

Math toolkit: powers of ten

Cell biology constantly mixes huge numbers (billions of molecules) with tiny ones (billionths of a meter). Writing them out in full is error-prone, so scientists use powers of ten.

Positive powers: multiplying by 10

The expression 10310^3 is read “ten to the power of three”, or “ten to the third”. The small raised number is called the exponent. It counts how many tens you multiply together:

103=10×10×10=1,00010^3 = 10 \times 10 \times 10 = 1{,}000

A useful shortcut: the exponent is the number of zeros after the 1. So 10610^6 is 1 followed by six zeros, which is 1,000,000 (one million).

What about 10110^1 and 10010^0? 10110^1 is just one ten, so it equals 10. 10010^0 means you multiply no tens at all, which leaves you with 1. So 100=110^0 = 1. That can feel odd at first, but it keeps the pattern consistent: each step down in the exponent divides by 10.

PowerWritten outIn words
10010^01one
10110^110ten
10310^31,000one thousand
10610^61,000,000one million
10910^91,000,000,000one billion

Negative powers: dividing by 10

Keep stepping the exponent down past zero, and you keep dividing by 10:

10−1=110=0.110−2=1100=0.0110−3=11,000=0.00110^{-1} = \frac{1}{10} = 0.1 \qquad 10^{-2} = \frac{1}{100} = 0.01 \qquad 10^{-3} = \frac{1}{1{,}000} = 0.001

A negative exponent counts how many times you divide 1 by ten. It does not make the number negative. 10−310^{-3} is a small positive number, one thousandth.

Scientific notation

Scientific notation writes any number as (a number between 1 and 10) × (a power of ten):

3,000,000=3×1060.000002=2×10−63{,}000{,}000 = 3 \times 10^6 \qquad\qquad 0.000002 = 2 \times 10^{-6}

To convert a number, count how many places the decimal point has to move to leave one digit in front of it. Moving it left gives a positive exponent; moving it right gives a negative one. For 4,600,000 the point moves 6 places left, so it is 4.6×1064.6 \times 10^6.

Multiplying and dividing

Here is the main reason scientists like powers of ten. To multiply powers of ten, you add the exponents:

103×104=103+4=10710^3 \times 10^4 = 10^{3+4} = 10^7

Why? 10310^3 is three tens multiplied together and 10410^4 is four more, so the result is seven tens multiplied together.

When the numbers have a front part (called the mantissa), multiply the front parts and add the exponents separately:

(2×103)×(3×104)=(2×3)×103+4=6×107(2 \times 10^3) \times (3 \times 10^4) = (2 \times 3) \times 10^{3+4} = 6 \times 10^7

If the front part ends up 10 or bigger, shift one power of ten across. For example, 20×10520 \times 10^5 is the same as 2×1062 \times 10^6.

To divide, subtract the exponents:

6×1082×103=62×108−3=3×105\frac{6 \times 10^8}{2 \times 10^3} = \frac{6}{2} \times 10^{8-3} = 3 \times 10^5

Negative exponents follow exactly the same rules. You just have to be careful with the signs. Adding a negative number is the same as subtracting:

10−9×10−15=10−9+(−15)=10−2410−24×1023=10−24+23=10−110^{-9} \times 10^{-15} = 10^{-9 + (-15)} = 10^{-24} \qquad\qquad 10^{-24} \times 10^{23} = 10^{-24+23} = 10^{-1}

You will see exactly this calculation again later in the lesson, when you count molecules.

Now play with it. In Power Hop, each card multiplies your number, and the line shows that multiplying by a power of ten is just a hop: × 1,000 is three steps right, ÷ 1,000 is three steps left.

Game · Power Hop

Counting zeros

Moves 0 / par 2

Your cell starts at 1. Hop it to one million. Every card multiplies your number. Watch what each multiplication does on the line: multiplying is hopping, and the hop length is the power of ten you multiplied by.

★ 1,000,00010-2100102104106108
You are at 100 = 100

Metric prefixes

Instead of writing 10−610^{-6} meters, scientists attach a prefix to the unit. Each prefix in this table is 1,000 times smaller than the one above it:

PrefixSymbolPowerExample in biology
kilok10310^3E. coli’s genome is about 4,600 kilobase pairs
(none)10010^01 meter, 1 liter, 1 gram
millim10−310^{-3}The energy molecule ATP is present at about 1–10 millimolar
microµ10−610^{-6}An E. coli cell is about 2 micrometers (µm) long
nanon10−910^{-9}A protein is about 5 nanometers (nm) across
picop10−1210^{-12}An E. coli cell weighs about 1 picogram (pg)
femtof10−1510^{-15}An E. coli cell’s volume is about 1 femtoliter (fL)

The symbol µ is the Greek letter “mu”. When typing, people often write a plain u instead, as in um or uM.

Check yourselfWrite 4,600,000 in scientific notation.

4.6×1064.6 \times 10^6. The decimal point moves 6 places to the left.

Check yourselfWhat is (3 × 10⁴) × (2 × 10⁻⁹)?

Multiply the front parts: 3×2=63 \times 2 = 6. Add the exponents: 4+(−9)=−54 + (-9) = -5. The answer is 6×10−56 \times 10^{-5}.

Check yourselfHow many nanometers are in one micrometer?

Divide one by the other: 10−610−9=10−6−(−9)=103\frac{10^{-6}}{10^{-9}} = 10^{-6-(-9)} = 10^{3}. So 1 µm = 1,000 nm. Subtracting a negative number is the same as adding: −6+9=3-6 + 9 = 3.

How big is a cell?

Use the explorer below. Click any name to zoom to it, or drag the slider. The ruler at the top shows everything at once; the panel underneath draws whatever fits in the current view to scale, so you can compare sizes directly.

Explore: from atoms to cells

Light microscope limitNaked eye limit10 pm100 pm1 nm10 nm100 nm1 µm10 µm100 µm1 mmJCVI-syn3AEach step along this ruler is 10× bigger than the last. The shaded band is what you can see below.200 nmRibosome20 nmInfluenza virus100 nmJCVI-syn3A400 nm

Swipe the picture sideways to see all of it.

View width: 2 µm · 5 too small to see · 6 too big to fit

JCVI-syn3ACell400 nm

Our model cell: a synthetic bacterium about 400 nm across with only 493 genes, a loop of DNA (blue), and about 500 ribosomes (orange dots). This course builds a simulation of it.

Source: Breuer et al. 2019, eLife 8:e36842

Some things to notice as you zoom:

  • Each family of objects is roughly ten times bigger than the last. Small molecules are about 1 nm, proteins about 5 nm, molecular machines like the ribosome about 20 nm, viruses about 100 nm, bacteria about 1 µm, and human cells 10 to 100 µm.
  • syn3A is barely visible in a light microscope. Ordinary light microscopes cannot show details smaller than about 200 nm, because that is roughly half the wavelength of visible light. A 400 nm syn3A cell shows up as a blurry dot with no visible interior. Almost everything we know about the inside of cells comes from indirect methods such as electron microscopes and X-ray crystallography. The syn3A simulation we are working toward used images from cryo-electron tomography, a kind of 3D electron microscopy, to get the cell’s shape and the positions of its ribosomes.
  • A human cell is huge by comparison. You could fit thousands of E. coli inside one human cell.

Sizes this small are hard to picture, so try magnifying everything by the same amount. At 250,000 times, a ribosome becomes an ant and syn3A becomes a mouse. Because every size is multiplied by the same number, the comparisons stay true. Switch to Cell view to swap each everyday object for the thing it stands for, at the same size.

Magnify the cell 250,000 times

Every size is multiplied by the same number, so the comparisons stay true. If a ribosome were an ant, this is how big everything else would be.

2 mmThin hair= Water moleculeGrain of salt= GlucoseGrain of sand= A protein (GFP)Ant= Ribosome

Swipe the picture sideways to see all of it.

Scale bar: 2 mm magnified = 8 nm in real life · 1 smaller ones too small to see · 8 bigger ones off the edge

A ribosome becomes the size of an ant.

20 nm × 250,000 = 5 mm (in powers of ten: 2 × 10-8 m × 2.5 × 105 = 5 × 10-3 m)

About 5 mm. Ribosomes are the machines that build proteins.

Now go inside. Zoom Hunt puts you in a 3D scene inside an E. coli cell, with everything drawn at its true size. Pick a zoom, then hunt for each target. It covers about nine powers of ten, from hydrogen atoms to a human hair.

3D game · Zoom Hunt

Hunt through the powers of ten

View width 3 µm
500 nm

Zoom Hunt

You are inside an E. coli cell, and everything around you is drawn at its true size: water molecules, proteins, ribosomes, a flu virus outside, and cells far bigger than yours. Each round, pick how far to zoom, then find the target and click it.

Drag to look around · Scroll or pinch to zoom · Hover anything to see its size

Math toolkit: logarithmic scales

Look at the ruler at the top of the explorer. Each tick mark is ten times the one before it. That kind of scale is called logarithmic (or “log” for short).

Why not use an ordinary ruler? Suppose you drew E. coli 1 cm long. On that ruler, a hydrogen atom would be 0.0005 mm, far too small to see, and a human egg cell would be 60 cm long. No page can show both. A log scale gives each factor of ten the same amount of space, so atoms and eggs fit on one line.

What a logarithm is

The logarithm base 10 of a number, written log⁡10\log_{10}, answers the question: “10 to what power gives this number?”

log⁡10(1,000)=3because103=1,000\log_{10}(1{,}000) = 3 \quad \text{because} \quad 10^3 = 1{,}000 log⁡10(0.000001)=−6because10−6=0.000001\log_{10}(0.000001) = -6 \quad \text{because} \quad 10^{-6} = 0.000001

So a logarithm undoes a power of ten. For exact powers of ten, it is simply the exponent. For other numbers, it falls between two whole numbers. 2,000 is between 1,000 and 10,000, so log⁡10(2,000)\log_{10}(2{,}000) is between 3 and 4. It is about 3.3.

One value is worth remembering: log⁡10(3)≈0.5\log_{10}(3) \approx 0.5. So 3 sits roughly halfway between 1 and 10 on a log scale, and a factor of 3 is often called “half an order of magnitude”.

Orders of magnitude

The order of magnitude of a number is roughly its power of ten. “Two numbers differ by two orders of magnitude” means one is about 100 times the other. Each step on the explorer’s ruler is one order of magnitude.

Why this matters for modeling

The key rule of logarithms is that multiplying numbers corresponds to adding their logs:

log⁡10(a×b)=log⁡10(a)+log⁡10(b)\log_{10}(a \times b) = \log_{10}(a) + \log_{10}(b)

This is the “add the exponents” rule from the last section in a different form. On a log scale, multiplying by 10 always moves you the same distance, whatever number you start from. That is why log scales show up everywhere in biology: concentrations, reaction rates, and gene activity levels all span many orders of magnitude.

In Python, math.log10(2000) returns 3.301....

Practice placing things on a log scale with Magnitude Darts. When you have thrown a few, press Try a linear ruler to see why scientists bother with logs at all.

Game · Magnitude Darts

How big is it?

Throw a dart at the ruler where you think the target’s size belongs. Each tick is 10× the last, so aim for the right power of ten first.

light microscopelimitnaked eyelimit10 pm100 pm1 nm10 nm100 nm1 µm10 µm100 µm1 mm
Check yourselfWhat is log₁₀(1,000,000)?

6, because 106=1,000,00010^6 = 1{,}000{,}000.

Check yourselfOn the explorer's ruler, how many tick marks apart are 1 nm and 1 µm?

Three. 1 μm1 nm=10−610−9=103\frac{1\ \mu\text{m}}{1\ \text{nm}} = \frac{10^{-6}}{10^{-9}} = 10^3, and each tick is one factor of 10.

Guess the count

Before calculating anything, make some guesses. Getting them wrong is useful, because it shows you where your intuition needs work. Don’t aim for the exact number. Aim for the right power of ten.

Guess the count

Question 1 of 7

How many protein molecules are in one E. coli cell?

Math toolkit: the volume of a cell

How many molecules a cell holds depends on its volume, the amount of space inside it. So the next step is learning to calculate volumes.

Cubes and cubic units

A cube 1 µm long on each side has a volume of 1 cubic micrometer, written 1 µm³. The small 3 means the unit is multiplied by itself three times, once for each dimension: length × width × height. A cube with sides of length ss has volume:

V=s×s×s=s3V = s \times s \times s = s^3

Spheres

Many cells, including syn3A, are roughly spheres. The volume of a sphere is:

V=43πr3V = \frac{4}{3}\pi r^3

Here is what each part means:

  • rr is the radius, the distance from the center to the edge. It is half the diameter (the full width), so r=d/2r = d / 2.
  • π\pi (“pi”) is the constant 3.14159…, the same one from circles.
  • r3r^3 means r×r×rr \times r \times r.
  • 43π\frac{4}{3}\pi works out to about 4.19.

You don’t need to derive this formula; just use it. As a sanity check, a sphere fills about half (52%) of the smallest cube that fits around it.

Worked example: the volume of syn3A. The cell is 0.4 µm across.

  1. Radius: r=0.4/2=0.2r = 0.4 / 2 = 0.2 µm.
  2. Cube the radius: r3=0.2×0.2×0.2=0.008r^3 = 0.2 \times 0.2 \times 0.2 = 0.008 µm³.
  3. Multiply by 43π\frac{4}{3}\pi: V=4.19×0.008≈0.0335V = 4.19 \times 0.008 \approx 0.0335 µm³.

So syn3A’s volume is about 0.0335 µm³, or 3.35×10−23.35 \times 10^{-2} µm³.

The cube law

Because the radius is cubed, volume grows very fast with size. Double a cell’s width and its volume goes up 23=82^3 = 8 times. Make it 10 times wider and its volume goes up 103=1,00010^3 = 1{,}000 times. That is why a human cell, only 10 to 20 times wider than E. coli, has thousands of times its volume.

Our brains are bad at this: we picture area, not volume. Cube Fill trains your intuition. Guess, then watch the cubes pile up.

3D game · Cube Fill

How many fit inside?

Score 0 / 700

The gold cube is 2 times wider than the green cube. How many green cubes fit inside the gold one? Make a guess, then fill it and watch.

2× wider
0 cubes

From cubic micrometers to liters

Chemists measure concentration per liter, so you will need volumes in liters. Here is the conversion, step by step.

  1. A liter is the volume of a cube 10 cm on each side. 10 cm is 10−110^{-1} m, so 1 L=(10−1 m)3=10−3 m31\ \text{L} = (10^{-1}\ \text{m})^3 = 10^{-3}\ \text{m}^3.
  2. A micrometer is 10−610^{-6} m, so 1 μm3=(10−6 m)3=10−18 m31\ \mu\text{m}^3 = (10^{-6}\ \text{m})^3 = 10^{-18}\ \text{m}^3.
  3. Divide to find how many liters fit in one µm³: 10−18 m310−3 m3/L=10−18−(−3) L=10−15 L\frac{10^{-18}\ \text{m}^3}{10^{-3}\ \text{m}^3/\text{L}} = 10^{-18-(-3)}\ \text{L} = 10^{-15}\ \text{L}.
1 μm3=10−15 L=1 femtoliter (fL)1\ \mu\text{m}^3 = 10^{-15}\ \text{L} = 1\ \text{femtoliter (fL)}

So one E. coli cell holds about 10−1510^{-15} liters: a millionth of a billionth of a liter.

Now put this into code. The first function converts µm³ to liters; the second calculates the volume of a spherical cell.

Python exercise

Convert µm³ to liters

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

Python exercise

Volume of a spherical cell

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

Math toolkit: counting molecules

The mole

Molecules are so small that chemists count them in huge batches called moles, much as you might count eggs by the dozen. One mole is

NA=6.022×1023N_A = 6.022 \times 10^{23}

things. This number is called Avogadro’s number, written NAN_A. It looks arbitrary, but it was chosen for a practical reason: one mole of a substance weighs its molecular mass in grams. One mole of water molecules weighs 18 grams, a little more than a tablespoonful.

Concentration

Concentration says how much of something is dissolved in a given volume. Biologists measure it in molar (M), which means moles per liter:

1 M=1 mol/L1\ \text{M} = 1\ \text{mol/L}

Cells use the prefixes from earlier. The small molecules of metabolism are often in the millimolar (mM) range. Many proteins are present at micromolar (µM) or nanomolar (nM) concentrations.

From concentration to molecules

To find how many molecules are in a cell, you need its volume and the concentration:

N=C×V×NAN = C \times V \times N_A
  • NN is the number of molecules (what we want).
  • CC is the concentration in mol/L.
  • VV is the volume in liters.
  • NAN_A is Avogadro’s number, in molecules per mole.

You can check the formula by tracking the units. They cancel like fractions:

molL×L×moleculesmol=molecules\frac{\text{mol}}{\text{L}} \times \text{L} \times \frac{\text{molecules}}{\text{mol}} = \text{molecules}

The liters cancel, then the moles cancel, and you are left with molecules, which is what you wanted.

Worked example 1: a protein at 1 nM in E. coli.

N=(1×10−9 molL)×(1×10−15 L)×(6.022×1023 moleculesmol)N = (1 \times 10^{-9}\ \tfrac{\text{mol}}{\text{L}}) \times (1 \times 10^{-15}\ \text{L}) \times (6.022 \times 10^{23}\ \tfrac{\text{molecules}}{\text{mol}})

Multiply the front parts: 1×1×6.022=6.0221 \times 1 \times 6.022 = 6.022. Add the exponents: −9+(−15)+23=−1-9 + (-15) + 23 = -1. So

N=6.022×10−1≈0.6 moleculesN = 6.022 \times 10^{-1} \approx 0.6 \text{ molecules}

That gives a famous rule of thumb: in an E. coli cell, 1 nM is about one molecule.

Worked example 2: a protein at 1 µM in syn3A. The volume is 0.03350.0335 µm³, which is 3.35×10−173.35 \times 10^{-17} L.

N=(1×10−6)×(3.35×10−17)×(6.022×1023)N = (1 \times 10^{-6}) \times (3.35 \times 10^{-17}) \times (6.022 \times 10^{23})

Front parts: 3.35×6.022≈20.23.35 \times 6.022 \approx 20.2. Exponents: −6−17+23=0-6 - 17 + 23 = 0. So N≈20.2×100≈20N \approx 20.2 \times 10^0 \approx 20 molecules.

Try some values in the calculator. Switch between cells and notice how much the count changes for the same concentration.

Calculator: concentration ⇄ molecules

Rule of thumb; real cells range from about 0.5 to several µm³ (Milo & Phillips).

  1. Volume in litersV = 1 µm³ × 10−15 L/µm³ = 10-15 L
  2. Moles = concentration × volumen = 10-9 mol/L × 10-15 L = 10-24 mol
  3. Molecules = moles × Avogadro’s numberN = 10-24 × 6.022 × 1023 = 0.602

≈ 0.602 molecules per cell

Each dot is one molecule, rounded to a whole number.

With an average of 0.6 per cell, about 55% of cells would have none of this molecule at any moment (assuming molecules are scattered at random; Lesson 7 explains why).

Now hop through the same calculation. Notice the huge leap that Avogadro’s number makes: almost 24 powers of ten in one move.

Game · Power Hop

1 nM in E. coli: the moles

Moves 0 / par 1

A protein is at 1 nM: 10⁻⁹ moles in every liter. How many moles are inside one E. coli? Every card multiplies your number. Watch what each multiplication does on the line: multiplying is hopping, and the hop length is the power of ten you multiplied by.

★ moles in one E. coli10-2410-2110-1810-1510-1210-910-610-3100
You are at 10-9 = 10-9

What does “0.6 molecules per cell” actually look like? In Cell Lottery, molecules land at random in 25 cells. Watch how many cells end up with none, then take on the challenges.

3D game · Cell Lottery

When concentration is a count

Challenges 0/4

Challenge: Set E. coli to about 1 nM and roll five times. Watch how many molecules each cell gets. Every roll fills 25 cells at random, so cells at the same concentration still end up with different counts.

E. coli at 1 nM
Average per cell: 0.6

Going the other way

If you know how many molecules there are and want the concentration, rearrange the formula by dividing both sides by V×NAV \times N_A:

C=NNA×VC = \frac{N}{N_A \times V}

In words: turn molecules into moles (divide by NAN_A), then divide by the volume.

Python exercise

From concentration to molecule count

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

Python exercise

From molecule count to concentration

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

Estimating like a biologist

In the quiz you guessed that E. coli contains some number of proteins. Now you will estimate it with nothing but multiplication. This kind of rough chained calculation is called a Fermi estimate, after the physicist Enrico Fermi. Each input is only roughly right, but the errors tend to partly cancel, and the result usually lands within a factor of a few.

Step 1: the mass of the cell. Cells are mostly water, so their density is close to water’s: 1 gram per milliliter. An E. coli cell is 1 µm³, which is 10−1510^{-15} L, which is 10−1210^{-12} mL. So it weighs about 10−1210^{-12} g, one picogram.

Step 2: the dry mass. About 70% of the cell is water. The remaining 30% is the dry mass: 0.3×10−120.3 \times 10^{-12} g.

Step 3: the protein mass. About 55% of the dry mass is protein: 0.55×0.3×10−12≈1.65×10−130.55 \times 0.3 \times 10^{-12} \approx 1.65 \times 10^{-13} g.

Step 4: the mass of one protein. Proteins are chains of building blocks called amino acids (Lesson 3 explains them). A typical protein has about 300 amino acids, and each weighs about 110 daltons (Da). A dalton is the unit for the mass of a molecule. It is roughly the mass of one hydrogen atom, and it is defined so that a molecule of mass MM daltons weighs MM grams per mole. So a typical protein is

300×110=33,000 Da=33,000 g/mol300 \times 110 = 33{,}000\ \text{Da} = 33{,}000\ \text{g/mol}

To get the mass of a single protein, divide by the number of molecules in a mole:

33,000 g/mol6.022×1023 molecules/mol=3.3×1046.022×1023 g≈5.5×10−20 g\frac{33{,}000\ \text{g/mol}}{6.022 \times 10^{23}\ \text{molecules/mol}} = \frac{3.3 \times 10^{4}}{6.022 \times 10^{23}}\ \text{g} \approx 5.5 \times 10^{-20}\ \text{g}

Step 5: divide. The number of proteins is the total protein mass divided by the mass of one protein:

1.65×10−13 g5.5×10−20 g=1.655.5×10−13−(−20)=0.3×107=3×106\frac{1.65 \times 10^{-13}\ \text{g}}{5.5 \times 10^{-20}\ \text{g}} = \frac{1.65}{5.5} \times 10^{-13-(-20)} = 0.3 \times 10^{7} = 3 \times 10^6

About 3 million proteins. Measurements put the real number at roughly 2 to 4 million. Starting from a few rough facts, you got the right answer.

Here is the same estimate as a Power Hop. Multiplying by a fraction is a small hop backward; dividing by something tiny is a giant leap forward.

Game · Power Hop

Fermi: proteins in E. coli

Moves 0 / par 3

An E. coli cell weighs 10⁻¹² g. Hop your way to the number of protein molecules inside it. Every card multiplies your number. Watch what each multiplication does on the line: multiplying is hopping, and the hop length is the power of ten you multiplied by.

★ about 3 million proteins10-1210-910-610-3100103106
You are at 10-12 = 10-12

Python exercise

Challenge: estimate the proteins in a cell

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

How fast do things happen?

Sizes and counts are two-thirds of the picture. The other third is time. Here are typical timescales inside a cell, from fastest to slowest:

EventTypical time
A chemical bond vibrates once10−1410^{-14} s (10 femtoseconds)
A protein drifts across an E. coli cell (about 1 µm)10−210^{-2} s (10 milliseconds)
A typical enzyme carries out one reaction10−110^{-1} s (the middle value is about 10 per second)
A ribosome adds one amino acid to a proteinabout 0.07 s (10–20 per second in E. coli)
Making a typical 300-amino-acid proteinabout 20 s
Copying a 1,000-letter gene into RNAabout 20 s (40–80 letters per second)
A typical RNA message lasts before being destroyed (E. coli)a few minutes
Copying the entire E. coli genomeabout 40 minutes
E. coli divides (rich food, body temperature)about 20 minutes
syn3A dividesabout 105 minutes
A human cell divides (in a lab dish)about 24 hours

The fastest and slowest entries differ by about 19 orders of magnitude.

Test your sense of time with another round of darts, this time on a clock that runs from femtoseconds to days.

Game · Magnitude Darts

How long does it take?

Throw a dart at the clock ruler where you think the target’s duration belongs. Each tick is 10× the last, so aim for the right power of ten first.

1 second1 minute1 hour1 day1 fs1 ps1 ns1 µs1 ms1 s17 min12 days

Worked example: copying the genome. The E. coli chromosome is a loop of 4.6×1064.6 \times 10^6 base pairs. Copying starts at one point and proceeds in both directions at once, so there are two copying machines (called replication forks), each moving at about 1,000 base pairs per second. The time to finish is

4.6×106 bp2×1,000 bp/s=2.3×103 s≈38 minutes\frac{4.6 \times 10^6\ \text{bp}}{2 \times 1{,}000\ \text{bp/s}} = 2.3 \times 10^3\ \text{s} \approx 38\ \text{minutes}

Now look at the table again. E. coli can divide every 20 minutes, but copying its genome takes about 40. How?

Code milestone: your first engine module

The functions you wrote in this lesson are the first piece of the virtual cell. Every later lesson will need to convert between volumes, concentrations, and molecule counts, and now it can.

If you are building the engine on your own computer, the course repository has an engine folder containing the Python package virtualcell. Two files belong to this lesson:

  • virtualcell/constants.py has Avogadro’s number, unit conversions, and reference values for syn3A and E. coli, each with its source. It is written for you. The browser exercises above load this same file, which is why from virtualcell.constants import AVOGADRO worked in them.
  • virtualcell/units.py has empty versions of your first four functions. Each one raises NotImplementedError until you fill it in.

To finish the milestone:

  1. Copy each function you wrote above into units.py, replacing its stub.
  2. In a terminal, go to the engine folder and run the checks:
python -m pip install -e ".[dev]"
python -m pytest

When every test passes, the module is done. Later lessons will use it like this:

from virtualcell.units import count_from_concentration, um3_to_liters, sphere_volume_um3
from virtualcell.constants import SYN3A_DIAMETER_UM

volume = um3_to_liters(sphere_volume_um3(SYN3A_DIAMETER_UM))
protein_count = count_from_concentration(10e-6, volume)  # a 10 µM protein in syn3A: about 200

Numbers to remember

You don’t need to memorize all of this lesson. Remember these, roughly:

QuantityValue
A protein2–10 nm across
A ribosomeabout 20 nm
JCVI-syn3A400 nm across, 493 genes, divides in about 105 minutes
E. coliabout 1 µm³, 4.6 million base pairs, 3 million proteins, divides in about 20 minutes
A human cell10–20 µm across, about 3,000 µm³
1 µm³10−1510^{-15} L, one femtoliter
1 nM in E. coliabout one molecule
Avogadro’s number6.022×10236.022 \times 10^{23} per mole

Next lesson: what the molecules in the cell actually are. You will meet DNA, RNA, proteins, lipids, and the small molecules of metabolism, and see why oily molecules arrange themselves into membranes without any help.

Sources and further reading

  • Milo R, Phillips R. Cell Biology by the Numbers. Garland Science, 2015. Free online at book.bionumbers.org. The source for most rule-of-thumb values in this lesson.
  • BioNumbers database, Harvard Medical School.
  • Breuer M, et al. Essential metabolism for a minimal cell. eLife 8:e36842 (2019). Size and genome of syn3A.
  • Thornburg ZR, et al. Fundamental behaviors emerge from simulations of a living minimal cell. Cell 185:345–360 (2022).
  • Sender R, Fuchs S, Milo R. Revised estimates for the number of human and bacteria cells in the body. PLoS Biology 14:e1002533 (2016).
  • Bremer H, Dennis PP. Modulation of chemical composition and other parameters of the cell at different exponential growth rates. EcoSal Plus (2008). Ribosome counts and translation rates.
  • Bar-Even A, et al. The moderately efficient enzyme. Biochemistry 50:4402–4410 (2011). Typical enzyme speeds.
  • Blattner FR, et al. The complete genome sequence of Escherichia coli K-12. Science 277:1453–1462 (1997).
  • Ormö M, et al. Crystal structure of the Aequorea victoria green fluorescent protein. Science 273:1392–1395 (1996).