# DNA / RNA Concentration Calculator

> Converts an absorbance reading at 260 nm into nucleic acid concentration with the standard factors (dsDNA 50, ssDNA 33, RNA 40, oligonucleotide 33 µg/mL per A260 unit) and a dilution factor, and assesses purity from the A260/A280 and A260/A230 ratios.

- Calculator id: `dna-concentration` · Category: Biology, Earth & Space (`science`) · Tool name: `calculate_nucleic_acid_concentration`
- Canonical page: https://tttkmbb.com/science/dna-concentration · This document: https://tttkmbb.com/science/dna-concentration.md · JSON definition: https://tttkmbb.com/science/dna-concentration.json

## Purpose

Converts an absorbance reading at 260 nm into nucleic acid concentration with the standard factors (dsDNA 50, ssDNA 33, RNA 40, oligonucleotide 33 µg/mL per A260 unit) and a dilution factor, and assesses purity from the A260/A280 and A260/A230 ratios.

**Use when:** You measured A260 (and optionally A280, A230) on a spectrophotometer or NanoDrop and need the concentration in µg/mL or ng/µL, the total amount in a sample, or a purity check.

**Do not use when:** The sample is very dilute or contaminated (fluorometric assays such as PicoGreen are more specific), you need the molar concentration of a specific oligo (requires its extinction coefficient), or the reading is outside the instrument's linear range.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `a260` | number |  | required | Absorbance at 260 nm for a 1 cm path length (blank-corrected). NanoDrop-type instruments report the 10 mm-equivalent value. (min 0, max 100) |
| `dilution_factor` | number |  | optional, default 1 | Dilution of the sample before measuring (1 = measured neat, 10 = 1:9). (min 1, max 1000000) |
| `nucleic_acid` | enum: dsdna \| ssdna \| rna \| oligo |  | optional, default "dsdna" | Determines the conversion factor (µg/mL per absorbance unit). |
| `a280` | number |  | optional | Absorbance at 280 nm; gives the 260/280 ratio (proteins absorb here). (> 0, max 100) |
| `a230` | number |  | optional | Absorbance at 230 nm; gives the 260/230 ratio (salts, phenol, carbohydrates absorb here). (> 0, max 100) |
| `sample_volume_ul` | number | µL | optional | Volume of the undiluted sample; gives the total amount in µg. (> 0, max 1000000000) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `concentration_ug_per_ml` | number | µg/mL | a260 × factor × dilution_factor. |
| `concentration_ng_per_ul` | number | ng/µL | Same value: 1 µg/mL = 1 ng/µL. |
| `conversion_factor` | number | µg/mL per A260 | 50 (dsDNA), 33 (ssDNA), 40 (RNA) or 33 (oligo). |
| `ratio_260_280` | number |  | Purity ratio: ≈1.8 for pure DNA, ≈2.0 for pure RNA (when a280 is given). |
| `ratio_260_230` | number |  | Purity ratio: 2.0–2.2 expected (when a230 is given). |
| `purity_assessment` | string |  | Interpretation of the available ratios. |
| `total_amount_ug` | number | µg | concentration_ng_per_ul × sample_volume_ul / 1000 (when the volume is given). |

## Formula

`concentration (µg/mL) = A260 × factor × dilution_factor, factor = 50 (dsDNA), 33 (ssDNA), 40 (RNA), 33 (oligo); ng/µL = µg/mL; total µg = ng/µL × µL / 1000; ratios = A260 / A280 and A260 / A230`

Beer–Lambert law with the conventional average extinction factors for a 1 cm path (dsDNA 50, ssDNA 33, RNA 40 µg/mL per absorbance unit at 260 nm); for short oligonucleotides the sequence-specific extinction coefficient is more accurate. Pure DNA has A260/A280 ≈ 1.8 and RNA ≈ 2.0; A260/A230 is expected at 2.0–2.2; lower values indicate contamination (protein or phenol at 280 nm; guanidine, phenol, EDTA or carbohydrates at 230 nm).

## Data Sources

- Wikipedia – Nucleic acid quantitation — https://en.wikipedia.org/wiki/Nucleic_acid_quantitation (reference, retrieved 2026-09-24)
- Wikipedia – Beer–Lambert law — https://en.wikipedia.org/wiki/Beer%E2%80%93Lambert_law (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/dna-concentration?a260=…`
- `POST https://tttkmbb.com/api/v1/calculate/dna-concentration` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/dna-concentration · OpenAPI operationId `calculate_nucleic_acid_concentration` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "dna-concentration", "inputs": {…}}`

## Example

- dsDNA, A260 0.5 at 1:10 dilution, A280 0.27: inputs `{"a260":0.5,"dilution_factor":10,"nucleic_acid":"dsdna","a280":0.27,"sample_volume_ul":50}` → `{"concentration_ug_per_ml":250,"concentration_ng_per_ul":250,"conversion_factor":50,"ratio_260_280":1.85,"total_amount_ug":12.5}`
- RNA, A260 1.2 neat, A280 0.6, A230 0.55: inputs `{"a260":1.2,"nucleic_acid":"rna","a280":0.6,"a230":0.55,"sample_volume_ul":50}` → `{"concentration_ug_per_ml":48,"ratio_260_280":2,"ratio_260_230":2.18,"total_amount_ug":2.4}`

```
GET https://tttkmbb.com/api/v1/calculate/dna-concentration?a260=0.5&dilution_factor=10&nucleic_acid=dsdna&a280=0.27&sample_volume_ul=50
```

## Limitations

The sample is very dilute or contaminated (fluorometric assays such as PicoGreen are more specific), you need the molar concentration of a specific oligo (requires its extinction coefficient), or the reading is outside the instrument's linear range. Beer–Lambert law with the conventional average extinction factors for a 1 cm path (dsDNA 50, ssDNA 33, RNA 40 µg/mL per absorbance unit at 260 nm); for short oligonucleotides the sequence-specific extinction coefficient is more accurate. Pure DNA has A260/A280 ≈ 1.8 and RNA ≈ 2.0; A260/A230 is expected at 2.0–2.2; lower values indicate contamination (protein or phenol at 280 nm; guanidine, phenol, EDTA or carbohydrates at 230 nm). All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Is ng/µL the same as µg/mL?**

Yes: 1 µg/mL = 1,000 ng / 1,000 µL = 1 ng/µL, so the two outputs are always identical.

**Do I enter the diluted or undiluted volume?**

sample_volume_ul is the volume of your original (undiluted) sample; the dilution used only for the measurement is handled by dilution_factor.

**What if the 260/280 ratio is low?**

Values well below 1.8 (DNA) or 2.0 (RNA) usually mean protein or phenol carry-over; note that the ratio is also affected by pH and ionic strength of the blank, and high concentrations of pure DNA can still read slightly below 1.8.

## Related

- [PCR Primer Tm Calculator](https://tttkmbb.com/science/pcr-primer-tm.md) — Molecular weight of a primer to convert its mass concentration to molarity.
- [Dilution Calculator](https://tttkmbb.com/chemistry/dilution.md) — Dilute the sample to a working concentration (C1V1 = C2V2).
- [Molarity Calculator](https://tttkmbb.com/chemistry/molarity.md) — Convert a mass concentration to molar concentration with the molecular weight.
