Use absorbance data to correct inner-filter effect in FEEM objects and collections of them.
feemife(x, ...)
# S3 method for feem
feemife(x, absorbance, abs.path = 1, ...)
# S3 method for feemcube
feemife(x, absorbance, abs.path, ..., progress = FALSE)
# S3 method for list
feemife(x, absorbance, abs.path, ..., progress = FALSE)
An object of the same kind as x
, with inner filter effect
corrected.
A FEEM object, a FEEM data cube, or a list of them.
If x
is a FEEM object: a two-column matrix-like object
containing the absorbance spectrum of the sample: the wavelengths
in the first column and the unitless absorbance values in the
second column.
Otherwise, this could be a list of such objects or a multi-column
matrix-like object. If x
contains names of the samples
(is a named list or had names
specified when calling
feemcube
), absorbance
is a named list or has
named columns, and all samples from x
can be looked up in
absorbance
, results of this lookup are used. If x
or absorbance
isn't named, but (given \(N\)-sample
x
) absorbance
has exactly \(N+1\) columns or is an
\(N\)-element list, absorbance spectra are assumed to be present
in the same order as the samples in x
. Otherwise, an error
is raised.
If x
is a FEEM object, a number specifying the length of the
optical path used when measuring the absorbance, cm.
Otherwise, a named vector containing the names from x
, or a
vector of exactly same length as the number of FEEMs in x
:
same lookup rules apply as for absorbance
argument.
If not set, assumed to be \(1\).
Set to TRUE
to enable a progress bar (implemented via
txtProgressBar
).
No parameters besides those described above are allowed.
If you receive errors alleging that some names don't match, but
are absolutely sure that the absorbance spectra and path lengths are
present in the same order as in x
, remove the names from either
of the objects, e.g. by passing unname(absorbance)
.
The formula used to correct for inner filter effect is:
$$ I_\mathrm{corr}(\lambda_\mathrm{em}, \lambda_\mathrm{ex}) = I_\mathrm{orig}(\lambda_\mathrm{em}, \lambda_\mathrm{ex}) 10^{ \frac{A(\lambda_\mathrm{em}) + A(\lambda_\mathrm{ex})}{2 L_\mathrm{abs}} } $$
albatross:::.Rdreference('Lakowicz2006')
albatross:::.Rdreference('Kothawala2013')
data(feems)
str(cube)
str(absorp)
plot(feemife(cube,absorp) / cube)
Run the code above in your browser using DataLab