groupEicCorrelation
groups (extracted ion) chromatograms (EICs) based on
their correlation with each other. If this correlation is >=
than the
provided threshold
they are grouped.
If x
is a MChromatograms()
object with more than one column (sample),
pairwise correlations between EICs are first calculated for each column
(sample) of x
separately and subsequently aggregated across samples using
aggregationFun
. If x
is a MChromatograms
with 4 rows (EICs) and 3
columns (samples), pairwise correlations are first calculated between all
4 EICs in each of the 3 columns resulting in 3 correlation matrices (of
dimension 4x4). These correlation matrices are combined into a single matrix
by combining the 3 correlation values per comparison with
aggregationFun
. By default the mean of the correlation value between e.g.
EIC 1 and EIC 2 in each of the 3 columns is used as the final correlation
value. Similar to the one-column case EICs are grouped if their (aggregated)
correlation coefficient is larger than threshold
.
Two types of groupings are available:
inclusive = FALSE
(the default): the algorithm creates small groups of
highly correlated members, all of which have a correlation with each other
that are >= threshold
. Note that with this algorithm, rows in x
could
still have a correlation >= threshold
with one or more elements of a
group they are not part of. See notes below for more information.
inclusive = TRUE
: the algorithm creates large groups containing rows that
have a correlation >= threshold
with at least one element of that group.
For example, if row 1 and 3 have a correlation above the threshold and
rows 3 and 5 too (but correlation between 1 and 5 is below the threshold)
all 3 are grouped into the same group (i.e. rows 1, 3 and 5).
For more information see groupByCorrelation()
.
Note that it might be useful to set tolerance = 0
if chromatograms from
the same sample are compared. This forces retention times of the compared
chromatograms' intensities to be identical.
groupEicCorrelation( x, aggregationFun = mean, threshold = 0.8, align = "closest", inclusive = FALSE, ... )
x |
|
---|---|
aggregationFun |
|
threshold |
|
align |
|
inclusive |
|
... | parameters for the |
factor
same length as nrow(x)
(if x
is a MChromatograms
object) or length(x)
(if x
is a list
) with the group each EIC
is assigned to.
Other grouping operations:
groupByCorrelation()
,
groupToSinglePolarityPairs()
Johannes Rainer
library(MSnbase) set.seed(123) chr1 <- Chromatogram(rtime = 1:10 + rnorm(n = 10, sd = 0.3), intensity = c(5, 29, 50, NA, 100, 12, 3, 4, 1, 3)) chr2 <- Chromatogram(rtime = 1:10 + rnorm(n = 10, sd = 0.3), intensity = c(80, 50, 20, 10, 9, 4, 3, 4, 1, 3)) chr3 <- Chromatogram(rtime = 3:9 + rnorm(7, sd = 0.3), intensity = c(53, 80, 130, 15, 5, 3, 2)) chrs <- MChromatograms(list(chr1, chr2, chr3)) groupEicCorrelation(chrs)#> [1] 1 2 1 #> Levels: 1 2## With a MChromatograms with two columns, use the maximal correlation ## coefficient found in each of the columns chrs <- MChromatograms(list(chr1, chr2, chr3, chr1, chr2, chr3), ncol = 2) groupEicCorrelation(chrs, aggregationFun = max)#> [1] 1 2 1 #> Levels: 1 2