XCMSnExp-filter-methods: XCMSnExp filtering and subsetting

filterFeatureDefinitionsR Documentation

XCMSnExp filtering and subsetting

Description

filterFeatureDefinitions allows to subset the feature definitions of an XCMSnExp object. Which feature definitions should be kept can be specified with the features argument that can be a logical, integer or character vector. The function returns the XCMSnExp with the reduced featureDefinitions data frame.

The [ method allows to subset a XCMSnExp object by spectra. Be aware that the [ method removes all preprocessing results, except adjusted retention times if keepAdjustedRtime = TRUE is passed to the method.

[[ extracts a single Spectrum object from an XCMSnExp. The reported retention time is the adjusted retention time if alignment has been performed on x.

filterMsLevel: reduces the XCMSnExp object to spectra of the specified MS level(s). Chromatographic peaks and identified features are also subsetted to the respective MS level. See filterMsLevel documentation for details and examples.

The methods listed on this page allow to filter and subset XCMSnExp objects. Most of them are inherited from the OnDiskMSnExp object and have been adapted for XCMSnExp to enable subsetting also on the preprocessing results.

filterFile: allows to reduce the XCMSnExp to data from only certain files. Identified chromatographic peaks for these files are retained while all eventually present features (peak grouping information) are dropped. By default also adjusted retention times are removed (if present). This can be overwritten by setting keepAdjustedRtime = TRUE.

filterMz: filters the data set based on the provided mz value range. All chromatographic peaks and features (grouped peaks) falling completely within the provided mz value range are retained (if their minimal mz value is >= mz[1] and the maximal mz value <= mz[2]. Adjusted retention times, if present, are not altered by the filtering.

filterRt: filters the data set based on the provided retention time range. All chromatographic peaks and features (grouped peaks) the specified retention time window are retained (i.e. if the retention time corresponding to the peak's apex is within the specified rt range). If retention time correction has been performed, the method will by default filter the object by adjusted retention times. The argument adjusted allows to specify manually whether filtering should be performed by raw or adjusted retention times. Filtering by retention time does not drop any preprocessing results nor does it remove or change alignment results (i.e. adjusted retention times). The method returns an empty object if no spectrum or feature is within the specified retention time range.

split splits an XCMSnExp object into a list of XCMSnExp objects based on the provided parameter f. Note that by default all pre-processing results are removed by the splitting, except adjusted retention times, if the optional argument keepAdjustedRtime = TRUE is provided.

Usage

filterFeatureDefinitions(x, features)

## S4 method for signature 'XCMSnExp,ANY,ANY,ANY'
x[i, j, ..., drop = TRUE]

## S4 method for signature 'XCMSnExp,ANY,ANY'
x[[i, j, drop = FALSE]]

## S4 method for signature 'XCMSnExp'
filterMsLevel(object, msLevel.,
  keepAdjustedRtime = hasAdjustedRtime(object))

## S4 method for signature 'XCMSnExp'
filterFile(object, file, keepAdjustedRtime = FALSE)

## S4 method for signature 'XCMSnExp'
filterMz(object, mz, msLevel., ...)

## S4 method for signature 'XCMSnExp'
filterRt(object, rt, msLevel.,
  adjusted = hasAdjustedRtime(object))

## S4 method for signature 'XCMSnExp,ANY'
split(x, f, drop = FALSE, ...)

Arguments

x

For [ and [[: an XCMSnExp object.

features

For filterFeatureDefinitions: either a integer specifying the indices of the features (rows) to keep, a logical with a length matching the number of rows of featureDefinitions or a character with the feature (row) names.

i

For [: numeric or logical vector specifying to which spectra the data set should be reduced. For [[: a single integer or character.

j

For [ and [[: not supported.

...

Optional additional arguments.

drop

For [ and [[: not supported.

object

A XCMSnExp object.

msLevel.

For filterMz, filterRt, numeric(1) defining the MS level(s) to which operations should be applied or to which the object should be subsetted. See filterMz for more details

keepAdjustedRtime

For filterFile, filterMsLevel, [ split: logical(1) defining whether the adjusted retention times should be kept, even if e.g. features are being removed (and the retention time correction was performed on these features).

file

For filterFile: integer defining the file index within the object to subset the object by file or character specifying the file names to sub set. The indices are expected to be increasingly ordered, if not they are ordered internally.

mz

For filterMz: numeric(2) defining the lower and upper mz value for the filtering.

rt

For filterRt: numeric(2) defining the retention time window (lower and upper bound) for the filtering.

adjusted

For filterRt: logical indicating whether the object should be filtered by original (adjusted = FALSE) or adjusted retention times (adjusted = TRUE). For spectra: whether the retention times in the individual Spectrum objects should be the adjusted or raw retention times.

f

For split a vector of length equal to the length of x defining how x will be splitted. It is converted internally to a factor.

Details

All subsetting methods try to ensure that the returned data is consistent. Correspondence results for example are removed if the data set is sub-setted by file, since the correspondence results are dependent on the files on which correspondence was performed. Thus, some filter and sub-setting methods drop some of the preprocessing results. An exception are the adjusted retention times: most subsetting methods support the argument keepAdjustedRtime (even the [ method) that forces the adjusted retention times to be retained even if the default would be to drop them.

Value

All methods return an XCMSnExp object.

Note

The filterFile method removes also process history steps not related to the files to which the object should be sub-setted and updates the fileIndex attribute accordingly. Also, the method does not allow arbitrary ordering of the files or re-ordering of the files within the object.

Note also that most of the filtering methods, and also the subsetting operations [ drop all or selected preprocessing results. To consolidate the alignment results, i.e. ensure that adjusted retention times are always preserved, use the applyAdjustedRtime function on the object that contains the alignment results. This replaces the raw retention times with the adjusted ones.

Author(s)

Johannes Rainer

See Also

XCMSnExp for base class documentation.

Examples


## Load some of the files from the faahKO package.
library(faahKO)
fs <- c(system.file('cdf/KO/ko15.CDF', package = "faahKO"),
        system.file('cdf/KO/ko16.CDF', package = "faahKO"),
        system.file('cdf/KO/ko18.CDF', package = "faahKO"))
## Read the files
od <- readMSData(fs, mode = "onDisk")

## Perform peak detection on them using the matched filter algorithm. Note
## that we use a large value for binSize to reduce the runtime of the
## example code.
mfp <- MatchedFilterParam(binSize = 5)
xod <- findChromPeaks(od, param = mfp)

## Subset the dataset to the first and third file.
xod_sub <- filterFile(xod, file = c(1, 3))

## The number of chromatographic peaks per file for the full object
table(chromPeaks(xod)[, "sample"])

## The number of chromatographic peaks per file for the subset
table(chromPeaks(xod_sub)[, "sample"])

basename(fileNames(xod))
basename(fileNames(xod_sub))

## Filter on mz values; chromatographic peaks and features within the
## mz range are retained (as well as adjusted retention times).
xod_sub <- filterMz(xod, mz = c(300, 400))
head(chromPeaks(xod_sub))
nrow(chromPeaks(xod_sub))
nrow(chromPeaks(xod))

## Filter on rt values. All chromatographic peaks and features within the
## retention time range are retained. Filtering is performed by default on
## adjusted retention times, if present.
xod_sub <- filterRt(xod, rt = c(2700, 2900))

range(rtime(xod_sub))
head(chromPeaks(xod_sub))
range(chromPeaks(xod_sub)[, "rt"])

nrow(chromPeaks(xod))
nrow(chromPeaks(xod_sub))

## Extract a single Spectrum
xod[[4]]

## Subsetting using [ removes all preprocessing results - using
## keepAdjustedRtime = TRUE would keep adjusted retention times, if present.
xod_sub <- xod[fromFile(xod) == 1]
xod_sub

## Using split does also remove preprocessing results, but it supports the
## optional parameter keepAdjustedRtime.
## Split the object into a list of XCMSnExp objects, one per file
xod_list <- split(xod, f = fromFile(xod))
xod_list

xiaodfeng/DynamicXCMS documentation built on Aug. 6, 2023, 3:02 p.m.