Reading Band Sizes Off a Gel Photo
6 min read · Updated October 30, 2026
Sizing a band by eye against the nearest ladder rung is accurate to about a rung, which is a factor of 1.3 in the middle of a 1 kb ladder. Calibrating the lane properly takes a minute and is the difference between knowing a product is the right size and assuming it.
The arithmetic is simple. The two ways it goes wrong are not visible on the gel.
Migration is linear in the logarithm of size
Over a gel's resolving range, how far a fragment runs is close to a straight-line function of log10 of its size. Mark where each ladder rung landed, fit a line through those points, and any other band's distance converts to a size.
Three rungs is the minimum, and the reason is not precision: two points fit a line exactly, so a fit through two rungs has no residuals and cannot show that one of them was marked on the wrong band. The third point is what makes the calibration checkable.
Distances can be in pixels, millimetres or anything else, as long as every mark is measured the same way from the same reference line — the wells are the usual choice.
Two ladders are sold as 1 kb, and they are different below 4 kb
NEB's 1 kb ladder and Thermo's GeneRuler 1 kb are both called a 1 kb ladder and have different rungs. NEB's runs 10,000, 8,000, 6,000, 5,000, 4,000, 3,000, 2,000, 1,500, 1,000 and 500 bp. GeneRuler's runs 10,000, 8,000, 6,000, 5,000, 4,000, 3,500, 3,000, 2,500, 2,000, 1,500, 1,000, 750, 500 and 250 bp. Above 4 kb they agree; below it they do not.
Take ten marks from a lane of the NEB ladder and tell the software they are GeneRuler's first ten. The fit comes back with R-squared 0.9655 — a number most people would accept — and a band that is genuinely 1,350 bp is reported as 2,410 bp. The error is a factor of 1.8 and nothing on the report looks wrong.
The fit degrades gracefully because the two ladders share their top rungs and diverge gradually, which is exactly what makes this failure quiet. Identify the ladder from the tube, not from the lane.
R-squared hides a single bad rung; the residuals do not
Mark one rung in the wrong place — the 3,000 bp band clicked where a 2,400 bp band would sit, which is what happens when a doublet is read as one band — and the overall fit still reports R-squared 0.9947.
The per-rung residuals say it plainly: every rung sits at +1.6% to +3.0% of its fitted size except the mis-marked one, which is off by −18%. One number out of line in a column of agreeing numbers is far easier to see than a correlation coefficient three decimal places from 1.
That mis-marked rung also moved the query band from 1,350 to 1,380 bp — a 2% error, which in this case does not matter and in a lane calibrated on fewer rungs would be much larger. The residual column is the check worth reading every time.
Outside the marked rungs, the line is an extrapolation
A fit is an interpolation between the rungs you marked. Past the last one it is an extension of a straight line into the region where agarose migration stops being log-linear, which is exactly where the gel has run out of resolving power.
A band beyond the marked span should be reported as extrapolated rather than quietly given a number — in the worked lane, a band past the 500 bp rung comes back as 404 bp with that flag on it. Treat such a value as an order of magnitude, and if the size matters, run a ladder that brackets it.
What a size measurement on a gel can and cannot settle
- It can tell a correct product from a product of a clearly different length — an insert present or absent, a digest that cut or did not.
- It cannot resolve small differences. A few per cent is within the error of marking and fitting, so a 20 bp difference in a 1 kb band is not something a gel settles.
- Supercoiled plasmid does not run at its length. Uncut plasmid migrates faster than linear DNA of the same size, so sizing an uncut miniprep against a linear ladder gives a number that means nothing.
- A band's intensity is not its molarity. A larger fragment binds more stain, so an equimolar digest shows the big fragment brighter.
Frequently asked questions
How do I calculate a band size from a gel photograph?
Measure how far each ladder band ran from the wells, fit a straight line of log10(size) against distance through at least three of them, and read your band's distance off that line. Any consistent unit works. The fit should be checked by its per-rung residuals, not only by R-squared.
One ladder rung's residual is far off. What went wrong?
Usually it was marked on the wrong band — a doublet read as one band, or a mis-click. That shows as a single large residual while every other rung agrees to a few per cent, and the overall R-squared can still look fine. Re-mark that rung before reading any size off the lane.
Does it matter which 1 kb ladder I pick?
Yes, below 4 kb. NEB's 1 kb ladder and Thermo's GeneRuler 1 kb share their upper rungs and differ underneath, so choosing the wrong one still fits well and sizes bands wrongly — in a worked example, a 1,350 bp band read as 2,410 bp at R-squared 0.97.
Can I size a band that ran past the last ladder rung?
Only roughly. Beyond the marked rungs the calibration is an extrapolation into the range where migration is no longer log-linear, which is also where the gel has stopped resolving. Use it as an order of magnitude, and rerun with a ladder that brackets the band if the number matters.
Related references
Related tools
Mark the ladder on your gel photograph, click a band, get its size in bp.
Predict restriction fragments and see the simulated agarose gel with a ladder.
Work backwards from the size you measured: which pairs of priming sites on your template could make a product that big, and can their 3' ends actually extend?
Diagnose gel problems (no bands, smearing, wrong size, primer-dimer, degradation) with a fully deterministic symptom guide that links to the right SeqBench tools.
Find the restriction digest that tells your intended construct apart from the empty vector, a flipped insert or a mis-assembly — with the bands you would actually be able to read.