xcms用于LC-MS和GC-MS數(shù)據(jù)分析,用于色譜分離和單光譜質(zhì)譜數(shù)據(jù)處理和可視化的框架。導(dǎo)入AIA / ANDI NetCDF,mzXML,mzData和mzML文件。預(yù)處理數(shù)據(jù)以實(shí)現(xiàn)高通量,非靶的分析物分析。
1 安裝和導(dǎo)入
BiocManager::install("xcms")
BiocManager::install("msdata")
library(xcms)
library(magrittr)
library(ggplot2)
xcms包依賴的包很多,安裝起來(lái)很費(fèi)時(shí)間
2 .導(dǎo)入數(shù)據(jù)
所使用的示例數(shù)據(jù)是msdata包自帶的數(shù)據(jù),使用MSnbase包的readMSData函數(shù)加載,dda_data對(duì)象包含指定 mzML 文件中的所有 MS1 和 MS2 數(shù)據(jù)。
dda_file <- system.file("TripleTOF-SWATH/PestMix1_DDA.mzML",package = "msdata")
dda_data <- readMSData(dda_file, mode = "onDisk")
如果沒(méi)有安裝msdata包,可以直接導(dǎo)入
dda_data <- readMSData("PestMix1_DDA.mzML", mode = "onDisk")

在experimentData@instrumentModel儲(chǔ)存儀器信息。
可以通過(guò)以下命令查看。
dda_data@experimentData@instrumentModel
#[1] "TripleTOF 6600"
dda_data@experimentData@instrumentManufacturer
#[1] "SCIEX"
提取總離子流圖
總離子流圖是每個(gè)時(shí)間點(diǎn)所有離子疊加起來(lái)的信號(hào)強(qiáng)度
bpis <- chromatogram(dda_data, aggregationFun = "sum")
plot(bpis,col = c("blue"))


使用ggplot2作圖。
data <- data.frame(rtime=bpis@.Data[[1]]@rtime,intensity=bpis@.Data[[1]]@intensity)
ggplot(data,aes(rtime,intensity))+geom_line()

提取基峰色譜圖
基峰色譜圖是每個(gè)時(shí)間點(diǎn)信號(hào)最強(qiáng)峰
bpis2 <- chromatogram(dda_data, aggregationFun = "max")
plot(bpis2,col = c("red"))

參數(shù)aggregationFun可以選擇"mean","min"。
將TIC和BPC圖合在一起。
data2 <- data.frame(rtime=bpis2@.Data[[1]]@rtime,TIC=bpis@.Data[[1]]@intensity,
BPC=bpis2@.Data[[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"))

使用msLevel函數(shù)查看所有峰的質(zhì)譜級(jí)數(shù)
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
使用列聯(lián)函數(shù)table查看MS1和MS2的個(gè)數(shù)
table(msLevel(dda_data))
# 1 2
#4627 2975
或者使用管道命令 |>,filterMsLevel選擇質(zhì)譜級(jí)數(shù)
dda_data |> filterMsLevel(1L) |> length()
#[1] 4627
dda_data|> filterMsLevel(2L) |> length()
#[1] 2975
可見(jiàn)7602張質(zhì)譜圖中,有4627張一級(jí)質(zhì)譜,2975張二級(jí)質(zhì)譜。
查看一級(jí)譜圖
data_1L <- filterMsLevel(dda_data,1L)
table(msLevel(data_1L))
# 1
# 4627
plot(data_1L[2003:2005])+xlim(200,400)

查看二級(jí)譜圖
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

提取二級(jí)質(zhì)譜并使用precursorMz函數(shù)求得母離子的質(zhì)荷比
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函數(shù)求得母離子的離子強(qiáng)度
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公司產(chǎn)生的數(shù)據(jù)一般不會(huì)將母離子的離子強(qiáng)度導(dǎo)出(一般MS1為NA,MS2為0),需要使用xcms包的函數(shù)estimatePrecursorIntensity。
prec_int <- xcms::estimatePrecursorIntensity(dda_data)
fData(dda_data)$precursorIntensity <- prec_int
dda_data %>%
filterMsLevel(2L) %>%
precursorIntensity() %>%
head()
參考資料:
XCMS官方說(shuō)明文檔
LC-MS/MS data analysis with xcms (bioconductor.org)