R版本: R版本3.6.0 (2019-04-26)
Bioconductor版本: 3.9
包版本: 1.8.0
以下包将在整个文档中使用。R版本3.3.1
或更高,以安装使用的所有包BiocManager:安装
.
库("mzR")库("mzID")库("MSnID")库("MSnbase")库("rpx")库("MLInterfaces")库("pRoloc")库("pRolocdata")库("MSGFplus")库("rols")库("hpar")
安装所需的所有教程(以及更多相关内容)最方便的方法是安装RforProteomics和它所有的依赖关系。
library("BiocManager")::install("RforProteomics", dependencies = TRUE)
这个工作流程说明了R / Bioconductor用于蛋白质组学的基础结构。涉及的主题集中在对原始数据和鉴定结果的开放社区驱动格式的支持、肽谱匹配软件包、数据处理和分析:
还记录了到其他包和引用的链接。特别是其中的小插图RforProteomics包装中还包含相关材料。
在Bioconductor 3.9版本中,分别有128个蛋白质组学, 85年质谱软件包和22质谱实验包.方法提取这些相应的包proteomicsPackages ()
,massSpectrometryPackages ()
而且massSpectrometryDataPackages ()
互动探索。
library("RforProteomics") pp <- proteomicsPackages() display(pp)
中支持大多数社区驱动的格式R
,详见下表。
类型 | 格式 | 包 |
---|---|---|
生 | mzML, mzXML, netCDF, mzData | mzR (读) |
识别 | mzIdentML | mzR (读),mzID (读) |
定量 | mzQuantML | |
峰列表 | mgf | MSnbase (读/写) |
其他 | mzTab | MSnbase (读) |
基于ms的蛋白质组学数据通过ProteomeXchange基础设施,它通过多个数据存储库集中协调提交、存储和传播骄傲EBI的数据库,用于MS/MS实验,一批,以获取SRM数据和巨大的资源。的rpx是ProteomeXchange的接口,提供对PX数据的基本访问。
库(rpx) pxannounced ()
15个新的ProteomeXchange公告
# #数据。集出版。数据信息## 1 PXD010862 2019-05-06 14:34:16新## 3 PXD013546 2019-05-06 14:15:20新## 6 PXD013397 2019-05-06 14:13:43新## 7 PXD012877 2019-05-06 14:03:00新## 8 pxd012888 2019-05-06 13:42:46新## 9 PXD012379 2019-05-06 13:26:35新## 10 PXD013425 2019-05-06 13:26:59新## 12 PXD010791 2019-05-05 02:13:41新## 13 PXD0107902019-05-04 10:24:28新
使用唯一的PXD000001
标识符时,可以检索存储在PXDataset
对象。方法可以检索此数据中可用的文件的名称pxfiles
访问器的功能。
px <- PXDataset("PXD000001") px
## PXDataset类对象## Id: PXD000001,包含12个文件使用“pxfiles(.)”查看所有文件。
pxfiles(像素)
## [1] "F063721.dat" ## [2] "F063721.dat-mztab.txt" ## [3] "PRIDE_Exp_mzData_Ac_22134.xml.gz" ## [5] "PXD000001_mztab.txt" ## [6] "README.txt" ## [7] "TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210。mzML“##[8]”TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210。mzXML" ## [9] "TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01。mzXML" ## [10] "TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01.raw" ## [11] "erwinia_carotovora.fasta" ## [12] "generated"
的其他元数据px
数据集:
pxtax(像素)
“Erwinia carotovora”
pxurl(像素)
##[1]“ftp://ftp.pride.ebi.ac.uk/pride/data/archive/2012/03/PXD000001”
pxref(像素)
gattto L, Christoforou A.使用R和Bioconductor进行蛋白质组学数据分析。生物化学学报,2014 1844(1 pt a):42-51"
方法下载数据文件pxget
函数。下面,我们检索原始数据文件。文件在工作目录中下载,文件的名称由函数返回并存储在mzf
变量,供以后使用。
fn <- "TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210. "mzf <- pxget(px, fn)
下载1个文件
mzf
## [1] "/tmp/RtmpM7a8cs/Rbuild68e538add17d/proteomics/vignettes/TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210.mzML"
的mzR
包提供到proteowizardC/ c++代码库访问各种原始数据文件,如mzML
,mzXML
,netCDF
,mzData
.数据是在磁盘上访问的,也就是说,默认情况下它并不完全载入内存,只有在显式请求时才载入。这三个主要功能是openMSfile
要创建原始数据文件的文件句柄,头
提取文件中包含的光谱的元数据山峰
提取一个或多个感兴趣的光谱。其他功能,例如instrumentInfo
,或runInfo
可用于收集有关运行的一般信息。
下面,我们访问在前一节中下载的原始数据文件,并打开一个文件句柄,它将允许我们提取感兴趣的数据和元数据。
library("mzR") ms <- openMSfile(mzf) ms
质谱仪文件处理。##文件名:TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210。mzML ##扫描次数:7534
的头
函数返回所有可用峰值的元数据:
Hd <- header(ms) dim(Hd)
## [1] 7534 29
名(高清)
# #[1]“seqNum”# #“acquisitionNum”[3]“msLevel”“极性”# #[5]“peaksCount”“totIonCurrent”# #[7]“retentionTime”“basePeakMZ”# #[9]“basePeakIntensity”“collisionEnergy”# #[11]“ionisationEnergy”“lowMZ”# #[13]“highMZ”“precursorScanNum”# #[15]“precursorMZ”“precursorCharge”# #[17]“precursorIntensity”“mergedScan”# #[19]“mergedResultScanNum”“mergedResultStartScanNum”# #[21]“mergedResultEndScanNum”“injectionTime”# #[23]“filterString”“spectrumId”# #[25]“重心”"ionMobilityDriftTime" ## [27] "isolationWindowTargetMZ" "isolationWindowLowerOffset" ## [29] "isolationWindowUpperOffset"
我们可以提取元数据并扫描扫描1000,如下所示:
高清(1000)
# # seqNum acquisitionNum msLevel极性peaksCount totIonCurrent # # 1000 1000 1000 274 1048554 1 # # retentionTime basePeakMZ basePeakIntensity collisionEnergy 45 # # # # 1000 1106.916 - 136.061 164464 ionisationEnergy lowMZ highMZ precursorScanNum precursorMZ # # 1000 0 104.5467 1370.758 992 683.0817 # # precursorCharge precursorIntensity mergedScan mergedResultScanNum # # 1000 2 689443.7 0 0 # # mergedResultStartScanNum mergedResultEndScanNum injectionTime # # # # filterString # # 55.21463 1000 0 01000 FTMS + p NSI d Full ms2 683.08@hcd45.00 [100.00-1380.00] ## spectrumId centrroided ## 1000 controllerType=0 controllerNumber=1 scan=1000 TRUE ## ionMobilityDriftTime isolationWindowTargetMZ isolationWindowLowerOffset ## 1000 NA 683.08 1 ## isolationWindowUpperOffset ## 1000 1
头(峰值(女士,1000))
## [,1] [,2] ## [1,] 104.5467 308.9326 ## [2,] 104.5684 308.6961 ## [3,] 108.8340 346.7183 ## [4,] 109.3928 365.1236 ## [5,] 110.0345 616.7905 ## [6,] 110.0703 429.1975
图(峰值(ms, 1000), type = "h")
下面我们重现了MSmap
函数从MSnbase
控件绘制原始数据的特定片mzR
我们刚刚描述过的函数。
##一组感兴趣的谱:MS1谱洗脱##之间30分钟和35分钟保留时间MS1 <- which(hd$msLevel == 1) rtsel <- hd$retentionTime[MS1] / 60 > 30 & hd$retentionTime[MS1] / 60 < 35 #地图M <- MSmap(ms, MS1 [rtsel], 521,523, .005, hd) plot(M, aspect = 1, allTicks = FALSE)
plot3D (M)
##与某些MS2光谱i <- ms1[which(rtsel)][1] j <- ms1[which(rtsel)][2] M2 <- MSmap(ms, i:j, 100, 1000, 1, hd) plot3D(M2)
的RforProteomics
包分发一个小的识别结果文件(请参阅TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01.mzid ?
的基础结构加载和解析mzID包中。
library("mzID") f <- dir(system。file("extdata", package = "RforProteomics"), pattern = "mzid", full.names=TRUE)
## [1] "TMT_Erwinia.mzid.gz"
- mzID(f)
##读取TMT_Erwinia.mzid.gz…完成了!
id
##一个mzID对象## ##使用的软件:MS-GF+(版本:Beta (v100r0072)) ## ## Rawfile: /home/ lgato /dev/00_github/ rforproteomics /sandbox/TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01。mzXML ## ##数据库:/home/ lgato /dev/00_github/ rforproteomics /sandbox/erwinia_carotovora。fasta ## ##扫描数量:5287 ## PSM的数量:5563
可以从中提取各种数据mzID
对象,使用一个访问器函数,例如数据库
,扫描
,肽
对象也可以转换为data.frame
使用平
函数。
的mzR
包还提供了对fasta解析的支持mzIdentML
具有openIDfile
函数。至于原始数据,底层的C/ c++代码来自proteowizard.
library("mzR") f <- dir(system。file("extdata", package = "RforProteomics"), pattern = "mzid", full.names=TRUE) id1 <- openIDfile(f) fid1 <- mzR::psms(id1) head(fid1)
# # 1 # # spectrumID chargeState排名passThreshold experimentalMassToCharge扫描= 5782 3 1真正1080.2325 # # 2扫描= 6037 3 1真正1002.2089 # # 3扫描= 5235 3 1真正1189.2836 # # 4扫描= 5397 3 1真正960.5365 # # 5扫描= 6075 = 5761 3 1真正1264.3409 # # 6扫描2 1真的1268.6429 # # calculatedMassToCharge序列modNum isDecoy # # 1 1080.2321 PVQIQAGEDSNVIGALGGAVLGGFLGNTIGGGSGR 0错误# # 2 1002.2115 TQVLDGLINANDIEVPVALIDGEIDVLR 0假# # 3 1189.2800 TKGLNVMQNLLTAHPDVQAVFAQNDEMALGALR 0假# # 4960.5365 SQILQQAGTSVLSQANQVPQTVLSLLR 0错误# # 5 1264.3419 PIIGDNPFVVVLPDVVLDESTADQTQENLALLISR 0假# # 6 1268.6501 WTSQSSLDLGEPLSLITESVFAR 0假# #后开始之前结束DatabaseAccess DBseqLength DatabaseSeq # # 1 50 84 ECA1932 155 # # 2 R K 288 315 ECA1147 434 # # 3 R 192 224 ECA0013 295 # # 4 - 264 290 ECA1731 290 # # 5 F R 119 153 ECA1443 298 # # 6 Y K 264 286 ECA1444 468 # # DatabaseDescription scan.number.s。## 1 ECA1932外膜脂蛋白5782 ## 2 ECA1147触发因子6037 ## 3 ECA0013核糖结合质周蛋白5235 ## 4 ECA1731鞭毛蛋白5397 ## 5 ECA1443 UTP—葡萄糖-1-磷酸脲基转移酶6075 ## 6 ECA1444 6-磷酸葡萄糖酸脱氢酶,脱羧5761 ##接受num ## 1 5782 ## 2 6037 ## 3 5235 ## 4 5397 ## 5 6075 ## 6 5761
虽然搜索通常使用独立于R的第三方软件执行,或者可以使用a从R开始系统
电话,rTANDEM包允许使用X!串联引擎。的shinyTANDEM提供一个实验性的交互式界面来探索搜索结果。
rTANDEM library("rTANDEM")
类似地,MSGFplus包允许使用MSGF+引擎执行搜索,如下所示。
我们搜索/tmp/RtmpM7a8cs/Rbuild68e538add17d/proteomics/vignettes/TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210。mzML文件和fasta文件PXD000001
使用MSGFplus
.
我们首先下载fasta文件:
Fas <- pxget(px, "erwinia_carotovora.fasta")
下载1个文件
basename (fas)
## [1] "erwinia_carotovora.fasta"
库("MSGFplus") msgfpar <- msgfpar(数据库= fas,仪器= 'HighRes', tda = TRUE,酶= '胰蛋白酶',协议= 'iTRAQ') idres <- runMSGF(msgfpar, mzf,内存=1000)
## '/usr/bin/java' -Xmx1000M -jar '/home/biocbuild/bb -3.9-bioc/R/library/MSGFplus/ MSGFplus/ MSGFplus .jar' -s '/tmp/RtmpM7a8cs/Rbuild68e538add17d/proteomics/vignettes/TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210。mzML' -o '/tmp/RtmpM7a8cs/Rbuild68e538add17d/proteomics/vignettes/TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210。mzid' -d '/tmp/RtmpM7a8cs/Rbuild68e538add17d/proteomics/vignettes/erwinia_carotovora。fasta' -tda 1 -inst 1 -e 1 -protocol 2 ## ## reading TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210.mzid…完成了!
印尼盾
##一个mzID对象## ##使用的软件:MS-GF+(版本:Beta (v100r0072)) ## ## Rawfile: /tmp/RtmpM7a8cs/Rbuild68e538add17d/proteomics/vignettes/TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210。mzML ## ##数据库:/tmp/RtmpM7a8cs/Rbuild68e538add17d/proteomics/vignettes/erwinia_carotovora。fasta ## ##扫描数量:5343 ## PSM的数量:5656
##标识文件(下面需要)basename(mzID::files(idres)$id)
## [1] "TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210.mzid"
(请注意runMSGF
调用上面的调用,我显式地将分配给java虚拟机的内存减少到3.5GB。一般情况下,不需要指定此参数,除非遇到关于最大堆大小).
图形界面执行搜索数据和探索结果也可用:
库(MSGFgui) MSGFgui ()
的MSnID包可用于MS/MS鉴定的搜索后过滤。首先要构造一个MSnID
对象的标识结果进行填充,这些标识结果可从data.frame
或从mzIdenML
文件。在这里,我们将使用包提供的示例标识数据。
Mzids <- system。file("extdata", "c_elegans.mzid.gz", package="MSnID") basename(mzids)
## [1] "c_elegans.mzid.gz"
首先加载包,初始化MSnID
对象,并从我们的mzid
文件(当然可以有更多)。
library("MSnID") MSnID <- MSnID(".")
注意,肽-谱匹配结果中预期/建议的列为:-----------------------------------------------接入计算masstocharge chargeState实验masstocharge isDecoy peptide spectrumFile spectrumID
msnid <- read_mzIDs(msnid, mzids)
##从mzIdentMLs读取…
##阅读c_elegans.mzid.gz…完成了!
显示(msnid)
## MSnID对象谱文件:1 ## # pms: 12263, 36% FDR,肽:9489,44% FDR, 7414, 76% FDR
打印MSnID
对象返回一些基本信息,例如
然后,该软件包能够定义,优化和应用过滤,例如基于错过的裂解,识别分数,前体质量误差等,并评估PSM,肽和蛋白质FDR水平。为了正常工作,它期望能够访问以下数据
##[1]“接入”“calculatedMassToCharge”##[3]“chargeState”“experimentalMassToCharge”##[5]“isDecoy”“肽”##[7]“spectrumFile”“spectrumID”
它们确实存在于我们的数据中:
名(msnid)
## [1] "spectrumID" "扫描数(s)"# #[3]“acquisitionNum”“passThreshold”# #[5]“等级”“calculatedMassToCharge”# #[7]“experimentalMassToCharge”“chargeState”# #[9]“MS-GF: DeNovoScore”“MS-GF:安勤科技”# #[11]“MS-GF: PepQValue”“MS-GF: QValue”# #[13]“MS-GF: RawScore”“MS-GF: SpecEValue”# #[15]“AssumedDissociationMethod”“IsotopeError”# #[17]“isDecoy”“post”# #[19]“前”“结束”# #[21]“开始”“加入”# #[23]“长度”“描述”# #[25]“pepSeq”“修改”# #[27]“修改”“idFile”# #[29]“spectrumFile”"databaseFile" ##[31] "肽"
在这里,我们总结了几个步骤,并将读者重新引导到软件包的小插图中了解更多细节:
清除多肽末端的不规则解理和多肽序列中缺失的解理位点。下面两个函数调用创建newnumMisCleavages
而且numIrrCleabages
中的列MSnID
对象
msnid <- assess_termini(msnid, validCleavagePattern="[KR]\\.[^P]") msnid <- assess_missed_cleavages(msnid, missedCleavagePattern="[KR](?=[^P$])")
现在,我们可以用apply_filter
函数有效地应用筛选器。传递给函数的字符串表示将被求值的表达式,这只保留具有0个不规则乳沟和2个或更少缺失乳沟的psm。
msnid <- apply_filter(msnid, "numIrregCleavages == 0") msnid <- apply_filter(msnid, "numMissCleavages <= 2") show(msnid)
## MSnID对象谱文件:1 ## # pms: 7838, 17% FDR,肽:5598,23% FDR,接入:3759,53% FDR
使用“calculatedMassToCharge”
而且“experimentalMassToCharge”
,mass_measurement_error
函数计算父离子质量测量误差,单位为百万分之一。
总结(mass_measurement_error (msnid))
最小第一曲,中位数,平均第三曲,最大值。## -2184.0640 -0.6992 0.0000 17.6146 0.7512 2012.5178
然后我们过滤任何不符合+/- 20 ppm公差的匹配
Msnid <- apply_filter(Msnid, "abs(mass_measurement_error(Msnid)) < 20") summary(mass_measurement_error(Msnid))
最小第一曲,中位数,平均第三曲,最大值。## -19.7797 -0.5866 0.0000 -0.2970 0.5713 19.6758
识别数据的过滤将依赖于
msnid$msmsScore <- log10(msnid$ ' MS-GF:SpecEValue ')
msnid$absParentMassErrorPPM <- abs(mass_measurement_error(msnid))
MS2装配工由特殊人员处理MSnIDFilter
类对象,其中各个筛选器由名称(在名(msnid)
)和比较运算符(>,<,=,…),定义在给定阈值和阈值本身的情况下,我们是否应该保留较高或较低的命中值。
filtObj <- MSnIDFilter(msnid) filtObj$absParentMassErrorPPM <- list(compare ="<", threshold=10.0) filtObj$msmsScore <- list(compare =">", threshold=10.0) show(filtObj)
## MSnIDFilter对象## (absParentMassErrorPPM < 10) & (msmsScore > 10)
然后,我们可以对标识数据对象上的过滤器进行评估,它将返回当前过滤条件的错误发现率和保留标识的数量。
evaluate_filter (msnid filtObj)
## PSM 0 ## #肽0 2455 ##接入0 1009
如上所示,可以自动设置过滤值以满足特定的错误发现率,而不是手动设置过滤值。
filtObj。grid <- optimize_filter(filtObj, msnid, fdr.max=0.01, method=" grid ", level="peptide", n.iter=500) show(filtObj.grid)
## MSnIDFilter对象## (absParentMassErrorPPM < 3) & (msmsScore > 7.4)
evaluate_filter (msnid filtObj.grid)
# #罗斯福n PSM 0.004097561 # # 5146 # #肽0.006447651 3278 0.021996616加入# # 1208
属性最终可以应用筛选器(而不仅仅是求值)apply_filter
函数。
msnid <- apply_filter(msnid, filtObj.grid) show(msnid)
## MSnID对象谱文件:1 ## # pms: 5146个,0.41% FDR肽:3278个,0.64% FDR, 1208个,2.2% FDR
最后,去除与诱饵蛋白和污染蛋白序列匹配的鉴定
msnid <- apply_filter(msnid, "isDecoy == FALSE") msnid <- apply_filter(msnid, "!grepl('污染物',附加)")show(msnid)
## MSnID对象谱文件:1 ## # pms: 5117,在0 % FDR ##肽:3251,在0 % FDR ## #接入:1179,在0 % FDR
过滤后的识别数据可以导出到data.frame
或者献给一个MSnSet
定量质谱数据的数据结构,如下所述,并使用适当的统计检验进一步处理和分析。
上面的部分介绍了原始结果和识别结果的低级接口。的MSnbase类提供原始数据的抽象MSnExp
类和容器用于量化数据MSnSet
类。两个商店
光谱
(或[
,[[
运营商)或exprs
;data.frame
与pData
;data.frame
与fData
.另一个有用的槽是processingData
,以processingData(。)
,它记录了对象自创建以来所经历的所有处理(参见下面的示例)。
的readMSData
将解析原始数据,提取MS2光谱(默认),并构建一个类的MS实验对象MSnExp
.
(请注意readMSData
支持MS1数据,这是目前不方便,因为所有的数据都读入内存。)
library("MSnbase") rawFile <- dir(system. base)file(package = "MSnbase", dir = "extdata"), full.name = TRUE, pattern = "mzXML$")
## [1] "dummyiTRAQ.mzXML"
msexp <- readMSData(rawFile, verbose = FALSE, centroided = FALSE
## MSn实验数据(“MSnExp”)##对象内存大小:0.18 Mb ## - - -光谱数据- - - ## MS级别(s): 2 ##光谱数量:5 ## MSn保留时间:25:1 - 25:2分钟## - - -处理信息- - - ##数据加载:2019年5月6日星期一12:12:02 ## MSnbase版本:2.10.0 ## - - -元数据- - - ##表型数据## rowNames: dummyiTRAQ。mzXML ## varLabels: sampleNames ## varMetadata: labelDescription ##加载从:## dummyiTRAQ。mzXML ## protocolData: none ## featureData ## featurename: F1。S1 F1。S2……F1。S5 (5 total) ## fvarLabels: spectrum ## fvarMetadata: labelDescription ##实验数据:使用'实验数据(对象)'
MS2光谱可以提取为一个列表Spectrum2
对象具有光谱
访问器或作为原始的子集MSnExp
数据与[
操作符。单独的光谱可以访问[[
.
长度(msexp)
## [1]
msexp [1:2]
# # MSn实验数据(“MSnExp”)# #对象在内存大小:0.07 Mb ## - - - 光谱数据 - - - ## 女士水平(s): 2 # #光谱数量:2 # # MSn保留时间:25:1 - 25:2分钟 ## - - - 处理信息 - - - ## 数据加载:5月6日星期一12:12:02 2019 # #数据[数字]子集2光谱:5月6日星期一12:12:03 2019 # # MSnbase版本:2.10.0 ## - - - 元数据 - - - ## phenoData # # rowNames: dummyiTRAQ。mzXML ## varLabels: sampleNames ## varMetadata: labelDescription ##加载从:## dummyiTRAQ。mzXML ## protocolData: none ## featureData ## featurename: F1。S1 F1。S2 ## fvarLabels: spectrum ## fvarMetadata: labelDescription ##实验数据:使用'实验数据(对象)'
msexp [[2]]
##类对象“Spectrum2”##前体:546.9586 ##保留时间:25:2 ##电荷:3 ## MSn级别:2 ##峰值计数:1012 ##总离子计数:56758067
来自同一原始数据文件的识别结果可用于添加PSM匹配。
fData (msexp)
##频谱## F1S1 1 ## f1。S2 2 ## f1。S3 3 ## f1。S4 4 ## f1。S5 5
##查找mzIdentML文件的路径file(package = "MSnbase", dir = "extdata"), full.name = TRUE, pattern = "dummyiTRAQ.mzid")
## [1] "dummyiTRAQ.mzid"
msexp <- addIdentificationData(msexp, identFile) fData(msexp)
频谱采集。数字序列chargeState rank ## F1。S1 1 1 vesitarhgevlqlrpk 3 1 ## f1。S2 2 2 idgqwvthqwlkk 3 1 ## f1。S3 3 3 < na > na na ## f1。S4 4 4 < na > na na ## f1。S5 55LVILLFR 2 1 ## passThreshold experimentalMassToCharge calculatedMassToCharge modNum ## F1.S1 TRUE 645.3741 645.0375 0 ## F1.S2 TRUE 546.9586 546.9633 0 ## F1.S3 NA NA NA NA ## F1.S4 NA NA NA NA ## F1.S5 TRUE 437.8040 437.2997 0 ## isDecoy post pre start end DatabaseAccess DBseqLength DatabaseSeq ## F1.S1 FALSE A R 170 186 ECA0984 231 ## F1.S2 FALSE A K 50 62 ECA1028 275 ## F1.S3 NA NA NA NA ## F1.S4 NA NA NA NA ## F1.S5 FALSE L K 22 28 ECA0510 166 ## DatabaseDescription ## F1.S1 ECA0984 DNA mismatch repair protein ## F1.S2 ECA1028 2,3,4,5-tetrahydropyridine-2,6-dicarboxylate N-succinyltransferase ## F1.S3 ## F1.S4 ## F1.S5 ECA0510 putative capsular polysacharide biosynthesis transferase ## scan.number.s. idFile MS.GF.RawScore MS.GF.DeNovoScore ## F1.S1 1 dummyiTRAQ.mzid -39 77 ## F1.S2 2 dummyiTRAQ.mzid -30 39 ## F1.S3 NA NA NA ## F1.S4 NA NA NA ## F1.S5 5 dummyiTRAQ.mzid -42 5 ## MS.GF.SpecEValue MS.GF.EValue modName modMass modLocation ## F1.S1 5.527468e-05 79.36958 NA NA ## F1.S2 9.399048e-06 13.46615 NA NA ## F1.S3 NA NA NA NA ## F1.S4 NA NA NA NA ## F1.S5 2.577830e-04 366.38422 NA NA ## subOriginalResidue subReplacementResidue subLocation nprot npep.prot ## F1.S1 NA 1 1 ## F1.S2 NA 1 1 ## F1.S3 NA NA NA ## F1.S4 NA NA NA ## F1.S5 NA 1 1 ## npsm.prot npsm.pep ## F1.S1 1 1 ## F1.S2 1 1 ## F1.S3 NA NA ## F1.S4 NA NA ## F1.S5 1 1
的readMSData
而且addIdentificationData
利用mzR
而且mzID
包来访问原始数据和标识数据。
光谱和(部分)实验可以提取和绘制。
msexp [[1]]
##类对象“Spectrum2”##前体:645.3741 ##保留时间:25:1 ##电荷:3 ## MSn级别:2 ##峰值计数:2921 ##总离子计数:668170086
情节(msexp[[1]],全= TRUE)
msexp [1:3]
# # MSn实验数据(“MSnExp”)# #对象在内存大小:0.11 Mb ## - - - 光谱数据 - - - ## 女士水平(s): 2 # #光谱数量:3 # # MSn保留时间:25:1 - 25:2分钟 ## - - - 处理信息 - - - ## 数据加载:5月6日星期一12:12:02 2019 # #数据(数值)子集3光谱:我2019年5月6日12:12:04 # # MSnbase版本:2.10.0 ## - - - 元数据 - - - ## phenoData # # rowNames: dummyiTRAQ。mzXML ## varLabels: sampleNames ## varMetadata: labelDescription ##加载从:## dummyiTRAQ。mzXML ## protocolData: none ## featureData ## featurename: F1。S1 F1。S2 F1。S3 ## fvarLabels:频谱采集。数……npsm。pep (34 total) ## fvarMetadata: labelDescription ##实验数据:使用'实验数据(对象)'
情节(msexp[1:3],全= TRUE)
有广泛的蛋白质组学定量技术,可大致分为标记和无标记,这取决于特征是否在MS采集之前标记,以及推断定量的MS水平,即MS1或MS2。
Label-free | 贴上标签 | |
---|---|---|
MS1 | XIC | SILAC 15 n |
一份 | 计数 | iTRAQ, TMT |
在原始数据定量方面,主要致力于ms2级定量。然而,在代谢组学数据处理的框架中,无标签XIC定量已被解决xcms基础设施。
一个MSnExp
转换为MSnSet
由定量
方法。下面,我们使用iTRAQ 4-plex等压标记策略(由iTRAQ4
参数;其他标签可用)和trapezoidation
计算等压报告峰下面积的方法。
plot(msexp[[1]], full=TRUE, reporters = iTRAQ4)
msset <- quantify(msexp, method = "trap", reports = iTRAQ4, verbose=FALSE) exprs(msset)
iTRAQ4.114 iTRAQ4.115 iTRAQ4.116 iTRAQ4.117S1 4483.320 4873.996 6743.441 4601.378 ## f1。S2 1918.082 1418.040 1117.601 1581.954 ## f1。S3 15210.979 15296.256 15592.760 16550.502 ## f1。S4 4133.103 5069.983 4724.845 4694.801 ## f1。S5 11947.881 13061.875 12809.491 12911.479
processingData (msset)
##数据加载:2019年5月6日星期一12:12:02 ## iTRAQ4梯形量化:2019年5月6日星期一12:12:08 ## MSnbase版本:2.10.0
其他可用的MS2定量方法量化
包括(归一化)光谱指数如果
以及(归一化)光谱丰度因子SAF
或者简单的计数方法。
exprs(si <- quantify(msexp, method = "SIn"))
# # dummyiTRAQ。mzXML## ECA0510 0.0006553518 ## ECA0984 0.0035384487 ## ECA1028 0.0002684726
exprs(saf <- quantify(msexp, method = "NSAF"))
# # dummyiTRAQ。mzXML## ECA0510 0.4306167 ## ECA0984 0.3094475 ## ECA1028 0.2599359
请注意,未分配任何肽(NA
)或匹配非唯一肽(NPSM > 1
)在计数过程中被丢弃。
另请参阅的等压线包支持从集中定量mgf
峰值列表或它自己的标签分开的文件,可以从Mascot和Phenyx供应商文件生成。
常设调查小组委员会mzTab
文件格式旨在为更广泛的社区提供一种更简单(比XML格式)和更易于访问的文件格式。它由键值元数据部分和肽/蛋白质/小分子表格部分组成。
请注意,下面我们指定了版本0.9(生成警告的版本)以适应该文件。对于最近的文件,版本
参数将被忽略以使用最近的导入器。
mztf <- pxget(px, "F063721.dat-mztab.txt")
下载1个文件
(mztf <- readMzTabData(mztf, what = "PEP", version = "0.9"))
##警告:0.9版本已弃用。请看?readMzTabData'和'?MzTab' ##详细信息。
## MSnSet (storageMode: lockedEnvironment) ## assayData: 1528个特征,6个样本##元素名称:exprs ##协议数据:none ##表型数据## sampleNames: sub[1] sub[2]…sub[6] (6 total) ## varLabels:丰度## varMetadata: labelDescription ## featureData ## featurename: 1 2…1528 (1528 total) ## fvarLabels:序列添加…uri (14 total) ## fvarMetadata: labelDescription ##实验者数据:使用'实验者数据(对象)' ##注释:## - - -处理信息- - - ## mzTab读取:Mon May 6 12:12:16 2019 ## MSnbase版本:2.10.0
也可以将任意电子表格导入为MSnSet
对象转换为RreadMSnSet2
函数。该函数的两个主要参数是(1)基于文本的电子表格和(2)标识量化数据的索引的列名。方法可以查询后者getEcols
函数。
CSV <- dir(system。file ("extdata", package = "pRolocdata"), full.names = TRUE, pattern = "pr800866n_si_004-rep1.csv") getEcols(csv, split = ",")
# #[1]“\”蛋白质ID \“\”FBgn \ " " # #[3] \“\”果蝇象征”没有“\”。肽id \"" ##[5] "\"吉祥物得分"" "" \""不。肽量化\ " " # #[7]“\”面积114 \“\”面积115 \ " " # #[9]“\”面积116 \“\”面积117 \ " " # #[11]“\”PLS-DA分类\“\”肽序列\ " " # #[13]“\”前体离子质量\“\”前体离子电荷\ " " # # [15]pd“\”。2013 \“\”pd.markers \”“
ecols <- 7:10 res <- readMSnSet2(csv, ecols) head(exprs(res))
# #区。114area.115 area.116 area.117 ## 1 0.379000 0.281000 0.225000 0.114000 ## 2 0.420000 0.209667 0.206111 0.163889 ## 3 0.187333 0.167333 0.169667 0.476000 ## 4 0.247500 0.253000 0.320000 0.179000 ## 5 0.216000 0.183000 0.342000 0.259000 ## 6 0.072000 0.212333 0.573000 0.142667
头(fData (res))
# #蛋白质。ID FBgn Flybase。没有. .肽象征。IDs的吉祥物。得分## 1 CG10060 FBgn0001104 G-ialpha65A 3 179.86 ## 2 CG10067 FBgn0000044 Act57B 5 222.40 ## 3 CG10077 FBgn0035720 CG10077 5 219.65 ## 4 CG10079 FBgn0003731 Egfr 2 86.39 ## 5 CG10106 FBgn0029506 Tsp42Ee 1 52.10 ## 6 CG10130 FBgn0010638 Sec61beta 2 79.90 ## No..多肽。定量pls . da .分类肽。序列## 1下午1点## 2下午9点## 3 3 ## 4下午2点## 5 1 GGVFDTIQK ## 6 3 ER/高尔基体##前体。离子。质量前体。离子。电荷pd。2013 pd。标记## 1下午未知##下午2未知## 3下午未知## 4下午未知## 5 626.887 2表型1未知## 6 ER/高尔基ER
对于原始数据处理看MSnbase
的清洁
,光滑的
,pickPeaks
,removePeaks
而且trimMz
为MSnExp
以及光谱处理方法。
的MALDIquant而且xcms包还在它们自己的AD hoc数据实例类型上具有广泛的原始数据处理方法。
每种不同类型的定量数据都需要各自的预处理和标准化步骤。这两个等压线
而且MSnbase
允许校正等压标签杂质,使定量数据归一化。
data(itraqdata) qnt <- quantify(itraqdata, method = "trap", reporters = iTRAQ4, verbose = FALSE)杂质<- matrix(c(0.929,0.059,0.002,0.000, 0.020,0.923,0.056,0.001, 0.000,0.030,0.924,0.045, 0.000,0.001,0.040,0.923), nrow=4, byrow = TRUE) ##或,使用makeicitesmatrix() ##杂质<- makeicitesmatrix (4) qnt。crct <- purityCorrect(qnt,杂质)processingData(qnt.crct)
##数据加载:2011年5月11日星期三18:54:39更新从版本0.3.0到0.3.1[2016年7月8日星期五20:23:25]## iTRAQ4梯形量化:2019年5月6日星期一12:12:17 ##纯度修正:2019年5月6日星期一12:12:18 ## MSnbase版本:1.1.22
可以应用各种归一化方法MSnSet
实例使用正常化
方法:方差稳定(vsn
),分位数(分位数
)、中位数或平均值居中(center.media
或center.mean
),…
qnt.crct.nrm <- normalize (qnt. crct.nrm;crct,“分位数”)
的combineFeatures
方法将光谱/多肽定量值结合到蛋白质数据中。类定义了分组groupBy
参数,该参数通常取自特征元数据(例如,蛋白质访问)。
##任意分组g <- factor(c(rep(1,25), rep(2,15), rep(3,15))) g
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
prt <- combineFeatures(qnt.crct。nrm, groupBy = g, fun = "sum")
##警告:参数“fun”已弃用。请用method代替
##您的数据包含缺失值。请阅读combineFeatures手册页中的相关章节##,了解##缺失值对数据聚合的影响。
processingData (prt)
##数据加载:2011年5月11日星期三18:54:39 ##从版本0.3.0更新到0.3.1[2016年7月8日星期五20:23:25]## iTRAQ4通过阶地化量化:2019年5月6日12:12:17 ##纯度修正:2019年5月6日12:12:18 ##规范化(分位数):2019年5月6日12:12:18 ##将55个特征合并为3使用sum: 2019年5月6日12:12:18 ## MSnbase版本:2.10.0
最后,蛋白质组学数据分析通常受到缺失值的阻碍。缺失数据归因是一项敏感的操作,其成功与否取决于缺失的程度和缺失的(非)随机性。
下面,缺失值被随机分配给我们的测试数据,并在热图上可视化。
set.seed(1) qnt0 <- qntexprs (qnt0)[sample(prod(dim(qnt0)), 10)] <- NA table(is.na(qnt0))
11 . ## ##假的真## 209
图像(qnt0)
中缺失的价值MSnSet
实例可以过滤出来并使用filterNA
而且嫁祸于
功能。
qnt00 <- filterNA(qnt0) dim(qnt00)
## [1] 44 4
任何(is.na (qnt00))
## [1] false
##使用KNN imputation qnt impute缺失值。Imp <- impute(qnt0, method = "knn") dim(qnt.imp)
## [1] 55 4
任何(is.na (qnt.imp))
## [1] false
有多种方法可以执行数据输入,如?嫁祸于
.
R一般和Bioconductor特别适用于数据的统计分析。有几个包提供了专门的蛋白质组学数据资源:
的MLInterfaces软件包为广泛的机器学习算法提供了统一的接口。最初开发用于微阵列和ExpressionSet
情况下,pRoloc包使这些算法的应用MSnSet
数据。
下面的示例使用然而,
以5个最近的邻居为例,将未知亚细胞定位的蛋白质分类为9种可能的细胞器之一。
library("MLInterfaces") library("pRoloc") library("pRolocdata") data(dunkley2006) traininds <- which(fData(dunkley2006)$markers != "unknown") ans <- MLearn(markers ~ ., data = t(dunkley2006), knnI(k = 5), traininds) ans
# # # # MLInterfaces分类输出容器调用是:# # MLearn(公式=标记~,data = t (dunkley2006) .method = knnI (k = 5), # # trainInd = traininds) # #为测试集预测结果分布:# # # #呃腔膜ER高尔基线粒体点# # 89 140 67 51 # #质体核糖体TGN液泡# # 29日31日6 10 # #的总结成绩测试集(使用testScores()方法):# #分钟。1日瞿瞿。中值的意思是3日,马克斯。## 0.4000 1.0000 1.0000 0.9332 1.0000 1.0000
kcl <- MLearn(~ ., data = dunkley2006, kmeansI, centers = 12) kcl
## clusteringOutput: partition table ## ## 12 34 5 6 7 8 9 10 11 12 ## 30 48 101 44 50 35 24 80 34 87 52 104 ##创建该对象的调用是:## MLearn(公式= ~. ., data = dunkley2006, .method = kmeansI, centers = 12)
情节(氯化钾,exprs (dunkley2006))
分类和聚类算法的范围也很广,如中所述MLearn ?
文档页面。的pRoloc
包还使用MSnSet
实例作为输入,虽然考虑到空间/细胞器蛋白质组学数据的分析,但适用于许多用例。
所有的生物导体注释基础设施,例如biomaRt,GO.db,有机体特定注释,..都与蛋白质组学数据的分析直接相关。共有227个本体论,包括一些以蛋白质组学为中心的注释,如PSI质谱本体论、分子相互作用(PSI MI 2.5)或蛋白质修饰的方式
library("rols") res <- OlsSearch(q = "ESI", ontology = "MS", exact = TRUE) res
类“OlsSearch”的##对象:##本体:ms# #查询:ESI ##请求:20(从1中)##响应(s): 0
有一个精确匹配(默认是检索20个结果),可以检索并改正为条款
或data.frame
对象与
res <- olsSearch(res) as(res, "Terms")
来自MS本体的1个条目的类“Terms”对象
(res,“data.frame”)
# # 1 # # id女士:类:http://purl.obolibrary.org/obo/MS_1000073 # # iri short_form obo_id # # 1 http://purl.obolibrary.org/obo/MS_1000073 MS_1000073女士:1000073 # # # #标签1电喷雾电离# # 1 # #描述过程中,气相中的电离物种产生从一个analyte-containing解决方案通过高度带电细水滴,通过喷洒narrow-bore针尖端的解决方案在大气压力高电场的存在。当使用加压气体来帮助形成稳定的喷雾时,术语气动辅助电喷雾电离被使用。不建议使用离子喷雾。##本体类型is_defining_ontology
中描述了其他相关的包RforProteomics小插曲。
## R版本3.6.0(2019-04-26)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 18.04.2 LTS下## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.9-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.9-bioc/R/lib/libRlapack。所以## ##附加的基本包:## [1]stats4并行统计图形grDevices utils数据集##[8]方法基础## ##其他附加包:## [1] nloptr_1.2.1 RforProteomics_1.21.0 BiocManager_1.30.4 ## [7] rols_2.12.0 MSGFplus_1.18.0 pRolocdata_1.21.0 ## [10] proloc_1 .18.0 BiocParallel_1.18.0 MLInterfaces_1.64.0 ## [13] cluster_2.0.9 annotate_1.62.0 XML_3.98-1.19 ## [19] MSnbase_2.10.0 ProtGenerics_1.16.0 S4Vectors_0.22.0 ## [25] Biobase_2.44.0 BiocGenerics_0.30.0 MSnID_1.18.0 ## [25] mzID_1.22.0 mzR_2.18.0 Rcpp_1.0.1 ## [28]BiocStyle_2.12.0 ## ##通过命名空间加载(并且没有附加):## [1] splines_1 .8.4 igraph_1.2.4.1 lazyeval_0.2.2 ## [4] splines_3.6.0 ggplot2_3.1.1 digest_0.6.18 foreach_1.4.4 ## [10] htmltools_0.3.6 viridis_0.5.1 gdata_2.18.0 ## [13] magrittr_1. 1.5 memoise_1.1.0 doParallel_1.0.14 ## [16] mixtools_1.1.0 sfsmisc_1.1-3 limma_3.40.0 ## [19] recipes_0.1.5 gower_0.2.0 rda_1.0.2-2.1 ## [22] R.utils_2.8.0 lpSolve_5.6.13 prettyunits_1.0.2 ## [25] colorspace_1.4-1 blob_1.1.1 xfun_0.6 ## [28] dplyr_0.8.0.1 jsonlite_1.6 crayon_1.3.4 ## #[40] ipred_0.9-9 zlibbioc_1.30.0 R.cache_0.13.0 ## [43] kernlab_0.9-27 prabclus_2.2-7 DEoptimR_1.0-8 ## [46] scales_1.0.0 vsn_3.52.0 mvtnorm_1. 1.0-10 ## [49] DBI_1.0.0 viridisLite_0.3.0 xtable_1.8-4 ## [55] mclust_5.4.3 preprocessCore_1.46.0 lava_1.6.5 ## [58] prodlim_2018.04.18 sampling_2.8htmlwidgets_1. 1.3 ## [61] httr_1.4.0 threejs_0.3.1 FNN_1.1.3 ## [64] RColorBrewer_1.1-2 fpc_2.1-11.2 modeltools_0.2-22 ## [67] pkgconfig_2.0.2 r.d methodss3_1 .7.1 flexmix_2.3-15 ## [70] nnet_7.3-12 caret_6.0-84 labeling_0.3 ## [73] tidyselect_0.2.5 rlang_0.3.4 reshape2_1.4.3 ## [76] later_0.8.0 biocviews_1.2.0 munsell_0.5.0 ## [79] mlbench_2.1-1 tools_3.6.0 LaplacesDemon_16.1.1 ## [82] generics_0.0.2 RSQLite_2.1.1 pls_2.7-1 ## [85] evaluate_0.13 string_1 .4.0 yaml_2.2.0 ## [88] ModelMetrics_1.2.2[91] randomForest_4.6-14 purrr_0.3.2 dendextend_1.10.0 ## [94] ncdf4_1.16.1 RBGL_1.60.0 nlme_1 .1-139 ## [97] whisker_0.3 .2.0 biomaRt_2.40.0 compiler_3.6.0 ## [103] curl_3.3 e1071_1.7-1 affyio_1.55 4.0 ## [106] tibble_2.1.1 stringi_1.4.3 highr_0.8 ## [109] lattice_0.20-38 trimcluster_0.1-2.1 Matrix_1.2-17 ## [115] MALDIquant_1.19.2 data.table_1.12.2 bitops_1.0-6 ## [118] httpuv_1.5.1R6_2.4.0 pcaMethods_1.76.0 ## [121] affy_1.62.0 hwriter_1.3.2 bookdown_0.9 ## [124] promises_1.0.1 gridExtra_2.3 codetools_0.2-16 ## [127] MASS_7.3-51.4 gtools_3.8.1 assertthat_0.2.1 ## [130] withr_2.1.2 diptest_0.75-7 hms_0.4.2 ## [133] timeDate_3043.102 grid_3.6.0 rpart_4.1-15 ## [136] coda_0.19-2 class_7.3-15 rmarkdown_1.12 ## [139] segmented_0.5-3.0 lubridate_1.7.4 shiny_1.3.2 ## [142] base64enc_0.1-3