前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现质谱数据的离子峰获取

R语言实现质谱数据的离子峰获取

作者头像
一粒沙
发布2020-11-03 11:00:32
2.2K0
发布2020-11-03 11:00:32
举报
文章被收录于专栏:R语言交流中心
做代谢研究的朋友们应该都很熟悉一个R包xcms,此包功能很强大,可以直接获得对应的离子峰数据。并且也提供了一个离子在metLin数据库的匹配功能。我们今天就介绍其依赖的一个确定离子峰的R包CAMERA。此包主要用来识别样本的离子峰,从而获得一个样本中所具有的离子峰总数,以及对应的每个离子峰的核质比和保留时间。首先我们看下包的安装:
代码语言:javascript
复制

BiocManager::install("CAMERA")###R3.6以后版本
BiocManager::install("multtest")
BiocManager::install("faahKO")

接下来我们直接通过实例看下包中的各个功能:

1. annotate 用于同位素峰、加合物和片段的自动注释。

代码语言:javascript
复制
library(CAMERA)
file <-system.file('mzdata/MM14.mzdata', package = "CAMERA")
xs <- xcmsSet(file,method="centWave", ppm=30, peakwidth=c(5,10))#参数列表,此处的参数参见annotate中的参数
xsa <- annotate(xs)
代码语言:javascript
复制
#可视化结果
plotPsSpectrum(xsa,maxlabel=12, pspec=1:5)#maxlabel展示离子的标签数量,pspec展示峰的数量。

2. annotateDiffreport 多样本注释离子峰。此部分利用了xcms中的获取峰面积的函数。最后获得和xcms一样的一个差异分析报告,但是多了对离子的分组。

代码语言:javascript
复制
library(CAMERA)
library(faahKO)
xs.grp <- group(faahko)
xs.fill <- fillPeaks(xs.grp)
diffreport <-annotateDiffreport(xs.fill)
write.csv(diffreport, file="diffreport.csv")

3. findAdducts 在上面获得离子峰后,由于不同的电离模式样本所带的标准离子H, Na, K, NH4和CL都可能的结合。根据四个预先计算的规则表: primary_adducts_pos, primary_adducts_neg, extended_adducts_pos,extended_adducts_neg。

代码语言:javascript
复制
file <-system.file('mzdata/MM14.mzdata', package = "CAMERA")
xs <- xcmsSet(file,method="centWave", ppm=30, peakwidth=c(5,10))
an <- xsAnnotate(xs)
an <- groupFWHM(an)
an <- findIsotopes(an) # optional butrecommended. 获取同位素标记
an <- findAdducts(an,polarity="positive")
peaklist <- getPeaklist(an)
write.csv(peaklist, file='xsannotated.csv')
代码语言:javascript
复制
#增加自己设计好的规则
file <-system.file('rules/primary_adducts_pos.csv', package = "CAMERA")
rules <- read.csv(file)
代码语言:javascript
复制
an <- findAdducts(an,polarity="positive", rules=rules)
peaklist <- getPeaklist(an)
write.csv(peaklist, file='xsannotated_rules.csv')

其中的主要的参数:

4. findNeutralLoss 扫描丢失的中性离子。例如水的丢失。在经过groupCorr or groupFWHM处理后才可以此过程。

代码语言:javascript
复制
library(CAMERA)
file <-system.file('mzdata/MM14.mzdata', package = "CAMERA")
xs <- xcmsSet(file,method="centWave", ppm=30, peakwidth=c(5,10))
an <- xsAnnotate(xs)
an <- groupFWHM(an)
xs.pseudo <-findNeutralLoss(an,mzdiff=18.01,mzabs=0.01)
xs.pseudo@peaks###输出得到的丢失中性离子峰数据。

5. getIsotopeCluster获取同位素为基础的聚类结果

代码语言:javascript
复制
library(CAMERA)
file <-system.file('mzdata/MM14.mzdata', package = "CAMERA")
xs <- xcmsSet(file,method="centWave", ppm=30, peakwidth=c(5,10))
an <- xsAnnotate(xs)
an <- groupFWHM(an)
an <- findIsotopes(an)##必须步骤
isolist <- getIsotopeCluster(an)
isolist[[10]] #get IsotopeCluster 10

6. getpspectra 获取以同位素分类的各类离子峰数据

代码语言:javascript
复制
library(CAMERA)
file <-system.file('mzdata/MM14.mzdata', package = "CAMERA")
xs <- xcmsSet(file,method="centWave", ppm=30, peakwidth=c(5,10))
xsa <- xsAnnotate(xs)
xsa <- groupFWHM(xsa)
psp.peaks <- getpspectra(xsa, 1)##获取几类同位素的离子峰数据
psp.peaks

7. groupFWHM 获取样本的伪谱信息,将数据基于保留时间进行分组。然后基于groupCorr对各离子之间行进基于离子峰面积的离子归类。至此获得校正后的各离子数据。

代码语言:javascript
复制
library(CAMERA)
file <-system.file('mzdata/MM14.mzdata', package = "CAMERA")
xs <- xcmsSet(file,method="centWave", ppm=30, peakwidth=c(5,10))
xsa <- xsAnnotate(xs)
xsa <- groupFWHM(xsa)
xsa <- groupCorr(xsa)
plotEICs(xsa,1)

最后就是构建规则表,这一部分需要实现对自己的仪器以及数据相当的熟悉才会有的操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档