分享

代谢组学数据标准化

 terminator_523 2019-12-02

[为什么要做标准化]


基于质谱的代谢组学数据由于各种因素,比如质谱信号漂移,色谱柱污染,等等,会导致采集的数据有很多的系统误差存在,这些系统误差如果不去除掉,会严重影响数据质量,并进而影响从数据中挖掘有效信息的能力。比如下面图就分别显示了批次内(intra-batch)以及批次间(inter-batch)的系统误差,可以看到系统误差还是非常严重和明显的。因此对于质谱代谢组学数据来说,数据的标准化(data normalization)是必不可少的一步。

代谢组学数据标准化的方法

代谢组学数据进行标准化的方法大致可以分为三种。

  • 内标标准化:在样品中加入内标,然后对所有的峰都使用该内标进行校正。但是这种方法使用一个或者几个内标对所有的峰进行标准哈,并不可靠,因此用的不多。

  • 基于样品本身:比如使用样品中所有峰的平均值、中位值或者总和对所有峰进行校正。另外还有比如PQN等等方法。

  • 第三种在代谢组学数据中最为常见的标准化方法是基于QC(质量控制)样本的数据标准化。简单来说,就是将所要采集的所有样本取等量混合起来,组成QC样本,然后在采集数据的时候,每隔一定数量的样品,插入一针QC样本。因为QC样本都是一样的,因此可以用QC样本来模拟数据采集过程中信号的变化。得到数据之后,对每一个峰(peak),都将QC作为训练集,然后建立预测模型,预测信号变化,从而对样品中的信号进行校正。

基于QC和支持向量机的数据标准化R包:MetNormalizer

我再读博期间的第一个项目就是建立一个基于QC样品的数据标准化方法,我们最后选择了一个非常有用并且常用的机器学习方法,SVR(支持向量机回归),最后的方法我们做成了一个R包,MetNormalizer。具体的内容可以参考我的文章,Normalization and Integration of Large-Scale Metabolomics Data Using Support Vector Regression。下面就用MetNormalizer自带的示例数据示范如何使用。

安装MetNormalizer
MetNormalizer的源代码托管在github上,可以直接从github安装。在R控制台中输入下列代码,进行安装。

1

2

3

4

if(!require(devtools)){

install.packages('devtools')

}

devtools::install_github('jaspershen/MetNormalizer')

准备数据
以MetNormalizer自带数据为例。

1

2

3

4

5

6

7

8

#首先加载MetNormalizer包

library(MetNormalizer)

#设置工作路径

setwd('F:/test')#根据自己实际情况设置路径

data(DemoData, package = 'MetNormalizer')

#输出数据为csv格式

write.csv(data, 'data.csv', row.names = FALSE)

write.csv(sample.info, 'sample.info.csv', 

row.names = FALSE)

其中data为MS1 peak table,可以来源于任何的处理软件,如XCMS,MS-DIAL等。注意前三列必须为name(峰的名字),m/z和RT。然后其他列为样本的intensity。

sample.info为样品信息,用来提供样品的信息。一共三列,第一列sample.name(样品名字),然后依次是injection.order和class。class用来指明样品的种类,”Subject”说明该样品为生物样品,注意S要大写;QC是指样品为QC样品。

  • 开始处理数据
    然后开始运行函数。

1

2

3

4

MetNormalizer(minfrac.qc = 0,

minfrac.sample = 0,

threads = 3,

peakplot = TRUE)

  • 处理结果

最后所有的处理结果都存放在svr normalization result文件夹中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多