代谢组学代谢组学

batchCorr-基于高分辨质谱数据批次内-批次间离子信号校正

2019-03-01  本文已影响31人  Dayueban

@我的博客:有味

文章截图

导读

液相色谱 - 质谱(LC-MS)因为可以检测的代谢物的覆盖范围广,灵敏度高和样品制备简单快捷而广泛运用于非靶向代谢组学研究中。如血清尿液脑脊液等样本。然而,在大样本多批次数据采集的背景下,仪器本身随着时间的迁移,系统污染以及色谱柱活化再生过程的不当等一系列原因导致仪器对数据反映不稳定。这些不稳定性会直接影响测定的精确分子量保留时间以及信号响应强度。尤其是在大样本,多批次样本采集背景下,数据产生的信号漂变会比较严重,一般来说,批次间的系统信号偏差会大于批次内样本间的信号偏差。这些测量误差降低了数据的重复性和再现性,因此可能降低检测生物反应和模糊解释的能力。

batchCorr包介绍

那么,R软件包batchCorr就是在这样的一个背景下孕育而生的。其主要目的就是为了解决样本在测定过程中随着时间的推移所产生的信号漂变,从而为我们带来更加清新的数据呈现。该软件包的工作模式是将批次间和批次内的变异分开来单独处理,其工作路线图如下:

1 | 该软件包主要包含三个模块:

a.表示批次内数据处理;b.表示批次间数据处理模式

2 | 该教程拟解决的常见问题

针对以上这两种情况,该教程将讨论有关特定任务的问题以及使用程序包随附的数据显示工作代码。因此,您应该能够按照本教程生成数据输出和数据,以检查算法及其使用是否正确。

使用流程

包的安装和加载

install.packages("devtools") # 先安装devtools包,后面马上要用到
install_git("https://gitlab.com/CarlBrunius/batchCorr.git")

示例数据

identical(rownames(peakTable),metadata$sampleName)

单个批次信号校正

1 | 首先加载分析包以及示例数据

library(batchCorr)
data('OneBatchData')

2 | 数据组成

3 | 单个批次信号漂变的校正
3.1 | 第一条命令

batchBCorr <- correctDrift(peakTable = B_PT, injections = B_meta$inj, 
                           sampleGroups = B_meta$grp, QCID = 'QC', 
                           modelNames = 'VVE', G = 17:22)

运行这条命令需要大概几分钟的时间,取决于你的PC电脑的配置。因为batchCorr采用的是mclust包进行分类,分析的算法采用的是VVE,聚类数目从17开始试到22。

3.1.1 | 结果解释
该命令运行结束后,会得到几个PDF的图,先看下cluster_BIC图:

cluster BIC图

3.2 | 第二条命令

当然,如果在数据采集的批次中间隔插入了参考样本信息,那么correctDrift()函数也可以进行适当的调整来适应。可以通过增加参数'refID'来指定那些样品是参考样品(在这个数据集中就是"Ref"):

batchBCorr <- correctDrift(peakTable = B_PT, injections = B_meta$inj, 
                           sampleGroups = B_meta$grp, QCID = 'QC', 
                           RefID='Ref', modelNames = 'VVE', G = 17:22)
testFeatsFinal <- batchBCorr$TestFeatsFinal # 提取信号校正后,在QC样本中CV 值小于0.3的数据,后续的统计分析用到的就是这张校正好且变异系数在合理范围内的数据
testFeatsFinal <- as.data.frame(testFeatsFinal)

3.2.1 | 结果解释

多批次数据信号校正和归一化

4 | 多批次间数据信号漂变的校正
4.1 | 加载含多个批次的数据集合

library(batchCorr)
data('ThreeBatchData') # 加载数据

加载的这个数据集包含三个对象:

4.2 | 首先来执行批次间的比对

## Perform batch alignment
# Extract peakinfo (i.e. m/z and rt of features)
peakIn <- peakInfo(PT = PTnofill, sep = '@', start = 3) # These column names have 2 leading characters describing LC-MS mode -> start at 3
dim(PTnofill)
# [1]    90 11815 没有比对之前是共有11815个features值
# Perform multi-batch alignment
alignBat <- alignBatches(peakInfo = peakIn, PeakTabNoFill = PTnofill, PeakTabFilled = PTfill, batches = meta$batch, sampleGroups = meta$grp, selectGroup = 'QC')

# Extract new peak table
PT=alignBat$PTalign
dim(PT)
# [1]    90 11284 比对后的feature个数减少到11284个。

4.2.1 | 结果解释

4.3 | 分批进行批次内信号校正

# Batch B
batchB <- getBatch(peakTable = PT, meta = meta, batch = meta$batch, select = 'B')
BCorr <- correctDrift(peakTable = batchB$peakTable, injections = batchB$meta$inj,
                      sampleGroups = batchB$meta$grp, QCID = 'QC',
                      G = seq(5,35,by=3), modelNames = c('VVE', 'VEE'))
# Batch F
batchF <- getBatch(peakTable = PT, meta = meta, batch = meta$batch, select = 'F')
FCorr <- correctDrift(peakTable = batchF$peakTable, injections = batchF$meta$inj,
                      sampleGroups = batchF$meta$grp, QCID = 'QC',
                      G = seq(5,35,by=3), modelNames = c('VVE', 'VEE'))
# Batch H
batchH <- getBatch(peakTable = PT, meta = meta, batch = meta$batch, select = 'H')
HCorr <- correctDrift(peakTable = batchH$peakTable, injections = batchH$meta$inj,
                      sampleGroups = batchH$meta$grp, QCID = 'QC', 
                      G = seq(5,35,by=3),modelNames = c('VVE', 'VEE'))

4.3.1 | 结果解释

4.4 | 最后一步:不同批次校正结果合并及归一化

mergedData <- mergeBatches(list(BCorr,FCorr,HCorr))
normData <- normalizeBatches(peakTable = mergedData$peakTable, 
                             batches = meta$batch, sampleGroup = meta$grp, 
                             refGroup = 'Ref', population = 'sample') # refGroup也可以设置为"QC"
PTnorm <- normData$peakTable # 该数据结果可以用于后续的统计分析

4.1 | 结果解释

结语

基本上的流程上面已经介绍完了,由于本人知识储备不是很足,所以在个人理解上会有瑕疵,请大家酌情而论。如果我有任何错误,请您及时发送邮件jnzd_hemaozhang@hotmail.com告知我,不胜感激!最后祝大家科研顺利!

参考

[1] Large-scale untargeted LC-MS metabolomics data correction using between-batch feature alignment and cluster-based within-batch signal intensity drift correction
[2] A Brief Tutorial on batchCorr: An R package for between- and within-batch drift correction of high-resolution mass spectrometry-based data.链接: https://pan.baidu.com/s/1rW2LTuBKolMKFfox34L3PQ
提取码:lrxi

上一篇 下一篇

猜你喜欢

热点阅读