XCMS包的安装及要求
xcms是基于R语言设计的程序包(R package),可以通过Bioconductor进行安装。具体信息请参考https://bioconductor.org/packages/release/bioc/html/xcms.html
安装Bioconductor
安装XCMS
安装数据及其他R包
原始数据转换
xcms支持xml、mzData、mzXML、mzML、netCDF等数据格式,因而在利用xcms进行数据处理之前,需要对于质谱采集的原始数据进行格式转换,一般可使用ProteoWizard等。
利用XCMS进行峰检测及对齐
(Bioconductor上已有xcms数据处理的具体指导,参见https://bioconductor.org/packages/release/bioc/vignettes/xcms/inst/doc/xcms.html) 由于xcms3对xcms中的方法名称进行了调整,对于一致使用xcms进行数据处理的用户来说可能会造成一定的困扰,目前xcms3还继续兼容大多数旧的xcms方法,但随着程序的进一步更新,势必会逐步取代过去的方法,因而,大家还是需要尽快熟悉新的方法的使用。在此,为方便大家理解,本文对同一处理分别使用新旧方法进行演示。
调用R包
数据导入
利用centWave算法进行峰检测
findChromPeaks是xcms中用于进行峰检测的新方法,输入值为'OnDiskMSnExp'对象和峰检测参数对象,CentWaveParam用以创建'CentWaveParam'对象,该对象设置使用'centWave'算法进行峰检测时所需要的参数,其中比较常用的参数如下:
* ppm -- 峰检测时MS1的m/z tolerance,以ppm为单位
* peakwidth -- 长度为2的向量,设置峰检测时峰宽范围,事实上该参数对应的每个峰可以跨越多少个质谱检测的scan,而非多少秒
* snthresh -- 峰检测时信噪比要求
* return.type -- 返回数据类型,可以根据要求返回'XCMSnExp'类数据(默认)、传统的'xcmsSet'类以及'list'
xcmsSet是xcms中可以用于峰检测的传统方法,使用method参数设置峰检测算法,另外根据不同的峰检测算法可以设置该算法需要的参数,详情请参考xcms官方文档。其中'centWave'算法所对应的参数与'CentWaveParam'设置基本一致。
峰检测时除了可以使用centWave算法外,还可以使用其他算法,如'centWaveWithPredIsoROIs'、'massifquant'、'matchedFilter'、'MSW'等,分别对应'CentWavePredIsoParam'、'MassifquantParam'、'MatchedFilterParam'、'MSWParam'参数设置,详情请参考xcms官方文档或者使用R help
峰对齐及分组(peak alignment & grouping)
同一代谢物在不同样品的流出时间会略有差异,因而对于峰检测的结果需要进行对齐(alignment)并将不同样品中的统一代谢物分到各自可以表征该代谢物的峰组(peak group)中(代谢组学中一般成为feature),从而进一步比较不同样品间统一代谢物的含量。通常我们可以使用'obiwarp'算法进行peak alignment,然后利用'density'算法进行peak grouping.
峰补齐
对于峰检测过程中会有部分feature在某些样品中未检出对应代谢物峰的清醒,xcms可以根据已检出feature的信息,在相应样品中强行提取EIC信息,从而计算该代谢物在该样品中的含量信息,我们一般称之为filling gaps
如此,对于一组代谢物样品的峰检测已经全部完成。
对比xcms用于峰检测的新方法和就方法,我们可以发现新方法在命名方面更加直白,可以根据方法名称直接了解该方法所使用的算法,而在以前的峰检测方法中,这些算法均整合在数据处理的过程中。两种方式格局优劣,新方法意义明确,但是在处理时需要更多的参数设置过程,而旧方法数据处理过程更加简洁,但需要对xcms熟练度要求较高。