您好,欢迎访问三七文档
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.CDFKO/ko16.CDFKO/ko18.CDFKO/ko19.CDFKO/ko21.CDF[6]KO/ko22.CDFWT/wt15.CDFWT/wt16.CDFWT/wt18.CDFWT/wt19.CDF[11]WT/wt21.CDFWT/wt22.CDFlist.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.CDFxset-xcmsSet(cdffiles)这条语句主要作用是谱峰鉴定(peakidentification),其结果存储在了一个‘xcmsset’类型的数据(不用管这个类型是啥意思)。250:38300:103350:226400:338450:431500:529550:674600:847250:43300:128350:275400:394450:500500:637550:835600:1027250:25300:93350:227400:337450:411500:498550:640600:758250:19300:67350:169400:258450:301500:373550:488600:580250:24300:60350:166400:254450:315500:391550:501600:582250:31300:71350:183400:280450:338500:422550:532600:604250:41300:105350:212400:319450:416500:533550:684600:838250:27300:107350:232400:347450:440500:549550:712600:905250:24300:87350:200400:293450:351500:426550:548600:661250:22300:65350:161400:243450:293500:358550:483600:561250:28300:69350:157400:229450:282500:364550:493600:592250: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.1findPeaks.matchedFilter该法有几个参数需要考虑:峰宽(peakwidth)可用标准方差(sigma)或者半峰全宽(fwhm)来表示,默认值是FWHM=30s。根据色谱类型,我们应当选择合适的峰宽。步长(step)默认值是2,step=2.存储,有四种方法,‘bin’,‘binlin’,‘binlinbase’,‘intlin’,其中bin是默认方法。四种方法的具体意思自己看文献吧,最后一个不推荐用,第三个具体怎么设置,我也没咋看懂。2.2.2findPeaks.centWave该法更适合于高分辨率的仪器下的centroidmode的数据,比如LC/{TOF,OrbiTrap,FTICR}-MS。binning在这里是不必要的。这里面有两个参数需要考虑:ppm,其选择和仪器精度有关峰宽范围(peakwidthrange):比如HPLC里用peakwidth=c(20,50),UPLC里是peakwidth=c(5,12),单位是秒。说了这个多了,举例子吧(英语说明里这部分一笔带过,而且help里的例子也不适合batchfiles,如何设置这些参数的确让人有些摸不着头脑):1.findPeaks.matchedFilterxset-xcmsSet(cdffiles,method=’matchedFilter’,fwhm=60,step=3,profmethod='binlin')xsetAnxcmsSetobjectwith12samplesTimerange:2507.6-4139.9seconds(41.8-69minutes)Massrange:200.1-597.0233m/zPeaks:2549(about212persample)PeakGroups:0Sampleclasses:KO,WTProfilesettings:method=binlinstep=3Memoryusage:0.497MB最后结果如上,我用了matchedFilter方法,fwhm是60s,步长是3,存储方法是binlin2.findPeaks.centWavexset-xcmsSet(cdffiles,method=’centWave’,ppm=5,peakwidth=c(10,20))xsetAnxcmsSetobjectwith12samplesTimerange:2502.9-4476.4seconds(41.7-74.6minutes)Massrange:200.1-600m/zPeaks:52907(about4409persample)PeakGroups:0Sampleclasses:KO,WTProfilesettings:method=binstep=0.1Memoryusage:4.68MB最后结果如上,我用了centWave方法,ppm=5,峰宽范围是10-20s。2.3样本间峰匹配(peakmatchacrosssamples)xset-group(xset)Group有三种方法‘density’,‘mzClust’和‘nearest’。每种方法下都有一系列不同的参数。‘density’是默认方法。nearest’需要额外安装‘RANN’的包才能实现。Density:Grouppeakstogetheracrosssamplesusingoverlappingm/zbinsandcalculationofsmoothedpeakdistributionsinchromatographictime。mzClust:RunshighresolutionalignmentonsinglespectrasamplesstoredinagivenxcmsSet.Nearest:Grouppeakstogetheracrosssamplesbycreatingamasterpeaklistandassigningcorrespondingpeaksfromallsamples.具体的方法和参数自己可以用help。比如想查density方法,就用help(‘group.density’)来查看。举个例子:Xset-group(xset,mzppm=10,mzabs=0,minsamp=1,minfrac=0)这里我用了mzCluster,它对应的各个参数跟在后面。2.4保留时间校正(retentionti
本文标题:xcms了解和使用
链接地址:https://www.777doc.com/doc-4834554 .html