feemflame {albatross} | R Documentation |
Fluorescence and scAttering Model Estimation
Description
Given a FEEM cube, model the fluorescence and the scattering signals at the same time as a sum of a PARAFAC model and a low-rank unfolded matrix factorisation.
Usage
feemflame(
X, ffac, sfac, maxiter = 32, widths = rep(25, 4), Raman.shift = 3400,
ctol = 1e-04, progress = TRUE, control.parafac, control.cmf
)
## S3 method for class 'feemflame'
fitted(object, ...)
## S3 method for class 'feemflame'
residuals(object, ...)
## S3 method for class 'feemflame'
coef(
object, type = c(
"fluorescence",
"scores", "loadings", "emission", "excitation", "samples",
"scattering", "sc.scores", "sc.loadings"
), ...
)
## S3 method for class 'feemflame'
plot(
x, type = c('both', 'fl.image', 'fl.lines'), ...
)
Arguments
X |
A |
ffac |
The number of trilinear components used to model fluorescence,
passed to |
sfac |
The number of bilinear (low-rank matrix factorisation) components used to model the scattering signal. |
maxiter |
Maximum number of alternating PARAFAC and constrained matrix factorisation iterations. |
widths |
Widths of the scattering regions, like in
|
Raman.shift |
Raman shift of the scattering signal, in
|
ctol |
Given |
progress |
Print progress information on the console, including the iteration number, relative sum of squared residuals, and relative change in sum of squared residuals. |
control.parafac , control.cmf |
Named lists of additional arguments to be passed to the underlying
functions. Both default to |
object , x |
A |
type |
|
... |
No other parameters are allowed. |
Details
FLAME models the input data as a sum of fluorescence signal (PARAFAC model) and scattering signal (low rank model):
X_k(\lambda^\mathrm{em}_i, \lambda^\mathrm{ex}_j) =
\underbrace{\sum_p A_{i,p} B_{j,p} C_{k,p}}_{\mbox{fluorescence}}
+ \underbrace{\sum_q S_{i,j,q} D_{k,q}}_{\mbox{scattering}}
The function alternates between fitting the PARAFAC model on the
dataset with scattering signal subtracted and fitting the low-rank
model on the dataset with fluorescence signal subtracted. The PARAFAC
model is fitted using the feemparafac
function. The
low-rank model is fitted by means of unfolding the wavelength
dimensions into one, resulting in a matrix, followed by the same
alternating least squares procedure as done in multivariate curve
resolution. Both models are constrained to result in non-negative
factors.
The low-rank model is additionally constrained to zero outside the
scattering region. The scattering region is defined the same way as in
feemscatter
, using the widths
and the
Raman.shift
arguments.
Initial PARAFAC model is fitted with the scattering region set to missing. The low-rank model is initialised with truncated singular value decomposition forced to be non-negative.
Value
feemflame |
An object of class
|
fitted.feemflame |
A |
residuals.feemparafac |
A |
coef.feemflame |
See the description of the |
Note
The structure of the feemflame
object, the initialisation, and
the constraints may be subject to change in a future version.
References
Tauler R, Marqués I, Casassas E (1998). “Multivariate curve resolution applied to three-way trilinear data: Study of a spectrofluorimetric acid-base titration of salicylic acid at three excitation wavelengths.” Journal of Chemometrics, 12(1), 55-75. doi:10.1002/(SICI)1099-128X(199801/02)12:1<55::AID-CEM501>3.0.CO;2-#.
Krylov I, Labutin T, Rinnan Å, Bro R (2021). “Modelling of scattering signal for direct PARAFAC decompositions of excitation-emission matrices.” 17th Scandinavian Symposium on Chemometrics. https://web.archive.org/web/20220314144225/https://ssc17.org/abstract/Krylov1.html. https://files.libs.chem.msu.ru/~ivan/SSC17/P13.pdf.
See Also
Examples
data(feems)
cube <- feemscale(cube)
factors <- feemflame(cube, ffac = 3, sfac = 1)
str(coef(factors))
str(coef(factors, 'scattering'))
plot(factors)