Provides various tools for preprocessing Emission-Excitation-Matrix (EEM) for Parallel Factor Analysis (PARAFAC). Different methods are also provided to calculate common metrics such as humification index and fluorescence index.
The eemR package implements various functions used calculate metrics from excitation-emission matrix (EEM) as well as to preform pre-processing corrections before PARAFAC analysis.
The lastest release of the package from CRAN can be installed with:
The lastest development version of the package can be installed with:
A detailed vignette presenting the package which can be viewed using:
vignette(topic = "introduction", package = "eemR")
At the moment, the following EEM types are supported:
EEM can be read using the
eem_read() function. Please fill an issue if you have other file formats you would like to add to the package.
At the moment I need files from:
Improuved plot visualisation to th esame look and feel as those produced in Matlab with DrEEM.
Use file name as is for the name of the eem.
Reading Cary Eclipse files is more robust at detecting correct excitation wavelengths.
eemR can now read Fluoromax-4 files (#40).
eem_cut() gains a logical argument
TRUE, only wavelengths matching
ex will be removed. If
FALSE, all wavelengths in the range of
ex will be removed.
Taking into account cuvette size to calculate the 1.5 threshold proposed by Kothawala when correcting for IFE.
Inner-filter effect correction factors are now corrected correctly. Because fluorescence is assumed to be measured in 1 cm cuvette, absorbance is now expressed per centimeter.
Better guessing the number of columns of the fluorescence matrix produced by Cary Eclipse software.
Fixed many typos.
eem_extract() is now more intuitive to use.
remove argument has been replace by
TRUE, the specified samples will be returned. If
FALSE, they will be removed (#37).
eem_cut() now removes specified wavelenghts instead of keeping them.
eem_cut() gains an argument
TRUE fluorescence at specified wavelengths will be replaced with
NA instead of being removed.
File structure is now kept when performing inner-filter effect correction (#35).
Now using viridis space colors for plotting EEMs instead of color jet.
eem_remove_scattering() no longer
tolower absorbance names and will assume that the provided absorbance spectra match exactly EEM's names.
Fixing a bug that prevented the interactive plot to work properly.
print(x) now return a data frame containing summarized information on EEMs contained in
eem_remove_blank() will average blank EEMs if more than one are provided or found in the folder (#23).
eem_inner_filter_effect() will now verify if the correction has been already performed. If so, an unmodified EEM will be returned.
eem_raman_normalisation() now interpolates blank EEM to ensure that em at 350 and excitation between 371 and 428 exist (#31).
eem_raman_normalisation() will now keep blank samples when automatic correction is used. When automatic correction is used, the untransformed blank sample will be keep in the list.
An error will now occur if trying to perform blank correction after Raman normalization.
Interactive plot using a simple shiny app. Using
plot(eems, interactive = TRUE) will lunch a shiny app that allows to interactively browse EEMs contained in
A vignette has been added to the package whic can be viewed using
vignette(topic = "introduction", package = "eemR").
An error will occur if one try to do raman normalization on a blank where scattering bands have been removed.
eem_sample_names() has been replaced by
Reading Aqualog files is now ~20% faster (#26).
plot() gains an argument
show_peaks = TRUE/FALSE which can be used to display most common fluorescence peaks used in the literature.
eem_raman_normalisation() can now try to implicitly use a blank eem from a
eemlist object (#20). If blank is omitted (
blank = NA), the functions will try to extract the blank from the
eemlist object. This is done by looking for sample names containing one of these complete or partial strings (ignoring case):
Consider the following example where there are two folders that could represent scans performed on two different days
scans_day_2. In each folder there are three samples and one blank files. In that context,
eem_remove_blank() will use the blank
sample3.csv. The same strategy will be used for files in folder
scans_day_2 but with blank named
inst/extdata/cary/ ├── scans_day_1 │ ├── nano.csv │ ├── sample1.csv │ ├── sample2.csv │ └── sample3.csv └── scans_day_2 ├── blank.csv └── s1.csv
eem_extract() has now an argument
verbose (default = FALSE) that determine if the names of removed or extracted eems should be printed on screen.
Implemented the generic
print() method which calls
Added tests to the packages to verify metrics.
Now better estimate the number of columns to read in Cary Eclipse files (#27). This also makes reading much faster.
Sample names are now exported when using the
eem_bind() implemented to merge objects of class
Reading EEMs should be ~ 50% faster.
eem_sample_names(eem)returns a vector containing the sample names of all EEMs.
eem_sample_names(eem) <- c(...)sets the sample names of all EEMs.
eem_extract() has now an argument
ignore_case (#10) to specify if the regular expression search should ignore sample name case (TRUE) or not (FALSE).
Sample names (i.e. file names) are now verified with
Various improvements in documentation.