1简介

MSPrep提供了一套方便的功能,用于基于代谢组学数据的质谱分析前处理管道。在分析这些数据之前,通常执行以下过程的函数包括:

  1. 技术副本摘要(如有)
  2. 代谢物过滤
  3. 缺失值的归属
  4. 转换、归一化和批量校正

中包含的每个函数的解释MSPrep,这些函数的各自选项,以及使用中提供的两个数据集的预分析管道的示例MSPrep包,MSQuant而且COPD_131

如需进一步信息,请参阅msprep -基于质谱的代谢组学数据处理的总结、归一化和诊断(Hughes et al., 2014)和基于质谱的非靶向代谢组学数据的分析前考虑(Reinhold等人,2019)。

2预期数据格式

数据可以输入为数据帧或SummarizedExperiment

2.1数据帧

提供的函数时MSPrep在数据帧上,在整个管道中期望使用以下格式。

大多数情况下,数据帧的两列或多列将标识唯一的化合物。这可能包括列,指定质量-电荷比,保留时间,或每个化合物的名称。使用参数compVars,这些列的名称应该作为字符串向量提供给每个函数。

数据框中的其余列应指定每个样品中每种化合物的各自丰度。期望每个样本的一个或多个标识变量由列名指定(例如样本ID、批号或复制)。列名中包含的每条信息都必须用一个一致的字符分隔,该字符在列名中其他任何地方都不存在。使用参数sampleVars,列名中出现的样例变量应该作为字符串向量提供给每个函数,指定变量出现的顺序和参数分隔符应确定将每个样本变量分开的字符。每个列名还可以在每个列名的开头包含一致的非识别文本。属性将此文本提供给每个函数colExtraText参数。

作为示例,请参阅提供的数据集msquant以及它在下面管道中的用途。

2.2SummarizedExperiment

提供的函数时MSPrep在一个SummarizedExperiment,预计该数据将包括单一分析的丰度,rowData识别每种代谢物的特征,以及colData指定每个样品的特征。前一节中讨论的参数可以忽略。

3.例一-技术数据集

## [1] "Neutral_Operator_Dif_Pos_1x_O1_A_01"

中的第三个列名msquant.第一部分“Neutral_Operator_Dif_Pos_”在本分析中不使用,因此我们将它分配给colExtraText参数。下一个值“1x”是峰值值。下面的值“O1”指定样本的批。其余“A”和“01”分别为复制id和主题id。函数将这些样例变量传递给每个函数sampleVars参数。最后,请注意msquant包含两列,mz而且rt分别确定了每种化合物的质荷比和保留时间。类将这些列名传递给每个函数compVars参数。

有了这种格式的数据,就可以启动管道了。

3.1总结

该步骤对每批中的每种化合物使用以下程序进行技术重复总结。

  1. 如果在复制中找到的值的比例小于最小值(通常为1或0),则将值保留为空。否则继续。
  2. 计算重复之间的变异系数\(c_v = \frac{\sigma}{\mu}\),在那里\μ(\ \)是均值和σ\ (\ \)是标准差。
  3. 对于三次重复,如果变异系数高于指定水平,则使用化合物的中值,以纠正较大的分散。
  4. 否则,使用该化合物的重复平均值。

如果指定复制的变量名sampleVars的数据帧或列数据SummarizedExperiment属性指定变量的名称复制参数。

技术复制于MSQuantCV最大值为0.50,最小重复出现率为1 / 3。注意,在MSQuant数据集中,缺失的值表示为“1”,该值在missingValue下面的参数。msSummarize ()在汇总算法确定值确实缺失的所有实例中,将这些缺失值替换为' 0 '。

## #一个tibble: 10 × 6 ## mz rt ' 1x_O1_01 ' ' 1x_O2_01 ' ' 1x_O2_02 ' ' ##       ## 1 78.0 21.362432 120937。121018.118425.118527.## 2 80.0 9.772964 63334。63415.69530年69631年。## 3 80.1 0.6517916 78601 78668。154636年154737年。## 4 83.1 1.3226668 58473。 58554. 298703. 298804. ## 5 84.1 7.864 0 0 0 0 ## 6 85.1 22.307388 348686 348753. 342413 342420. ## 7 85.1 0.7104762 0 0 0 0 ## 8 85.1 1.3228333 335092. 335172. 1753681 1753782. ## 9 86.0 22.587963 226792. 226872. 240137 240238. ## 10 87.0 1.702 0 0 674771. 674872.

3.2过滤

在对技术重复进行总结之后,可以对数据进行过滤,使其仅包含在指定比例的样品中存在的化合物。为了做到这一点,msFilter ()函数。默认情况下,msFilter ()使用80%规则过滤数据集中的化合物,只留下80%样本中存在的化合物。

## #一个tibble: 10 × 6 ## mz rt ' 1x_O1_01 ' ' 1x_O2_01 ' ' 1x_O2_02 ' ' ##       ## 1 78.0 21.362432 120937。121018.118425.118527.## 2 80.0 9.772964 63334。63415.69530年69631年。## 3 80.1 0.6517916 78601 78668。154636年154737年。## 4 86.0 22.587963 226792。 226872. 240137 240238. ## 5 90.0 3.0758798 0 0 148358. 148460. ## 6 99.1 22.379221 6216101 6216182. 6137392 6137493. ## 7 99.9 21.431955 117396 117477. 110735 110836. ## 8 102. 3.076125 92308 92389. 0 0 ## 9 104. 9.770778 78100 78181. 61308 61409. ## 10 107. 22.5569 134960 135039. 83090. 83281.

3.3归责

接下来,根据下游分析,您可能需要归因缺失的数据。提供了三种imputation方法:

  1. 半分钟(最小值的一半)
  2. bpca(贝叶斯PCA),
  3. KNN (k-nearest neighbors)

half -min将每个缺失值计算为该化合物最小观测值的一半。半分钟imputation比其他方法执行更快,但可能会引入偏差。类提供的BPCA算法pcaMethods包,通过主轴向量的线性组合估计缺失值,与用户指定的主成分的数量npc论点。KNN使用K-Nearest Neighbors算法VIM包中。用户可以使用kKnn论点。缺省情况下,KNN使用样本作为邻居,但是通过指定compoundsAsNeighbors = TRUE,化合物将被用作近邻。注意,这比使用样本作为邻居要慢得多,根据数据集的大小,可能需要几分钟或更长的时间才能运行。

## #一个tibble: 10 × 6 ## mz rt ' 1x_O1_01 ' ' 1x_O2_01 ' ' 1x_O2_02 ' ' ##       ## 1 78.0 21.362432 120937。121018.118425.118527.## 2 80.0 9.772964 63334。63415.69530年69631年。## 3 80.1 0.6517916 78601 78668。154636年154737年。## 4 86.0 22.587963 226792。 226872. 240137 240238. ## 5 90.0 3.0758798 121246 116549. 148358. 148460. ## 6 99.1 22.379221 6216101 6216182. 6137392 6137493. ## 7 99.9 21.431955 117396 117477. 110735 110836. ## 8 102. 3.076125 92308 92389. 1215434. 908742. ## 9 104. 9.770778 78100 78181. 61308 61409. ## 10 107. 22.5569 134960 135039. 83090. 83281.

3.4归一化

为了在样本之间进行比较,数据可能需要转换和归一化。此步骤转换数据并执行以下八种归一化策略之一:

  1. 中位数
  2. 战斗
  3. 分位数
  4. 分位数+战斗
  5. 中位数+战斗
  6. CRMN
  7. RUV
  8. 股东价值分析

msNormalize ()还提供了使用以10为底的对数(默认值)、以2为底的对数或自然对数转换数据的选项。要选择任一选项或放弃转换,请使用变换参数。“log10”“log2”“ln”,或“没有”分别。

分位数归一化,由preprocessCore包,确保提供的样本具有相同的分位数。中值归一化从样本中的每个化合物中减去每个样本的中值丰度,从而使每个样本的中值丰度对齐为0。

战斗,由股东价值分析包,是一种经验贝叶斯批效应校正算法,可以去除不需要的批效应,可以单独使用,也可以与分位数或中位数归一化结合使用。使用ComBat时,asampleVar所谓的“批处理”必须用于数据帧,或用于SummarizedExperiment的列名中必须出现" batch "colData.或者,如果对应于batch的样例变量与“batch”不同,则可以使用批处理参数。

RUV和SVA归一化各自估计一个矩阵的未观察到的重要因素使用不同的方法监督因素分析。对于这两种方法,已知的协变量(例如性别,年龄)应该使用covariatesOfInterest参数指定的样例变量,且必须对应于sampleVars对于数据帧或colData在a的情况下SummarizedExperiment.对于RUV的规范化kRUV参数指定数据规范化的因子数。

交叉贡献补偿多标准规范化(CRMN),由crmn包,基于内部标准进行规范化。标识内部标准的样例变量必须使用covariatesOfInterest参数。对于有对照化合物的实验,应在控制变量中提供包含对照化合物的行号向量。如果没有提供控制化合物的矢量,则将生成数据驱动的控件。

下面,我们应用以10为基底的对数转换、分位数归一化和ComBat批校正。

## A tibble: 10 × 6 ## mz rt ' 1x_O1_01 ' ' 1x_O2_01 ' ' 1x_O2_02 ' ##        ## 1 78.0 21.362432 5.07 5.08 5.03 5.04 ## 2 80.0 9.772964 4.80 4.80 4.82 4.83 ## 3 80.1 0.6517916 4.97 4.97 5.08 5.09 ## 4 86.0 22.587963 5.39 5.39 5.29 5.31 ## 5 90.0 3.0758798 5.12 5.10 5.11 5.12 ## 6 99.1 22.379221 6.82 5.06 5.01 5.03 ## 8 102。3.076125 5.05 5.05 5.68 5.63 ## 9 104。9.770778 4.90 4.90 4.82 4.83 ## 10 107。22.5569 5.09 5.09 4.95 4.96

3.5管道

通常,需要执行以上所有步骤。方法可以在一条语句中完成这一点msPrepare ()函数。只需向函数提供与提供给单个函数相同的参数。

## A tibble: 10 × 6 ## mz rt ' 1x_O1_01 ' ' 1x_O2_01 ' ' 1x_O2_02 ' ##        ## 1 78.0 21.362432 5.07 5.08 5.03 5.04 ## 2 80.0 9.772964 4.80 4.80 4.82 4.83 ## 3 80.1 0.6517916 4.97 4.97 5.08 5.09 ## 4 86.0 22.587963 5.39 5.39 5.29 5.31 ## 5 90.0 3.0758798 5.12 5.10 5.11 5.12 ## 6 99.1 22.379221 6.82 5.06 5.01 5.03 ## 8 102。3.076125 5.05 5.05 5.68 5.63 ## 9 104。9.770778 4.90 4.90 4.82 4.83 ## 10 107。22.5569 5.09 5.09 4.95 4.96

4例二:生物数据集

的功能MSPrep将使用所包含的数据进行演示COPD_131.原始数据集可以找到在代谢组学工作台。注意,原来只有一部分化合物COPD_131数据集包含在这个包中,以限制文件大小和示例运行时间。一般情况下,一个数据集中化合物的数量会大大超过样本的数量,这个包中包含的函数将需要更多的时间来处理数据。

这个数据集不同于msquant在几个方面。首先,它有一列化合物。的名字它指定复合名称,并命名质量电荷比和保留时间列质量而且保留。时间分别。其次,该数据集没有插入或批量(但它有技术复制)。最后,数据已经转换,因此管道的这一步将被排除。

4.2过滤

同样,这个过程与之前大致相同,选择0.8的过滤器百分比。因此,我们调用msFilter ()如下:

4.3的改动

在这个例子中,msImpute ()将使用贝叶斯PCA调用,使用三个主成分来为数据计算缺失值。

4.4正常化

在这个例子中,msNormalize ()将在不应用转换的情况下使用中值归一化调用。

5会话信息

## R版本4.2.1(2022-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_GB LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats graphics grDevices utils datasets methods基础## ##其他附加包:## [1]MSPrep_1.8.0 BiocStyle_2.26.0 ## ##通过命名空间加载(且未附加):# # # # [1] colorspace_2.0-3 ellipsis_0.3.2 [3] class_7.3-20 XVector_0.38.0 # # [5] GenomicRanges_1.50.0 proxy_0.4-27 # # [7] bit64_4.0.5 AnnotationDbi_1.60.0 # # [9] fansi_1.0.3 ranger_0.14.1 # # [11] codetools_0.2-18 splines_4.2.1 # # [13] cachem_1.0.6 robustbase_0.95-0 # # [15] knitr_1.40 itertools_0.1-3 # # [17] jsonlite_1.8.3 annotate_1.76.0 # # [19] png_0.1-7 missForest_1.5 # # [21] BiocManager_1.30.19 compiler_4.2.1 # # [23] httr_1.4.4 assertthat_0.2.1 # # [25] Matrix_1.5-1 fastmap_1.1.0 # # [27][37] carData_3.0-5 Biobase_2.58.0 ## [39] jquerylib_0.1.4 vctrs_0.5.0 ## [41] Biostrings_2.66.0 preprocessCore_1.60.0 ## [43] nlme_1 . 3.1-160 iterators_1.0.14 ## [45] lmtest_0.9-40 xfun_0.34 ## [47] laeken_0.5.2 string_1 .4.1 ## [49] lifecycle_1.0.3 rngtools_1.5.2 ## [53] deoptimr_1 .0.10 ## [49] tools_0.0.1zlibbioc_1.44.0 # # [55] mass_7.3 - 58.1 zoo_1.8-11 # # [57] VIM_6.2.2 pcaMethods_1.90.0 # # [59] MatrixGenerics_1.10.0 parallel_4.2.1 # # [61] SummarizedExperiment_1.28.0 yaml_2.3.6 # # [63] memoise_2.0.1 sass_0.4.2 # # [65] stringi_1.7.8 RSQLite_2.2.18 # # [67] genefilter_1.80.0 S4Vectors_0.36.0 # # [69] foreach_1.5.2 randomforest_4.7 - 1.1 # # [71] e1071_1.7-12 BiocGenerics_0.44.0 # # [73] boot_1.3-28 BiocParallel_1.32.0 # # [75] GenomeInfoDb_1.34.0 rlang_1.0.6 # # [77] pkgconfig_2.0.3 matrixStats_0.62.0 # #[79] bitops_1.0-7 evaluate_0.17 ## [81] lattice_0.20-45 purrr_0.3.5 ## [83] bit_4.0.4 tidyselect_1.2.0 ## [87] R6_2.5.1 IRanges_2.32.0 ## [89] generics_0.1.3 DelayedArray_0.24.0 ## [91] DBI_1.1.3 withr_2.5.0 ## [93] pillar_1.8.1 mgcv_1. 1.8-41 ##[95]幸存者3.4-0 KEGGREST_1.38.0 ## [97] abind_1.4-5 RCurl_1.98-1.9 ## [101] tibble_3.1.8 crayon_1.5.2 ## [103] car_3.1-1 utf8_1.2.2 ## [105] rmarkdown_2.17 locfit_1. 9.6 ## [107]Grid_4.2.1 sva_3.46.0 ## [109] data.table_1.14.4 blob_1.2.3 ## [111] vcd_1.4-10 digest_0.6.30 ## [113] xtable_1.8-4 tidyr_1.2.1 ## [115] stats4_4.2.1 bslib_0.4.0