Bioconductor的质谱蛋白组学数据分析

这篇跟之前的一篇博文Bioconductor的DNA甲基化芯片分析流程一样,主要简单的记录下如何基于bioconductor的R包对蛋白组质谱数据进行分析。在看到这篇biocondutor官网文档Mass spectrometry and proteomics data analysis之前,我一直以为质谱数据的分析过程就是用一些商业化软件或者开源软件将谱图转化为肽段/蛋白的表达谱,由于蛋白组应用未如NGS数据那般热门,所以就未去搜索过是否能用R包来对质谱数据进行一定程度的分析。还好biocondutor将蛋白组质谱数据分析相关的R包做了总结,如上述那篇文章,我也正好来学习下

安装

首先是这篇教程相关R包的安装,以常规的bioconductor包安装方式即可,PS.记得换源(如中科大),不然会比较慢,然后加载

library("mzR")
library("mzID")
library("MSnID")
library("MSnbase")
library("rpx")
library("MLInterfaces")
library("pRoloc")
library("pRolocdata")
library("MSGFplus")
library("rols")
library("hpar")

如果遇到报错:/bin/bash: nc-config: 未找到命令,则:

sudo apt-get install netcdf-bin

如果继续报错:rnetCDF.h:1:20: fatal error: netcdf.h: 没有那个文件或目录,则:

sudo apt-get install libnetcdf-dev
sudo apt-get install libudunits2-dev
sudo apt-get install udunits-bin

在Bioconudtor3.5版本下,已经有94个蛋白组相关R包,64个质谱相关R包以及17个质谱实验数据相关R包,虽然跟NGS相比还是比较少的,但是也蛮可观了。现在Biocondutor已经3.6版本了,可能也有新的R包收录了

蛋白组公共数据库

对于NGS以及芯片数据,我们一般首选会去GEO/SRA/TCGA等数据库下载公共数据库。而对于蛋白组数据,我们可以选择ProteomeXchange数据库,一些研究论文的原始数据会上传到这个PX上,可供下载研究。因此我们除了可以去其官网http://proteomexchange.org/下载公共数据,还可以通过rpx包进行下载,只需要知道PX号即可,如

px <- PXDataset("PXD000001")
pxfiles(px)
# [1] "F063721.dat"                                                         
# [2] "F063721.dat-mztab.txt"                                               
# [3] "PRIDE_Exp_Complete_Ac_22134.xml.gz"                                  
# [4] "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"

如果想看看最新ProteomeXchange发布的数据有哪些,可以用pxannounced()函数

处理MS数据

我们可以从ProteomeXchange选择下载mzXL格式的MS原始数据,用pxget函数

fn <- "TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01-20141210.mzML"
mzf <- pxget(px, fn)

然后用mzR包对raw MS data进行处理,PS.mzR包不仅能读入mzML格式,还可以处理mzXML,netCDF以及mzData等数据,常用的函数有:读入数据的openMSfile,提取数据矩阵的header以及提取峰图谱的peaks

ms <- openMSfile(mzf)
hd <- header(ms)
head(peaks(ms, 1000))
plot(peaks(ms, 1000), type = "h")

如果对于查库后的数据(也就是identification data),可以用mzID包来读取数据并处理,并且mzR包也可以

##加载临时数据(identification data)
f <- dir(system.file("extdata", package = "RforProteomics"),
     pattern = "mzid", full.names=TRUE)
basename(f)
## [1] "TMT_Erwinia.mzid.gz"
##mzID包
id <- mzID(f)
id
##mzR包
id1 <- openIDfile(f)
fid1 <- mzR::psms(id1)
head(fid1)

至于如何查库,一般会用一些专门用于查库的软件,如:PD,Maxquant等。但现在一些开源软件也整合在一些R包中了,如:X!Tandem的rTANDEM包,MSGF+的MSGFplus包。对于后者这教程还简单介绍了其用法,具体可去Mass spectrometry and proteomics data analysis中查看

对于查库后的分析,则可以使用MSnID包,主要用于查库后的过滤等操作,输入格式可以是data.frame或者mzIdenML文件,一般这步会整合在查库的软件(一些比较完善的软件)中,由于没用过蛋白查库软件,所以在这也不细说了,大致上就是一些过滤的指标。。。

其实biocondutor包中有一个MSnbase包,将上述从raw MS data到identification results做了个整合,类似于表达谱芯片分析的软件。 MSnbase包将输入文件转化成MSnExp类,然后经过一定的数据处理后,变成MSnSet类用于下游定量分析;跟芯片分析类似,也有pDatafData等函数,可以说就是芯片分析的'翻版',从而使整个流程标准化,文档以iTRAQ数据作为例子进行了演示说明:从查库到定量

一些非常规格式的蛋白组质谱数据怎么处理呢,如mzTab格式文件,那么可以使用readMSnSet2函数

对于质谱raw数据的处理,MSnbase包有一整套流程,如:cleansmoothpickPeaksremovePeaks以及trimMz,都是在MSnExp类基础上进行的。此外MALDIquant包和xcms包也有各自预处理方法

除了预处理外,根据定量数据的不同形式,也有属于各自的标准化方法,还有补空的算法,当然最后还需要将肽段数据整合为蛋白水平的数据,这里就因数据而异了

统计分析

当定量数据转化为蛋白水平后,我就可以根据蛋白的表达谱数据进行差异蛋白筛选等下游分析,这里biocondutor给出3个R包可供选择

  • MSstats: A set of tools for statistical relative protein significance analysis in DDA, SRM and DIA experiments. Data stored in data.frame or MSnSet objects can be used as input
  • msmsTests: Statistical tests for label-free LC-MS/MS data by spectral counts, to discover differentially expressed proteins between two biological conditions. Three tests are available: Poisson GLM regression, quasi-likelihood GLM regression, and the negative binomial of the edgeR package. All can be readily applied on MSnSet instances produced, for example by MSnID
  • isobar also provides dedicated infrastructure for the statistical analysis of isobaric data

个人对msmsTests包比较感兴趣(但现在很少用spectral counts(MS2)来定量分析了,主流是MS1数据),刚好可以跟我最近的一篇博文Differential expression in proteomics比较验证下;至于isobar包则是专门用来处理iTRAQ数据的;MSstats包也不错,能处理DDA和DIA数据,这很实用

后续

Biocondutor还在下游分析中的Machine learning、Annotation等方面给出了建议,个人觉得这些可以类似于RNA-Seq数据来处理蛋白组质谱数据,反正都是基于表达谱,只是RNA-seq是转录本/基因水平的,而蛋白组质谱是蛋白水平的

最后还给了一些其他相关分析方法所对应的包,有需求时可以看看

  • Analysis of post translational modification with isobar
  • Analysis of label-free data from a Synapt G2 (including ion mobility) with synapter
  • Analysis of spatial proteomics data with pRoloc
  • Analysis of MALDI data with the MALDIquant package
  • Access to the Proteomics Standard Initiative Common QUery InterfaCe with the PSICQUICpackage

以上所有内容及代码均来自Biocondutor官方的文档Mass spectrometry and proteomics data analysis,我只以自己的角度做了个记录,如要了解具体内容,推荐参看其文档原文,更加详细及全面!

原文发布于微信公众号 - 生信技能树(biotrainee)

原文发表时间:2018-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PaddlePaddle

【AI核心技术】课程十九:神经图灵机—寻址

UAI与PaddlePaddle联合推出的【AI核心技术掌握】系列课程持续更新中!

691
来自专栏顶级程序员

2月份GitHub上最热门的Python项目:深度学习占半壁江山

源 / 开源最前线 整编 / 猿妹 本篇文章为大家盘点了1月份最热门的Python 项目,本月最热门的开源项目中,深度学习相关的开源项目占据了半壁江山,...

3059
来自专栏互联网杂技

2017 年,谷歌开源了这些超酷炫的项目

在开源和贡献开源方面,Google 一直是行业的典范。2017年,Google 在 GitHub 上大约有 900 名活跃用户,共推送约 1100 个顶级库。

932
来自专栏安全领域

在物联网中应用机器学习:使用 Android Things 与 TensorFlow

在本教程中,我们将探索如何使用 Android Things 和 TensorFlow 将机器学习应用到物联网中。

71816
来自专栏AI科技大本营的专栏

AI 技术讲座精选:数学不好,也可以学习人工智能(三)

【AI100 导读】学习人工智能到底要不要学好数学,这俨然已经成了一个争议话题了?之前 AI100 刊发了本系列的前两篇文章,也发表了作者子白的《放弃幻想,搞 ...

40517
来自专栏目标检测和深度学习

github最热门的Python项目:深度学习占半壁江山

本篇文章为大家盘点了1月份最热门的Python 项目,本月最热门的开源项目中,深度学习相关的开源项目占据了半壁江山,让我们一起来看下吧! 1 FastPhoto...

28110
来自专栏灯塔大数据

技术 | 人生苦短,请用Python——10大Python库汇总

前言 对于码农来说,主要关注2017年新推出了哪些开源库,还有就是新近有什么流行的既能解决问题又好用的利器。下面就来为2017年做个总结。 1、Pipenv 第...

3299
来自专栏人工智能头条

你们都用 Python 做人脸识别,我就偏要用 Go!

做人脸识别用 Python 比较多,但是今天碰上一个另类,他就跟别人不一样,就不用 Python 用 Go。其实不管是 P 还是 G,能认出脸来就是好样的。

692
来自专栏大数据智能实战

健康问答语料的爬虫(C#)

为了实现健康问答系统的构建,需要找一些语料,发现好大夫在线的数据挺好的,于是花了一个小时时间,写了个爬虫,能够爬取其页面上显示的40个疾病左右的问答语料。 采...

1996
来自专栏机器之心

资源 | NASA免费开放软件下载:从机器人系统到数据处理工具

选自NASA 机器之心编译 参与:微胖、吴攀 NASA 刚刚发布了 2017—2018 年软件目录,每个软件都可以在这里免费下载到(https://goo.g...

34617

扫码关注云+社区