Aquatic Respirometry

There are four broad methodological approaches in aquatic respirometry: closed-chamber, intermittent-flow, flow-through and open-tank.

In closed-chamber respirometry, \(O_2\) decrease is measured within a hermetically sealed chamber of known volume, sometimes set within a closed loop to allow mixing of the environment within the chamber. Oxygen recordings may be continuous through use of an oxygen probe, periodic through withdrawing water or gas samples at set intervals, or a two-point measurement consisting of the initial and final concentrations. Metabolic rates are estimated from the \(O_2\) timeseries by assuming a linear relationship between variables, and estimates of metabolic rate are straightforward in constant volume respirometry using the equation: \[VO_2 = \dot O_2V\] where \(\dot O_2\) is the slope of the regression that describes the rate of change in \(O_2\) concentration over time, or in the case of a two-point measurement, the difference in \(O_2\) concentration divided by time elapsed, and \(V\) is the volume of the container (Lighton 2008).

In intermittent-flow respirometry, \(O_2\) concentration is measured as described above, but periodically the chamber is flushed with new water or air, returning it to initial conditions, resealed, and the experiment repeated (Svendsen et al. 2016). This technique is essentially the same as closed respirometry, but with the ability to conduct replicates easily. Depending on the metabolic rate metric being investigated, final respiration rate can be calculated as the mean of the measures (e.g. Carey et al. 2016), or the lowest or highest rates recorded in any trial (e.g. Stoffels 2015).

Flow-through respirometry involves a closed chamber, but with a regulated flow of air or water through it at a precisely determined rate. After equilibrium has been achieved, the oxygen concentration differential between the incurrent and excurrent channels, along with the flow rate, allows calculation of the oxygen extracted from the flow volume per unit time: \[\dot{V}O_2 = (C_iO_2 - C_eO_2)FR\] where \(\dot{V}O_2\) is the rate of \(O_2\) consumption over time, \(C_iO_2\) and \(C_eO_2\) are the incurrent and excurrent \(O_2\) concentrations, and \(FR\) is the flow rate through the system (Lighton 2008).

A final method is open-tank respirometry, in which a tank or semi-enclosed area open to the atmosphere is used, but the input or mixing rate of oxygen from the surroundings has been quantified or found to be negligible relative to oxygen consumption of the specimens (Leclercq et al. 1999). It is seldom used, but for some applications it is a sufficient and practical methodology (Gamble et al. 2014). The common equation used for open respirometry is: \[\dot{V}O_2 = \dot O_2V + \phi_d\] where \(\dot O_2V\) is the slope of the regression that relates \(O_2\) concentration to time, \(V\) is the volume of the arena and \(\phi_d\) is the oxygen flux as determined by Fick’s Law (Leclercq et al. 1999).

The respR R package

respR is a package designed to process the data from all of these types of respirometry experiment. It is designed primarily for aquatic respirometry, although because many of the main functions are unitless it is adaptable for use with gaseous respirometry, and indeed analysis of other data where a parameter may change over time.

When working with respirometry data, you will often need to:

  1. Ensure that the data, or at least a subset of the data, is representative of the research question of interest.
  2. Perform an initial analysis of the data to estimate the rate of change in oxygen concentration or amount.
  3. Depending on the experimental setup, correct for background usage of oxygen by micro-organisms, or correct for oxygen flux from the air.
  4. Convert the resulting usage rate to the volumetric and mass-specific rates in the appropriate units.

The respR package allows determination of common respirometry metrics and contains several functions to make this process straightforward.

  • It provides visual feedback and diagnostic plots to help you explore, subset and analyse your data.
  • It uses computational techniques such as rolling regressions and kernel density estimates to determine maximum, minimum or most linear rates within time-series data.
  • The package takes an object-oriented approach, with all functions outputting objects which can be read by subsequent functions.
  • By separating the workflow into a series of connected functions, you can “mix and match” functions to help you achieve your result.
  • Output objects can also be saved or exported, and contain all raw data, parameters used in calculations, and results, allowing for a fully documented and reproducibile analysis of respirometry data.

Example Data

We have provided example data that can be used immediately once respR is loaded (urchins.rd(), intermittent.rd(), zeb_intermittent.rd(), sardine.rd(), squid.rd(), flowthrough.rd()).

These data were obtained from actual experiments and more information can be obtained by invoking the ? command in the R console, for instance, ?urchins.rd.

Vignettes and documentation

We have prepared several vignettes describing typical analysis workflows and how respR works:

  1. Importing your data
    respR has functions to make it easy to bring in and prepare your data, even from the raw data files output by various respirometry systems.

  2. Closed-chamber respirometry
    This is a good place to start to understand the full functionality of respR. It describes an entire workflow to process and analyse a closed-chamber respirometry dataset.

  3. auto_rate: Automatic detection of metabolic rates
    Here we introduce the function auto_rate() for the automatic detection and estimation of maximum, minimum and most linear rates.

  4. Performance of auto_rate in detecting linear regions
    We use simulated data to test the accuracy of auto_rate(), and discuss the function’s performance with focus on linear data detection.

  5. Comparative performance of auto_rate and LoLinR
    We make comparisons to another R package, LoLinR, using data from their package and simulated data.

  6. Intermittent-flow respirometry: Simple example
    Intermittent-flow respirometry: Complex example
    How to analyse simple and more complex intermittent-flow respirometry experiments.

  7. Flowthrough respirometry
    Analysis of flowthrough respirometry data.

  8. PCrit
    Determine Pcrit in long-term, closed chamber respirometry experiments.

  9. Two-point analyses
    Determine oxygen use rate using only two datapoints.

  10. Reproducibility
    How respR has been designed to allow reporting of reproducible analyses.

  11. respR and the Tidyverse
    Information about how respR integrates with tidyverse practices to streamline analytic workflows.

  12. A comparison of respR with other R packages
    When to use respR
    The functionality and workflow of respR in comparison to other options, and when you should use it.


Carey, Nicholas, Januar Harianto, and Maria Byrne. “Sea Urchins in a High-CO 2 World: Partitioned Effects of Body Size, Ocean Warming and Acidification on Metabolic Rate.” The Journal of Experimental Biology 219, no. 8 (April 15, 2016): 1178–86.

Gamble, S., A.G. Carton, and I. Pirozzi. “Open-Top Static Respirometry Is a Reliable Method to Determine the Routine Metabolic Rate of Barramundi, Lates Calcarifer.” Marine and Freshwater Behaviour and Physiology 47, no. 1 (January 2, 2014): 19–28.

Leclercq, N, Jean-Pierre Gattuso, and J Jaubert. “Measurement of Oxygen Metabolism in Open-Top Aquatic Mesocosms:Application to a Coral Reef Community.” Marine Ecology Progress Series 177 (1999): 299–304.

Lighton, John R. B. Measuring Metabolic Rates. Oxford University Press, 2008.

Stoffels, Rick J. “Physiological Trade-Offs Along a Fast-Slow Lifestyle Continuum in Fishes: What Do They Tell Us about Resistance and Resilience to Hypoxia?” Edited by Jodie L. Rummer. PLOS ONE 10, no. 6 (June 12, 2015): e0130303.