Bioconductor通讯

发布的瓦莱丽Obenchain2015年4月

4月17日,上映Bioconductor3.1将标志着该软件的第24个版本。该项目于2001年开始,同年5月提交了第一个svn:

r3 rgentlem 2001-05-25 14:08:57 -0700(2001年5月25日星期五)r1(无作者)2001-05-25 08:28:31 -0700(2001年5月25日星期五)

在第一次正式发布的时候Bioconductor手稿2004年,该项目包括

“…80多个软件包,数百个元数据包和一些实验数据包……”

11年后(在超过100000个svn提交之后)Bioconductor托管超过990个软件,900个注释和230个实验数据包。

2004年论文中的另一段引文表明,幸运的是,并不是所有的事情都改变了,

“…团队动力也是Bioconductor成功的一个重要因素。共同工作的意愿,看到软件开发中的合作和协调为开发人员和用户带来实质性的利益,并鼓励其他人加入并为项目做出贡献,也是我们成功的主要因素. ...”2021欧洲杯体育投注开户

这一期着眼于蛋白质组学在Bioconductor使用web套接字来弥合工作空间数据和交互式可视化之间的差距。我们用包开发和管理系统管理任务中的用例重新访问Docker。我们也有一节关于最近添加到基础的新功能和值得注意的功能R而且Bioconductor

内容

Bioconductor中的蛋白质组学

蛋白质组学分析的多样性Bioconductor继续稳步增长,devel分支现在拥有68个基于蛋白质组学的软件包。许多人以软件包、基于网络的工作流程和课程提供的形式为这一领域做出了贡献。剑桥蛋白质组学中心计算蛋白质组学组的负责人劳伦特·加托(Laurent Gatto)是一个非常活跃的成员。在日常工作中,他负责开发强大的蛋白质组学技术,适用于各种各样的生物学问题。

劳伦特是许多书的作者Bioconductor包,包括新的ProtGenerics.在概念上与更一般的相似BiocGenerics包,ProtGenerics提供了一个中心位置,可以定义和重用特定于蛋白质组学的S4泛型。他制作了课程材料和工具,以帮助新人入门,包括详细的蛋白质组学的工作流在网站上又有两家刊物题为利用R和Bioconductor进行蛋白质组学分析而且使用R和Bioconductor可视化蛋白质组学数据.这些出版物都有配套的实验数据包,RforProteomics它说明了数据输入/输出,数据处理,质量控制,可视化和定量蛋白质组学分析在Bioconductor框架。自第一次发布以来,RforProteomics受益于其他开发人员的贡献。2021欧洲杯体育投注开户

RforProteomics数据包有4个小插图:

许多蛋白质组学包是值得一提的Bioconductor存储库。在这里,我们重点介绍几个在不断增长的基础设施中发挥了主要作用的公司。

mzR而且mzID读取和解析原始和识别MS数据。前者是流行的c++的R接口proteowizard工具包。

鉴别方法在rTANDEM而且MSGFplus(及其闪亮的接口MSGFgui)和定量方法,可在MSnbase而且等压线(等压标记和谱线计数方法),synapterxcms而且MALDIquant包(label-free)。提供统计建模和机器学习MSnbase等压线MSstats而且msmsTests

rpx包提供到ProteomeXchange基础设施,它协调基于ms的蛋白质组学数据的多个数据库。

pRoloc包包含空间蛋白质组学分析方法,例如,机器学习和分类方法,将蛋白质分配到细胞器。

相对较新的Pbase包包含蛋白质类,用于存储和操作感兴趣的蛋白质序列和范围。这个包有多个关于坐标映射的小插图。一种是在不同的基因组结构之间映射蛋白质,另一种是从蛋白质映射到基因组坐标。

Web Sockets

概述

随着我们生成大量测序数据的能力的增长,对有效可视化工具的需求也在增长。能够将大量信息总结为可消化的部分并快速识别独特特征或异常值的工具是任何分析管道中的重要步骤。在R在世界范围内,我们已经看到越来越多的人使用web套接字来提供工作空间中的数据和浏览器中的探索之间的交互式链接。

的分析能力R使其非常适合HTML5网页浏览器丰富的交互式图形。WebSocket协议支持浏览器和网站之间的更多交互,促进实时内容和实时图形的创建。

Web套接字通常被描述为“服务器和客户端通过单个TCP连接进行双向、全双工通信的标准”。这些特性相对于HTTP提供了几个优势:

对于那些感兴趣的人,这个博客提供了更深入的细节和REST基准测试。

应用程序闪亮的而且epivizr

闪亮的包由RStudio团队创建的web sockets在R.Shiny能够在一个应用程序中构建交互式web应用程序R会话。流行的应用程序是交互式绘图和地图,允许通过小部件进行实时操作。闪亮背后的主力是httpuv包,同样由RStudio撰写。httpuv提供了底层套接字和协议支持,用于处理HTTP和WebSocket请求R

httpuv基础结构也被epivizr包中。在此应用程序中,web套接字创建双向通信R环境与Epiviz可视化工具.对象中可用的R会话可以在Epiviz上显示为轨道或图。

BrowserViz

在新版本中采用了稍微不同的方法BrowserVizPaul Shannon设计的包装。此应用程序提供对浏览器和活动的R提示。

BrowserViz包包含BrowserViz类,其主要目的是提供必要的R, Javascript websocket和JSON基础架构进行通信。通过松散耦合R而浏览器,这两个环境是链接的,但最大限度地保持彼此的无知;只有简单的JSON消息来回传递,没有HTML, CSS或Javascript。其结果是访问web浏览器的交互式图形与活动的R会话。

相应的Javascript库BrowserViz.js也包含在这个包中。库和基类的组合为任何browserviz风格的应用程序提供了必要的基础结构。的BrowserVizDemo而且RCyjs包构建在BrowserViz类中可用的Bioconductor3.2版本。BrowserVizDemo这是一个使用流行的d3.js库交互式绘制和选择xy点的最小示例。功能更全面的RCyjs提供了对Cytoscape.js的全部功能的交互式访问,这是一个功能丰富的基于浏览器的网络可视化库。

更多有关BrowserViz类和应用程序可以在包小插图

基础设施

的变化AnnotationHub

这个季度马克和索纳利继续他们的工作AnnotationHub.添加了一些新的资源,显示方法和搜索导航进行了大量的重做。

新资源:

改进的显示方法和更灵活的数据检索使与18900+文件的交互更加简单。Sonali有一个新的AnnotationHub视频在那里,她为数据访问提供了提示和技巧的资源之旅。

下面的代码是用AnnotationHub1.99.75版本。show方法现在列出了用于前面子集的通用字段,例如提供者、物种和类R对象。

> library(AnnotationHub) > hub <- AnnotationHub() > hub AnnotationHub与18992记录# snapshotDate(): 2015-03-12 # $dataprovider: UCSC, Ensembl, BroadInstitute, NCBI, Haemcode, dbSNP, Inpar…# $物种:智人,小家鼠,牛牛,Pan troglodytes, Danio r…# $rdataclass: GRanges, FaFile, OrgDb, ChainFile, CollapsedVCF, in偏瘫8d…# additional mcols(): taxonomyid,基因组,描述,标签,sourceurl, # sourcetype #检索记录,例如,'object[["AH169"]]]'标题AH169 | meleagris_gallopvo . umd2.69 .cdna.all。fa AH170 | meleagris_gallopavo . umd2.69 .dna. topllevel。fa AH171 | meleagris_gallopavo . umd2 .69.dna_rm. topllevel。fa AH172 | meleagris_gallopavo . umd2 .69.dna_sm. topllevel。meleagris_gallopvo . umd2.69 .ncrna AH173 |。发... ...AH28575 | a500002_gr .csv AH28576 | a500005_gr .csv AH28577 | A500001_IgG.csv AH28578 | A500004_IgG.csv AH28579 | GSM730632_Runx1.csv

hub对象上的制表符补全列出了所有可用于子集设置的字段:

> hub$ hub$ah_id hub$dataprovider hub$taxonomyid hub$description hub$rdataclass hub$sourcetype hub$title hub$species hub$genome hub$tags hub$sourceurl

快速发现文件类型和提供程序:

>排序(表(中心sourcetype美元),减少= TRUE)床FASTA UCSC跟踪GTF NCBI / blast2GO 7855 3876 2208 1606 1145连锁CSV VCF大佬Inparanoid 1113 406 316 315 268 TwoBit BioPaxLevel2 RData BioPax掌握144 6 4 3 1 tar.gz邮政1 1 >排序(表(中心dataprovider美元),减少= TRUE) UCSC的运用8746 4590 BroadInstitute NCBI 3146 1145 Haemcode dbSNP 945 316 Inparanoid8 Pazar 268 91 NIH通路相互作用数据库EncodeDCC 9 5 RefNet ChEA 4 1 GEO NHLBI 1 1

考虑到中心中可用数据的数量和多样性,我们鼓励在创建自己的实验数据包之前使用这些文件作为示例数据。

例如,要从Ensembl获得可用的GRCh37 FASTA的概念:

> hub[hub$sourcetype=="FASTA" & hub$dataprovider=="Ensembl" & hub$genome=="GRCh37"]带42条记录的AnnotationHub # snapshotDate(): 2015-03-26 # $dataprovider: Ensembl # $species: Homo sapiens # $rdataclass: FaFile #其他mcols(): taxonomyid,基因组,描述,标签,sourceurl, # sourcetype #检索记录,例如,'object[["AH18924"]]'标题AH18924 | Homo_sapiens.GRCh37.73.cdna.all。fa AH18925 | homo_sapiens . grch37.73 .dna_rm. topllevel。fa AH18926 | homo_sapiens . grch37.73 .dna_sm. topllevel。fa AH18927 | homo_sapiens . grch37.73 .dna. topllevel。Homo_sapiens.GRCh37.73.ncrna. fa AH18928 | Homo_sapiens.GRCh37.73.ncrna。发... ...AH21181 | homo_sapiens . grch37.72 .dna_rm. topllevel。fa AH21182 | homo_sapiens . grch37 .72.dna_sm. topllevel。fa AH21183 | Homo_sapiens.GRCh37.72.dna.toplevel。Homo_sapiens.GRCh37.72.ncrna. fa AH21184 | Homo_sapiens.GRCh37.72.ncrna。hom_sapiens . grch37.72 .pep.all.fa AH21185 | Homo_sapiens.GRCh37.72.pep.all.fa

高级开发人员可能会2021欧洲杯体育投注开户对编写一个“食谱”来添加额外的在线资源感兴趣AnnotationHub.这个过程包括编写函数来首先解析文件元数据,然后创建R对象或这些元数据中的文件。详细的HOWTO步骤在AnnotationHubRecipes装饰图案

Rhtslib

内特最近完成了Rhtslib包,它包装htslib来自Samtools的C库。这个计划是为了Rhtslib来替换里面的Samtools代码RsamtoolsRhtslib包含直接来自Samtools的htslib的干净分支,包括所有单元测试。当新版本或bug修复可用时,这种方法简化了维护。干净的API还承诺使包的外包更直接Rsamtools以及其他想要访问本机例程的人。

htslib是用“以linux为中心”的方法开发的,让这个库跨平台(特别是Windows)构建是一个挑战。为了解决这个问题,内特选择了Gnulib, GNU可移植性库。简单地说,Gnulib是一个模块的集合,它打包了可移植性代码,以透明的方式支持posix遵从性;其目标是提供通用的基础设施,使GNU软件能够在各种操作系统上运行。模块在源代码级别被合并到项目中,而不是作为构建、安装和链接的库。

合并Gnulib包括(至少)以下步骤:

有关具体函数的更多信息,请参阅Rhtslib看到Samtools文档或者包中的api类型头文件,faidx.h, hfile.h, hts.h, sam.h, tbx.h和vcf.h。头文件位于Rhtslib/src/htslib/htslib,如果包已经安装,

图书馆(Rhtslib)系统。文件(包= " Rhtslib”,“包括”)

可再生的研究

课程材料网页有一些资源的链接,包括幻灯片,演示文稿和包。最近Dan开始为使用它们的课程添加一个“AMI”链接。的包、样例数据和确切版本R/Bioconductor使用。这是一种方便、便携的方法,可以确保重现性。人们可以想象使用AMI或Docker容器来捕获研究项目或出版物的状态,从而可以轻松地与同事共享。

使用Docker开发

Elena Grassi是都灵大学遗传、生物学和生物化学系生物医学科学和肿瘤学博士生。她的研究重点是转录和转录后调控,特别对转录因子和选择性多聚腺苷酸现象感兴趣。

她拥有计算机科学背景,参与开发计算管道和工具,并著有Bioconductor咆哮(优先使用APA网站)和MatrixRider(结合蛋白与序列相互作用的倾向)。Elena是第一个尝试Docker容器的人之一,她发现Docker容器对包开发和系统管理任务都很有用。我就她的经历问了几个问题,得到了一些有趣的答案。

是什么促使您在开发时尝试DockerMatrixRider?

去年我从一些朋友那里听说了docker,我很想尝试一下。在除夕夜假期期间,我决定开始使用它R/Bioconductor在我们的计算服务器上运行不同的版本,而不增加系统管理工作的负担。一开始,我只是好奇地摆弄摇椅,假期的懒惰缓解了我的想法,我停止了,开始做一些临时的工作RBioconductor集装箱。想象一下,当我在时事通讯中读到全新的Bioconductor码头容器时,我的快乐:它们已经为我准备好了:)。我决定使用它们来开发《MatrixRider》,只要我需要发行和开发的工作版本。我在不同的电脑上工作,使用Bioconductordevelop_sequencing容器将我从获取源代码、构建和安装所有所需包的过程中完全解放出来。除此之外,使用docker可以确保我正在开发的包对本地系统库没有任何依赖,而这些依赖在干净的安装中是不可用的。这是我的第一个包含C代码的包,很高兴能确定。

你用了哪个图像,基础,核心,排序,…?

主要从一个成熟的工作环境开始。我不得不安装一些其他包(TFBSTools和JASPAR2014),它完美地工作biocLite ()

在这些容器中开发有什么意想不到的优点/缺点吗?

不。我想我将继续使用devel容器来开发和维护包。

描述Docker如何用于管理多个R计算服务器上的版本。这是针对多个用户还是仅针对您自己?

现在我是唯一一个需要devel的人,所以版本管理是我自己做的。最终,我想把它设置在我们的服务器上,让它为多个用户工作,但将它与我们的“管道管理系统”集成需要一些工作。

在过去,我们有三个不同的R两个版本,一个来自我们发行版的包管理系统Debian,还有两个编译的临时版本。教新学生如何找到它们和相关的库路径是很困难的——我非常确定docker将在这些情况下提供巨大的帮助,还可以帮助跟踪哪些版本的包被用于执行某些分析。

新的和值得注意的

添加了若干功能R(3.2)和Bioconductor(3.1)本季度具有广泛应用的潜力。我认为它们值得一提。

项目统计

网站流量

以下是2015年第一季度(1月1日- 3月30日)与2014年第一季度的会话数和新用户数的比较。会议被新访客和回头客打断。新访问者对应新用户总数。

2015年第一季度网站流量对比2014年
届:总 24.03% (339,283对273,559)
会议:回访 21.42% (213,848 vs 176,128)
会议:新访客 28.74% (125,435对97,431)
新用户 28.74% (125,435对97,431)


使用谷歌分析

包下载和新提交

2015年1月、2月、3月软件包唯一IP下载量分别为31720、31956、38379。2014年同期,这一数字分别为29690、28993和34634。数字必须按月(vs sum)进行比较,因为有些ip在月份之间是相同的。有关的完整摘要,请参阅网站下载数据

2015年第一季度共增加了55个软件包,使devel的软件包数量达到991个(Bioconductor3.2)及936版本(Bioconductor3.1)。

即将来临的事件

看到活动页面所有课程和会议的列表。

确认

感谢Laurent Gatto, Elena Grassi和Paul Shannon对Proteomics, Docker和Web Sockets部分的贡献。还要感谢Bioconductor团队在西雅图进行项目更新和编辑审查。

向瓦莱丽发送评论或问题vobencha@fredhutch.org