XCMS包.docx

上传人:b****1 文档编号:633573 上传时间:2022-10-11 格式:DOCX 页数:6 大小:19.32KB
下载 相关 举报
XCMS包.docx_第1页
第1页 / 共6页
XCMS包.docx_第2页
第2页 / 共6页
XCMS包.docx_第3页
第3页 / 共6页
XCMS包.docx_第4页
第4页 / 共6页
XCMS包.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

XCMS包.docx

《XCMS包.docx》由会员分享,可在线阅读,更多相关《XCMS包.docx(6页珍藏版)》请在冰豆网上搜索。

XCMS包.docx

XCMS包

未完成-XCMS包

 

经常见有人问到xcms包相关的问题。

我们组里很多人在用它,但因为做的方向用不到这个包,自己从没用过这个包,所以想帮忙又无从下手。

然后就萌生了写(其实是翻译了)一个详细但又不冗余的xcms包的用法,希望能帮助到别人。

但当开始写的时候,我才意识到这个包的参数是如此之多,而英文的说明里大多数参数意义都是一笔带过,而且例子里用的也是默认值,所以R代码里很多参数甚至都没出现。

这让很多想具体问题具体分析的人感到很困难。

我断断续续写了两个晚上,快写完了,或者离写完还很远(参数实在太庞杂了,比我想象中的要多的多)。

由于最近事情多,而且自己也不自信,所以暂且搁笔,等有时间了或者哪天真正用到xcms时再来继续完成自己的初衷。

但前面大部分的东西我已经提到了。

希望还是对某些人能够有所帮助。

有错误的地方麻烦提出来,共同进步…

XCMS包用法

1. 前期准备

数据类型:

NetCDF, mzXML, mzData。

所以首先需要把自己的文件通过相应的软件转化成这类文件。

数据位置:

因为xcms会记录下数据所在的位置,并且在数据分析过程中会来回从文件夹中读取数据。

所以不要再随意改变数据所在的文件的位置。

数据来源:

来源不同的数据应当分开进行数据前处理。

比如正离子和负离子模式下得到的数据,不同的洗脱梯度下得到的数据。

数据存储:

xcms可以根据数据所在的文件夹的来识别不同的数据组。

比如你想研究某一药物在两组病人间的纵向效应(longitudinaleffect),然后你可以把你的两组数据分别存入命名为groupA和groupB的文件夹,这样xcms可以识别这两个组。

每个文件夹内你还可以继续细分,比如按时间‘day1’,‘day2’等等。

xcms会自动给这些数据命名为groupA/day1,groupA/day2,等等。

(所以这里你要根据你的数据组来把它们存入不同的文件夹)。

如果这里描述的不清楚的话,我会在后面的例子里进一步说明。

 

下面将会以一个详细的例子来分布解说xcms是如何处理LC-MS数据的。

2. 数据分析

2.1   文件读取

cdfpath<-system.file("cdf",package="faahKO")  

 system.file作用是寻找包里面文件的路径和全名。

这里指的是在叫‘faahKO’的包中找到文件类型为‘cdf’的文件的全名。

list.files(cdfpath,recursive=TRUE)

[1]"KO/ko15.CDF""KO/ko16.CDF""KO/ko18.CDF""KO/ko19.CDF""KO/ko21.CDF"

[6]"KO/ko22.CDF""WT/wt15.CDF""WT/wt16.CDF""WT/wt18.CDF""WT/wt19.CDF"

[11]"WT/wt21.CDF""WT/wt22.CDF"

list.files是读取该路径下的文件夹或文件名,并以字符型向量存储。

当然,这两条代码对我们都不重要,它们只是单纯的为了从这个包里面读取数据。

2.2   过滤及谱峰检测(filtrationandpeakidentification)

Library(xcms)每次使用这个包之前先要加载。

cdffiles<-list.files(cdfpath,recursive=TRUE,full.names=TRUE)

读取cdf文件,这里如果你要读取你自己的文件,你只要把cdfpath换成你的文件夹所在的位置就行,比如你的数据在文件D:

/data,那你把这里的代码换成cdffiles<-list.files(‘D:

/data,recursive=TRUE,full.names=TRUE)就行(当然还有更方便的方法,不过这个就够用了)。

Recursive=TURE的话,它会递归读取到你文件夹里,如果是False的话就只会读取到文件夹。

Full.names=TURE的话,你会得到一个包含路径的文件名,False的话只会得到文件名。

[1]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/KO/ko15.CDF"

[2]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/KO/ko16.CDF"

[3]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/KO/ko18.CDF" 

[4]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/KO/ko19.CDF" 

[5]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/KO/ko21.CDF" 

[6]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/KO/ko22.CDF" 

[7]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/WT/wt15.CDF" 

[8]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/WT/wt16.CDF" 

[9]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/WT/wt18.CDF" 

[10]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/WT/wt19.CDF"

[11]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/WT/wt21.CDF"

[12]"C:

/Softwares/R3.0.1/R-3.0.1/library/faahKO/cdf/WT/wt22.CDF" 

xset<-xcmsSet(cdffiles)

这条语句主要作用是谱峰鉴定(peakidentification),其结果存储在了一个‘xcmsset’类型的数据(不用管这个类型是啥意思)。

250:

38300:

103350:

226400:

338450:

431500:

529550:

674600:

847 250:

43300:

128350:

275400:

394450:

500500:

637550:

835600:

1027 250:

25300:

93350:

227400:

337450:

411500:

498550:

640600:

758 250:

19300:

67350:

169400:

258450:

301500:

373550:

488600:

580 250:

24300:

60350:

166400:

254450:

315500:

391550:

501600:

582 250:

31300:

71350:

183400:

280450:

338500:

422550:

532600:

604 250:

41300:

105350:

212400:

319450:

416500:

533550:

684600:

838 250:

27300:

107350:

232400:

347450:

440500:

549550:

712600:

905 250:

24300:

87350:

200400:

293450:

351500:

426550:

548600:

661 250:

22300:

65350:

161400:

243450:

293500:

358550:

483600:

561 250:

28300:

69350:

157400:

229450:

282500:

364550:

493600:

592 250:

30300:

81350:

188400:

280450:

356500:

473550:

618600:

765

每一行就是一个文件,并且谱峰鉴定结果用成对的数据形式来给出。

分号前面的数字表示正在处理的质荷比(m/z),后面的数字表示到该质荷比时已经找出的峰数目(peaknumber)

这个语句看似简单,里面包含的参数却很多:

xcmsSet(files=NULL,snames=NULL,sclass=NULL,phenoData=NULL,profmethod="bin",profparam=list(),polarity=NULL,lockMassFreq=FALSE,mslevel=NULL,nSlaves=0,progressCallback=NULL,scanrange=NULL,...) 多数情况下,我们用这些默认值就够了。

但对于特定的分析仪器或者数据,我们也需要优化一些参数。

Findpeaks利用两种不同的算法来进行峰值检测(peakdetection)。

其中默认法是findPeaks.matchedFilter,另一种方法是findPeaks.centWave。

 

2.2.1  findPeaks.matchedFilter

该法有几个参数需要考虑:

峰宽(peakwidth)可用标准方差(sigma)或者半峰全宽(fwhm)来表示,默认值是FWHM=30s。

根据色谱类型,我们应当选择合适的峰宽。

步长(step)默认值是2,step=2.

存储,有四种方法,‘bin’,‘binlin’,‘binlinbase’,‘intlin’,其中bin是默认方法。

四种方法的具体意思自己看文献吧,最后一个不推荐用,第三个具体怎么设置,我也没咋看懂。

2.2.2  findPeaks.centWave

该法更适合于高分辨率的仪器下的centroidmode的数据,比如LC/{TOF,OrbiTrap,FTICR}-MS。

binning在这里是不必要的。

这里面有两个参数需要考虑:

ppm,其选择和仪器精度有关

峰宽范围(peakwidthrange):

比如HPLC里用peakwidth=c(20,50),UPLC里是peakwidth=c(5,12),单位是秒。

说了这个多了,举例子吧(英语说明里这部分一笔带过,而且help里的例子也不适合batchfiles,如何设置这些参数的确让人有些摸不着头脑):

1.  findPeaks.matchedFilter

xset<-xcmsSet(cdffiles,method=’matchedFilter’,fwhm=60,step=3,profmethod='binlin')

xset

An"xcmsSet"objectwith12samples

 Timerange:

2507.6-4139.9seconds(41.8-69minutes)

Massrange:

200.1-597.0233m/z

Peaks:

2549(about212persample)

PeakGroups:

0

Sampleclasses:

KO,WT

 Profilesettings:

method=binlin

             step=3

Memoryusage:

0.497MB

 最后结果如上,我用了matchedFilter方法,fwhm是60s,步长是3,存储方法是binlin

2.  findPeaks.centWave

xset<-xcmsSet(cdffiles,method=’centWave’,ppm=5,peakwidth=c(10,20))

xset

An

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1