BiocStyle::markdown()
Package: r Biocpkg("MsBackendTimsTof")
Authors: r packageDescription("MsBackendTimsTof")[["Author"]]
Compiled: r date()
library(Spectra) library(BiocStyle)
The r Biocpkg("Spectra")
package provides a central infrastructure for the
handling of Mass Spectrometry (MS) data. The package supports interchangeable
use of different backends to import MS data from a variety of sources (such as
mzML files). The r Biocpkg("MsBackendTimsTof")
package adds support for Bruker
TimsTOF raw data files. This vignette shows how, and which data can be retrieved
from such files.
The package depends on the OpenTIMS C++
library to access data in timsTOF Pro data format (TDF) which is provided by the
opentimsr
R package. The MsBackendTimsTof
package can be installed with:
BiocManager::install("RforMassSpectrometry/MsBackendTimsTof")
To get some variables from the data files an additional library from the manufacturer is needed. This library can be downloaded with:
so_folder <- tempdir() library(opentimsr) so_file <- download_bruker_proprietary_code(so_folder)
This downloads the shared library to a temporary folder. Note however that at
present this shared library is only available for Windows and Linux (i.e. no
macOS support). Next, to use this library, it has to be registered with the
opentimsr
package:
setup_bruker_so(so_file)
These steps would be necessary for every new R session. To avoid that, it is
suggested to copy the downloaded shared library above to a directory on the
computer and to define an environment variable called TIMSTOF_LIB
that defines
the full path where this file is located (i.e. a character string defining the
full file path with the file name). This variable can either be defined system
wide, or within the .Rprofile file. An example entry in a .Rprofile could
for example be:
options(TIMSTOF_LIB = "/home/jo/lib/libtimsdata.so")
The r Biocpkg("MsBackendTimsTof")
package adds support for Bruker TimsTOF
files to Spectra
-based analysis workflows. Below we load the package and in
addition fetch the required shared library and store that to a temporary folder.
library(MsBackendTimsTof) ## Load the opentimsr package and download and register the shared library library(opentimsr) so_folder <- tempdir() so_file <- download_bruker_proprietary_code(so_folder, method = "wget") setup_bruker_so(so_file)
As detailed in the installation section, the code to download the shared library
would only be necessary once, if the path to this file is defined in a
environment variable TIMSTOF_LIB
.
We next load the TDF test file which is bundled within this package.
fl <- system.file("ddaPASEF.d", package = "MsBackendTimsTof") be <- backendInitialize(MsBackendTimsTof(), fl)
In a real use case, we would however directly load the data into a Spectra
object:
sps <- Spectra(fl, source = MsBackendTimsTof()) sps
We thus have access to all spectra variables within the file:
spectraVariables(be)
And the full data can be retrieved with spectraData
:
all <- spectraData(be) all
The data is organized by individual spectra, all spectra measured within the
same frame have the same value in the spectra variable "frameId"
. Spectra
variable "inv_ion_mobility"
provides the inverse ion mobility
information. This variable is available as a spectra variable, but also as a
peaks variable along with e.g. "tof"
. Available peaks variables can be
listed with the peaksVariables
function.
peaksVariables(sps)
Below we subset the backend to a range of spectra and extract their peaksData
.
sps_sub <- sps[224:227] peaksData(sps_sub, columns = c("mz", "intensity", "tof", "inv_ion_mobility", "retention_time")) |> as.list()
Note however that both the "inv_ion_mobility"
and "retention_time"
have the
same value for all peaks in each spectrum. Thus, these variables should be
accessed not through peaksData
, but through spectraData
or using the $
operator or the dedicated rtime
function. Below we extract the inverse ion
mobility values and display the first 6 of them.
head(sps$inv_ion_mobility)
The MsBackendTimsTof
is a on-disk backend, hence reading peaks and spectra
variables from the original data file(s) upon request. Modifying spectra
variables within the raw data files is not possible (and also not desired), but,
by directly extending the MsBackendCached
backend from the
r Biocpkg("Spectra")
package MsBackendTimsTof
supports changing or adding
spectra variables by caching them locally within the object. Below we add a
new spectra variable to the object.
sps$new_variable <- seq_along(sps)
This new variable is now available within the object and can be extract like any other spectra variable.
spectraVariables(sps) sps$new_variable |> head()
Analogously it is also possible to change existing spectra variables. Below we add a value to each retention time.
rtime(sps) |> head() sps$rtime <- rtime(sps) + 10 rtime(sps) |> head()
sessionInfo()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.