ForHosting KIT · Science

Protein concentration calculator

Read protein concentration straight off your standard curve: an absorbance of 0.85 with a slope of 0.4 and an intercept of 0.05 gives 2 mg/mL. It works the same for Bradford, BCA or Lowry once the curve is fitted. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Absorbance
0.85
Slope
0.4
Intercept
0.05
You get
Net absorbance
0.8 mg/mL
Concentration
2

Protein concentration is the number every purification, loading-control, and assay-prep workflow needs, and most labs still obtain it from a spectrophotometer reading plus a linear standard curve. After you measure a blank-corrected absorbance and fit known protein standards to absorbance equals slope times concentration plus intercept, inversion is a single division: concentration in milligrams per milliliter equals absorbance minus intercept, divided by slope. This protein concentration calculator accepts those three finite numbers, rejects a zero slope that cannot invert the curve, and returns a stable milligrams-per-milliliter result that matches the same arithmetic a notebook or plate-reader software would apply. It is assay-agnostic: Bradford, BCA, Lowry, and many ultraviolet standard curves all share this linear inversion once slope and intercept are known.

How a linear standard curve becomes milligrams per milliliter

Most colorimetric and spectrophotometric protein assays convert a measured absorbance into concentration with a standard curve rather than a single universal extinction coefficient. You pipette known masses of a protein standard such as bovine serum albumin into the same reagent and path length as the unknowns, read absorbance at the assay wavelength, and fit the linear working range to absorbance equals slope times concentration plus intercept.

Slope m then has units of absorbance per milligram per milliliter when the standards were prepared in milligrams per milliliter; intercept b is the fitted absorbance at zero protein and absorbs residual blank, reagent, and path-length offsets that a perfect blank did not remove. Once those two numbers are known, any sample absorbance A inverts to concentration C equals A minus b, divided by m, and this calculator reports that C in milligrams per milliliter.

The inversion is the same arithmetic used for bicinchoninic acid, Lowry, Bradford dye binding, Pierce six-sixty, and many ultraviolet standard curves: the dye chemistry changes the slope, not the algebra. This tool does not fit the curve for you, does not average replicate wells, and does not apply four-parameter logistic models; it applies the linear inversion you already trust from spreadsheet or plate-reader software. Zero slope is rejected because division by zero cannot recover a titer.

Slightly negative computed concentrations can appear when a noisy sample sits below the intercept; the arithmetic still returns the number so quality-control scripts can flag out-of-range wells instead of hiding them behind a silent clamp to zero. Keep slope and intercept from the same fit, blank, wavelength, and path length as the sample reading; mixing curves across instruments without renormalizing will mis-scale concentration even when the arithmetic is correct.

Lab workflows, limits, and search intent for this tool

Typical workflow: run protein standards in milligrams per milliliter, fit the linear region to obtain slope and intercept, blank-correct the sample absorbance, enter those three numbers, and log the milligrams-per-milliliter concentration next to the sample identifier. Protein purification fractions, cell-lysate equal-loading checks, enzyme assay prep, and teaching labs all need the same deterministic inversion without reopening a spreadsheet.

Limits: this tool does not replace the need for standards, does not correct for non-linear dye response at high protein load, does not convert between BSA-equivalent and true analyte mass for every protein species, and always reports milligrams per milliliter—if your curve was fitted in micrograms per milliliter, rescale slope before you call. Dilute samples that read above the highest standard into the linear range rather than extrapolating blindly.

Search intent for this landing includes protein concentration calculator, absorbance to mg/mL from a standard curve, protein standard curve slope intercept online, and colorimetric protein quantification from linear regression.

Assay-agnostic titer from a fitted curve

Invert BCA, Lowry, Bradford, or ultraviolet standard-curve slope and intercept into milligrams per milliliter after each blank-corrected absorbance reading.

Purification fractions and load checks

Convert each fraction absorbance with the plate’s slope and intercept into mg/mL for column tracking, equal protein loading, and process intermediate release.

Teaching linear standard curves

Show students how A = m·C + b inverts to C = (A − b)/m in mg/mL, and how a zero slope is rejected instead of producing a silent infinity.

How do I calculate protein concentration from absorbance?

Send finite absorbance plus the linear standard-curve slope (non-zero) and intercept.

What units does the result use?

Always milligrams per milliliter (mg/mL). Fit your standards in mg/mL so slope is absorbance per mg/mL. If you fitted µg/mL, convert the slope before calling.

What are slope and intercept?

They come from fitting your protein standards: absorbance ≈ slope × concentration + intercept over the linear range. Use the same blank, wavelength, path length, and units for samples and standards.

What if I measured a diluted protein sample?

Multiply the concentration you get by the fold dilution, or dilute the sample until its reading sits inside the linear range of your standards before you convert it. The calculator itself reports the concentration of what was in the cuvette or well.

Why can the protein concentration come out slightly negative?

A noisy sample that reads just below the intercept gives a small negative value. It is returned as is, not silently set to zero, so you can spot and flag out-of-range wells instead of trusting a hidden correction.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/bio/protein-concentration

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/bio/protein-concentration \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"absorbance":0.85,"slope":0.4,"intercept":0.05}'
{
  "absorbance": 0.85,
  "slope": 0.4,
  "intercept": 0.05
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "bio.protein_concentration",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Successful API calls cost $0.002; invalid input is not billed.

Input contract, response fields, and validation rules

Example: absorbance zero point eight five, slope zero point four, intercept zero point zero five yields net absorbance zero point eight and concentration two milligrams per milliliter. If you measured a diluted aliquot, multiply the returned concentration by the fold dilution in your own script, or dilute the sample so the reading sits inside the linear range of the standards before you invert. Do not mix a slope fitted in micrograms per milliliter with this milligrams-per-milliliter contract without converting the slope first. POST a JSON body with three required finite numbers. Required absorbance is the blank-corrected sample reading—aliases include od, abs, A, sample_absorbance, and reading. Required slope is the non-zero linear coefficient m from A equals m times C plus b, with aliases m, standard_slope, curve_slope, and calibration_slope; its units must be absorbance per milligram per milliliter so the inverted result is milligrams per milliliter. Required intercept is the finite y-intercept b, with aliases b, standard_intercept, curve_intercept, and y_intercept; it may be positive, negative, or zero. On success the response echoes absorbance, slope, and intercept with stable twelve-decimal rounding, plus net_absorbance as absorbance minus intercept, concentration as the primary numeric result in milligrams per milliliter, unit as the string mg/mL, formula restating the inversion, and message as a short English summary. Missing fields, non-finite strings, boolean types, and a slope of exactly zero fail with invalid_input and are not billed. Pricing for successful work is a flat $0.002 with unit item.

Lab workflows, limits, and search intent for this tool

Automation scripts can store slope and intercept per plate or per kit lot and call the API after each absorbance capture. Failed validation does not consume prepaid balance, so exploratory scripts that probe empty slopes stay cheap. Round-trip checks are straightforward: recompute absorbance minus intercept divided by slope and confirm equality with concentration within published rounding, then confirm that a zero slope flips the response from success to invalid_input with a clear field message. Successful API work is billed at $0.002 per call.

Why was my request rejected?

A slope of zero, missing fields, or non-finite values fail with invalid_input and are not billed. Zero slope cannot invert the standard curve.

What does the protein concentration calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →