Home / Science / Ecology and organisms / Botany and plant science / Photosynthesis curve fitterTool #325

Photosynthesis light response and A/Ci curve fitting: Amax, quantum yield, Vcmax, Jmax and Rd online

Fit leaf gas exchange curves in your browser. Light response curves get a non-rectangular hyperbola with Amax, quantum yield, curvature, dark respiration, light compensation and saturation points. A/Ci curves get the Farquhar-von Caemmerer-Berry model with Vcmax, J, Jmax and Rd, the Rubisco and RuBP-limited parts, and the transition Ci.

Keep it one tap away for everyday use.

Bookmark Photosynthesis curve fitter?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Paste curve
  2. Fit model
  3. Parameters
  4. Download
Nothing is uploadedWorks offline once open

Light response curve

θ sets how sharply the curve bends from the light-limited slope to the plateau (0 is a gentle rectangular hyperbola, 1 a sharp corner). With few points near the bend, fixing θ (often 0.7 to 0.9) gives steadier estimates. The saturation point is the light at which net A reaches that share of its maximum. Up to 500 rows. The example curve is made up.

A/Ci curve

Γ*, Kc and Ko are preset to the values at 25 °C from Bernacchi et al. (2001), with 21 % oxygen. They are general model settings, not your plant's. Change them for another temperature or source. "Find the best" tries every split of the points into a Rubisco-limited part (low Ci) and an RuBP-limited part (high Ci). It keeps the best fit where each point sits on the lower of the two curves.

The fit gives J, the electron transport rate at the light used. Jmax, the rate at saturating light, is worked out from J with the same kind of curve, using α and θ (often about 0.3 and 0.7). Leave PPFD empty to skip Jmax. Up to 500 rows. The example curve is made up.

Download

What it does

This tool fits the two curves most often measured with a leaf gas exchange system.

Light response curve. Net photosynthesis A is measured at a series of light levels (PPFD). The tool fits the non-rectangular hyperbola: θA² − (φI + Amax)A + φI·Amax = 0 for gross photosynthesis, minus dark respiration Rd. You get:

  • Amax: gross photosynthesis at saturating light, and the maximum net A (Amax − Rd).
  • Quantum yield φ: the initial slope, CO₂ fixed per photon.
  • Curvature θ: how sharply the curve turns from slope to plateau.
  • Rd: respiration in the dark.
  • Light compensation point: the light where net A is zero.
  • Light saturation point: the light where net A reaches a chosen share (75 to 95 %) of its maximum, and Ik = Amax ÷ φ.

A/Ci curve. Net A is measured at a series of intercellular CO₂ concentrations (Ci). The tool fits the Farquhar-von Caemmerer-Berry (FvCB) model: A = min(Ac, Aj) − Rd. At low Ci, photosynthesis is limited by Rubisco (Ac, set by Vcmax); at high Ci by the regeneration of RuBP through electron transport (Aj, set by J). You get Vcmax, J, Rd, their standard errors, which points are limited by which process, the transition Ci and Jmax.

How to use it

  1. Paste two columns for each curve, or open a CSV, TSV, TXT or Excel file: PPFD and A for the light curve, Ci and A for the A/Ci curve. Header rows are skipped.
  2. Light curve options: fit θ or fix it (fixing helps when there are few points near the bend), and choose the share of maximum net A used for the saturation point.
  3. A/Ci options: Γ*, Kc, Ko and O₂ are preset to the values at 25 °C from Bernacchi et al. (2001) and 21 % oxygen. These are general model parameters; enter others for a different leaf temperature or source. Electrons per CO₂ chooses the RuBP-limited form, 4Ci + 8Γ* (Farquhar et al. 1980) or 4.5Ci + 10.5Γ*. The split between the two limits is found automatically, or you can set the Ci below which points are Rubisco-limited.
  4. Jmax: give the light used during the A/Ci curve, plus α and θ for electron transport (often about 0.3 and 0.7). Jmax is then worked out from J by solving θJ² − (αI + Jmax)J + αI·Jmax = 0.

How the A/Ci fit works

For any split of the points into a low-Ci, Rubisco-limited part and a high-Ci, RuBP-limited part, the model is linear in Vcmax, J and Rd, so it can be solved exactly by least squares. The tool tries every split with at least two points in each part. It keeps the best fit in which every point really is on the lower of the two curves. That is the same answer as minimising the error of the min(Ac, Aj) model directly, which the tests confirm against SciPy.

Worked example

The made-up light curve has 12 steps from 0 to 2,000 µmol m⁻² s⁻¹. The fit gives Amax 21.8 µmol m⁻² s⁻¹ (± 0.25), φ 0.0522, θ 0.789 and Rd 1.55. The light compensation point is 30.2 µmol m⁻² s⁻¹ and net A reaches 90 % of its maximum at 1,159 µmol m⁻² s⁻¹. Fixing θ at 0.7 gives Amax 22.5 and Rd 1.71 instead.

The made-up A/Ci curve has 12 points from Ci 60 to 1,500 µmol mol⁻¹. With the 25 °C constants it gives Vcmax 68.7, J 128.6 and Rd 1.14 µmol m⁻² s⁻¹. The lowest 7 points are Rubisco-limited, with the transition at Ci 464.5 µmol mol⁻¹. At PPFD 1,500 with α 0.3 and θ 0.7, Jmax is 144.0 µmol m⁻² s⁻¹.

Tips

  • Give the light curve several points below 200 µmol m⁻² s⁻¹; φ, Rd and the compensation point come from them.
  • Give the A/Ci curve at least three points on each side of the bend. A curve that never levels off cannot give J.
  • Vcmax and J depend strongly on temperature and on the constants used; report the constants with the results.
  • Triose-phosphate (TPU) limitation, where A falls at very high Ci, is not modelled. Leave such points out.

FAQs

Is Rd from the A/Ci fit the same as dark respiration? No. It is respiration in the light, usually lower than respiration in the dark.

Why are my standard errors large? Few points near the bend, or a curve that does not reach its plateau, leave the parameters poorly pinned down.

Is my data uploaded? No. Everything runs in your browser.

Where the numbers come from

  • Light response: the non-rectangular hyperbola (J. H. M. Thornley, Mathematical Models in Plant Physiology, 1976; B. Marshall and P. V. Biscoe, Journal of Experimental Botany 31, 29-39, 1980). Formula only.
  • A/Ci: G. D. Farquhar, S. von Caemmerer and J. A. Berry, Planta 149, 78-90 (1980); S. von Caemmerer, Biochemical Models of Leaf Photosynthesis (CSIRO, 2000); T. D. Sharkey et al., Plant, Cell and Environment 30, 1035-1040 (2007) for fitting by limitation. Formulas only.
  • Preset kinetic constants at 25 °C (general published model parameters, editable): Γ* 42.75 µmol mol⁻¹, Kc 404.9 µmol mol⁻¹, Ko 278.4 mmol mol⁻¹, from C. J. Bernacchi et al., Plant, Cell and Environment 24, 253-259 (2001).
  • Checked in the tests against SciPy 1.18: curve_fit for the hyperbola (parameters and standard errors), brentq for the compensation and saturation points, and least_squares with 16 starting points on the min(Ac, Aj) − Rd model for A/Ci, plus brentq for the transition Ci and Jmax.
  • The example curves are made up.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Related tools

Enzyme kinetics fitter #112 Paste substrate concentrations and initial rates, with or without an inhibitor, and fit Michaelis–Menten, substrate inhibition, Hill, or competitive, uncompetitive, non-competitive and mixed inhibition by non-linear least squares. Get Km, Vmax, Ki, kcat and kcat/Km with errors, a model comparison by AICc, and the Lineweaver–Burk, Eadie–Hofstee and Hanes–Woolf values side by side. Binding curve fitter #114 Paste ligand concentrations with total and non-specific binding, or a titration signal, and fit one site, one site with non-specific binding, two sites, Hill or tight binding with ligand depletion. Get Kd, Bmax and the Hill coefficient with errors, a model comparison by AICc, the Scatchard plot and an IC50 to Ki converter. Dose-response and ELISA curve fitter (4PL) #29 Fit a four-parameter logistic curve to dose-response or ELISA data. Get the EC50 or IC50 with its 95 % interval and the Hill slope, and read unknown samples off the curve. Uncertainty propagation calculator #25 Type your formula and your measurements with their uncertainties, or paste repeated readings. Get the result with its uncertainty, which input matters most, and a Monte Carlo check. Publication plot maker #27 Paste columns or open a CSV or Excel file and get a clean scientific figure with error bars, sized for a journal column. Download vector SVG or PDF, or PNG at 300 or 600 dpi. Your data stays in your browser. Soil texture triangle #322 Type sand, silt and clay percentages and get the USDA soil texture class (sand, loam, silty clay and the rest of the 12). Paste or open a table of many samples to plot them all on the texture triangle, count them by class and download the classes as CSV.