R package:xcms代谢组学初探

xcms用于LC-MS和GC-MS数据分析,用于色谱分离和单光谱质谱数据处理和可视化的框架。导入AIA / ANDI NetCDF,mzXML,mzData和mzML文件。预处理数据以实现高通量,非靶的分析物分析。

1 安装和导入

BiocManager::install("xcms")
BiocManager::install("msdata")
library(xcms)
library(magrittr)
library(ggplot2)

xcms包依赖的包很多,安装起来很费时间

2 .导入数据

使用MSnbase包的readMSData函数加载数据,dda_data对象包含指定 mzML 文件中的所有 MS1 和 MS2

dda_file <- system.file("TripleTOF-SWATH/PestMix1_DDA.mzML",package = "msdata")
dda_data <- readMSData(dda_file, mode = "onDisk")
dda_data.png

在experimentData@instrumentModel储存仪器信息为"TripleTOF 6600"。
提取总离子流图
总离子流图是每个时间点所有离子叠加起来的信号强度

bpis <- chromatogram(dda_data, aggregationFun = "sum")
plot(bpis,col = c("blue"))
image.png
TIC图.png

使用ggplot2作图。

data <- data.frame([email protected][[1]]@rtime,[email protected][[1]]@intensity)
ggplot(data,aes(rtime,intensity))+geom_point()
散点图.png
ggplot(data,aes(rtime,intensity))+geom_line()
折线图.png

提取基峰色谱图
基峰色谱图是每个时间点信号最强峰

bpis2 <- chromatogram(dda_data, aggregationFun = "max")
plot(bpis2,col = c("red"))
BPC图.png

参数aggregationFun可以选择"mean","min"。
将TIC和BPC图合在一起。

data2 <- data.frame([email protected][[1]]@rtime,[email protected][[1]]@intensity,
                    [email protected][[1]]@intensity)
library(reshape2)
data3 <-melt(data2,id.vars = "rtime",variable.name= "Type",value.name = "Intensity")
ggplot(data3,aes(rtime,Intensity,group = Type,color = Type))+
  geom_line()+
  scale_color_manual(values = c("red","blue"))
TIC&BPC.png

使用msLevel函数查看所有峰的质谱级数

head(msLevel(dda_data))
# F1.S0001 F1.S0002 F1.S0003 F1.S0004 F1.S0005 F1.S0006 
#        1        1        1        1        1    
length(msLevel(dda_data))
#[1] 7602

使用列联函数table查看MS1和MS2的个数

table(msLevel(dda_data))
#   1    2 
#4627 2975

或者使用管道命令 %>%,filterMsLevel选择质谱级数

dda_data %>% filterMsLevel(1L) %>% length()
#[1] 4627
dda_data %>% filterMsLevel(2L) %>% length()
#[1] 2975

可见7602张质谱图中,有4627张一级质谱,2975张二级质谱。
查看一级谱图

data_1L <- filterMsLevel(dda_data,1L)
table(msLevel(data_1L))
#   1 
# 4627
plot(data_1L[2003:2005])+xlim(200,400)
Rplot.png

查看二级谱图

data_2L <- filterMsLevel(dda_data,2L)
table(msLevel(data_2L))
#   1 
# 2975
plot(data_2L[[1]])$data
#            i       mtc
# 1 0.04827657  55.93534
# 2 0.09725399  78.95068
# 3 0.05769959 138.01590
Rplot01.png

提取二级质谱并使用precursorMz函数求得母离子的质荷比

dda_data %>% filterMsLevel(2L) %>% precursorMz() %>% head()
# F1.S0023  F1.S0024  F1.S0028  F1.S0029  F1.S0113  F1.S0120 
#212.07649 220.14811  93.03474 219.17504 666.06150 329.07436

使用precursorIntensity函数求得母离子的离子强度

dda_data %>% filterMsLevel(2L) %>% precursorIntensity() %>% head()
#F1.S0023 F1.S0024 F1.S0028 F1.S0029 F1.S0113 F1.S0120 
#       0        0        0        0        0        0
dda_data %>% precursorIntensity()%>% head()
#F1.S0001 F1.S0002 F1.S0003 F1.S0004 F1.S0005 F1.S0006 
#      NA       NA       NA       NA       NA       NA 

Sciex公司产生的数据一般不会将母离子的离子强度导出(一般MS1为NA,MS2为0),需要使用xcms包的函数estimatePrecursorIntensity。

prec_int <- xcms::estimatePrecursorIntensity(dda_data)
fData(dda_data)$precursorIntensity <- prec_int
dda_data %>%
    filterMsLevel(2L) %>%
    precursorIntensity() %>%
    head()

检出peak

cwp <- CentWaveParam(snthresh = 5, noise = 100, ppm = 10,
                     peakwidth = c(3, 30))
dda_data <- findChromPeaks(dda_data, param = cwp)
参数设置.png

参考资料:
https://bioconductor.org/packages/release/bioc/html/xcms.html
Compounding (grouping) of LC-MS features (bioconductor.org)
LCMS data preprocessing and analysis with xcms (bioconductor.org)

你可能感兴趣的:(R package:xcms代谢组学初探)