Description Usage Arguments Details Value Author(s) References Examples
Calculates Standard Metabolic Rate (SMR) using several methods, the user then look into the resulting object and picks the result(s) of his/her choice.
1 |
Z |
A vector of oxygen uptake (MO2) values for a single animal resulting from intermittent-flow or open-flow respirometry. |
q |
p-values for the quantiles to be calculated. |
G |
The maximum number of distributions to fit to the data with the MLND method. |
This function accepts a vector of oxygen uptake values recorded from a single animal over a period of a few hours to a few days and calculates Standard Metabolic Rate (SMR) according to several methods reviewed by Chabot et al. (2016). NAs are excluded.
Returns a list containing several estimations of SMR and some additional results.
The details of the output components are as follows:
mlnd |
The Mean of the Lowest Normal Distribution, calculated by
|
quant |
A vector of quantile values, with length = number of values
in parameter |
low10 |
The mean of the 10 lowest oxygen uptake values (vector Z). |
low10pc |
The mean of the 10% lowest oxygen uptake values (vector Z), after removing the 5 lowest values, which are assumed to be outliers (abnormally low values). |
low10_2pc |
The mean of the 10 lowest oxygen uptake values (vector Z), after removing the 2% lowest values, which are assumed to be outliers (abnormally low values). |
cl |
A
vector of same length as Z containing the number of the distribution
assigned to each oxygen uptake value by |
theSMRdistr |
The number of the
normal distribution that is used to estimate SMR. Normally this is 1 (the
lowest normal distribution). In some rare cases, |
CVmlnd |
The coefficient of variation (in % of MLND) of the oxygen uptake values assigned to the lowest normal distribution. Chabot et al. (2016) use this to assess whether the MLND method should be used to estimate SMR or not. When it cannot (CV > 5.4%), they recommend using the quantile method with p = 0.2. |
Results are in same units as the elements of Z (e.g., oxygen units (mg, ml, mmol, µmol, etc.) per time unit (min, hr), per whole individual or per mass unig (kg, g, etc.)
Denis Chabot, Maurice-Lamontagne Institute, DFO, Canada.
Chabot, D., Steffensen, J. F. and Farrell, A. P. (2016) The determination of the standard metabolic rate in fishes. Journal of Fish Biology 88, 81-121.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | mo2 = c(rnorm(25, 150, 5), rnorm(50, 90, 3), rnorm(100, 50, 2))
smr = calcSMR(mo2)
smr
SMR = as.numeric(ifelse(smr$CVmlnd > 5.4, smr$quant[4], smr$mlnd)) # as recommended in Chabot et al. 2016
# with real data, Greenland halibut
data(GrHalO2crit)
# to ensure that the data are shown in the time zone where the experiment
# took place, regardless of your computer's time zone:
attr(GrHalO2crit$DateTime, "tzone") = "EST"
plotMO2(GrHalO2crit$DateTime, GrHalO2crit$MO2, mgp=c(2,0.5,0))
# remove a 10-h acclimation period, as recommended in Chabot et al. (2016);
# also remove the last 11 h, when DO was decreasing to calculate O2crit.
# There were no low R^2s that required removal
smrData = subset(GrHalO2crit, DateTime >= DateTime[1] + 10*60*60 &
DateTime <= DateTime[nrow(GrHalO2crit)] - 11*60*60)
smr = calcSMR(smrData$MO2); smr
# as recommended in Chabot et al. 2016
SMR = as.numeric(ifelse(smr$CVmlnd > 5.4, smr$quant[4], smr$mlnd)); SMR
abline(h=SMR, col="orange")
# with real data, cod
data("codSDA")
# There was a sham-feeding 25.65 h before feeding. On average the
# sham-feeding increased MO2 for about 10 h.
# This period, as well as after the meal and during the first period in the
# respirometer should be removed before calculating SMR
# This fish took a long time to calm down, the acclimation period was set
# to 24 h
start = -97.22 # first MO2
sham = -25.65 # time of sham-feeding
acclim = 24 # nb of hours to exclude because of handling stress,
# this fish took a long time to calm down
sham.acclim = 10 # nb of hours after sham-feeding with elevated MO2
minR2 = 0.96
smr.data = subset(codSDA, r2 > minR2 &
((Logtime_hr >= (start + acclim) & Logtime_hr < sham ) |
(Logtime_hr >= (sham + sham.acclim) & Logtime_hr < 0))
)
dim(smr.data)
SMR = calcSMR(smr.data$MO2cor, q=0.2)
bestSMR = ifelse(SMR$CVmlnd > 5.4, SMR$quant, SMR$mlnd)
bestSMR
plotMO2(codSDA$DateTime, codSDA$MO2cor, mgp=c(2,0.5,0), col="grey")
points(smr.data$DateTime, smr.data$MO2cor, col="blue")
abline(h=bestSMR, col="orange")
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.