BCA loading calculator

A562 → µg/µL against the standard curve → western-blot loading recipe

Standard curve

A straight line through the BSA standards, exactly as LINEST fits it on the Std curve sheet. Everything below is worked out from the series you pick here.

The spreadsheet does not settle which series the curve is fitted to. The sheet holds three absorbance columns against the same BSA amounts: column B, labelled A562 (used for fit), and two replicate series labelled Curva 1 and Curva 2. LINEST reads column B only, and the sheet hedges next to the intercept with the comment fit uses col B (A562). But column B is not a replicate of the other two, it is an older, lower series: at 0 µg it reads 0.0795 where Curva 1 reads 0.1341 and Curva 2 reads 0.1359. Which one belongs to your plate is yours to say, so pick it. The default reproduces the spreadsheet.
BSA µg/well Column B A562 Curva 1 Curva 2 Predicted A562
Predicted is the fitted line read back at that BSA amount, so you can see where the fit misses.
SeriesSlopeIntercept A562 range

Parameters

These are the spreadsheet’s yellow parameter cells. They apply to every sample below.

target ÷ aliquot volume. A sample below this is flagged.
how much lysate went into the BCA well
used for any sample row you leave blank
the spreadsheet uses 2.5%

Samples

One to three A562 readings per sample; the mean is taken automatically and one reading is fine. Dilution is the factor you diluted the lysate by before the BCA well. The green columns are the volumes you pipette.

What this works out, and where it differs from the spreadsheet

The curve. slope and intercept are a least-squares straight line of A562 on BSA µg/well, which is what INDEX(LINEST(...),1) and INDEX(LINEST(...),2) return. R² is the third statistic of the same fit.

Each sample. mean A562 → µg in well = (mean − intercept) ÷ slopeconc = µg in well × dilution ÷ well volumetotal protein = conc × lysate volume. Then the recipe: lysate per aliquot = target ÷ conc, RIPA per aliquot = aliquot volume − that, aliquots = total protein ÷ target, RIPA total = RIPA per aliquot × aliquots, final sample volume = lysate volume + RIPA total, buffer = final volume ÷ (nX − 1), β-mercap = (final volume + buffer) × %, total = final volume + buffer + β-mercap.

The last column is the honest one, and it is the same for every sample. µg actually loaded = total protein ÷ total volume × aliquot volume. It comes out below the target because the buffer and the β-mercaptoethanol dilute the sample after it was brought to the target concentration. Work the algebra through and it cancels to target × (nX − 1) ÷ nX ÷ (1 + %), which has no sample in it at all: with 100 µg per 20 µL, 4X buffer and 2.5% β-mercaptoethanol it is 73.17 µg for every lane, whatever the reading was. That is the point of normalising each sample to the same concentration first, and it is a useful check: if two samples show different numbers here, one of them is flagged. It is the spreadsheet’s own behaviour, reproduced and not corrected.

The worked example carried over from the spreadsheet. Its saved sample 1 is A562 0.300 in a 3 µL well, dilution 1, 41 µL of lysate, fitted on column B. That gives 15.872 µg in the well, 5.291 µg/µL, 216.92 µg total, 2.17 aliquots, 2.38 µL RIPA, 43.38 µL sample, 14.46 µL of 4X buffer, 1.45 µL β-mercap, 59.29 µL total and 73.17 µg per 20 µL loaded. Type it in and you should get those numbers back.

Three things this does that the spreadsheet does not.

  • It lets you choose the standard series, because the sheet fits column B while carrying two other series that disagree with it. Nothing is averaged unless you ask for it.
  • It flags a reading below the lowest standard as well as above the highest. The sheet checks the top only, so a reading under the blank is silently read off the extrapolated line.
  • It flags a fit with R² below 0.99, and a replicate spread wider than 10%. The sheet computes R² but never looks at it.

A flagged sample is left off the printed sheet and out of the copied text unless you tick the box to include it, and either way the warnings travel with it.

Nothing you type leaves your computer. The sheet is stored in this browser only, and a different browser, or the same tool opened from a different address, keeps a different sheet.