Bioconductor通讯

发布的瓦莱丽Obenchain2015年7月

Bioconductor《通讯》每季检讨核心基建发展、社区项目及未来发展方向。我们涵盖了普遍感兴趣的主题以及对软件影响最大的主题。这个问题涵盖了包着陆页的“盾牌”,跟踪使用和可用性指标和新出炉的BioconductorGit / GitHub镜像。我们讨论了用于导航包存储库的改进工具,重新讨论了“有机体mdb”包作为管理多个注释的框架,Cole Trapnell分享了他对软件开发的想法单片眼镜包中。

内容

单细胞分析和“单片眼镜”包

Cole Trapnell是华盛顿大学基因组科学的助理教授。他获得了马里兰大学计算机科学博士学位,在那里他与加州大学伯克利分校的研究人员共同担任顾问。他在伯克利做了几年访问学生,在那里写了《TopHat》和《Cufflinks》,并与本·朗米德(Ben Langmead)合著了《Bowtie》。在哈佛大学干细胞和再生生物学系攻读博士后期间,他开始研究干细胞,并对单细胞分析产生了兴趣。这导致了单片眼镜算法最终单片眼镜Bioconductor包中。Cole将于今年在西雅图举行的2015年生物大会上发表演讲,并将详细介绍他的研究兴趣背后的生物学问题。在这次采访中,他分享了自己作为软件开发人员在过去项目中的观点,例如TopHat, Cufflinks,以及最近的“monocle”包。

问:是什么推动了从读映射和转录本组装工具到单细胞分析的转变?

我从事研究基因调控的技术开发已经有好几年了,通常当我建立一个新东西时,我会在细胞分化或其他细胞状态转变的模型系统上进行测试。不久之后,我发现自己对生物学的分化和重编程的兴趣就像我对算法或分析开发的兴趣一样。有很多很多关于分化的问题本质上是很难用批量分析来回答的。你需要能够观察单个细胞。单细胞基因组学真的才刚刚开始——这些实验还有很多悬而未决的问题和技术挑战。因此,尝试推动单细胞基因组学的技术极限对我来说具有双重吸引力。

问:在这一技术的发展背后存在什么科学问题单片眼镜算法?

戴维·卡恰雷利(Davide Cacchiarelli)和我曾经假设,一个正在分化的细胞会经历一个连续的基因调控变化过程,而不是经历一系列离散的中间阶段,这是经典的观点。我们发现,通过观察单个细胞的分化过程,我们可以看到细胞沿着从起始状态到最终状态的连续路径发展。Monocle找到了这条路径,将细胞放置在正确的位置,并告诉你当细胞沿着这条路径移动时,哪些基因发生了变化。我们还推测,如果一个细胞必须在两种不同的细胞命运之间做出选择,那么路径上就会有一个分支。这就是我们在数据中看到的,Monocle可以重建带有分支的分化轨迹。

问:在什么时候你决定创建“monocle”包,而不是使用个人脚本的集合?

在我们开始做实验的时候,基本上没有专门用于单细胞RNA-Seq或qPCR的工具。当时尚不清楚的是用于批量RNA-Seq的工具是否可以用于单细胞。我们发现批量分析工作流程的某些部分,如读取映射和单个细胞中表达的定量工作得很好。例如,我们使用TopHat和Cufflinks来完成这些部分,但其他小组使用RSEM,旗鱼等。然而,当我们谈到差异表达时,我们发现现有的差异表达工具,如Cuffdiff或DESeq,在单细胞数据上真的不能很好地工作。那里没有什么东西可以做更高级的分析,比如轨迹重建。所以我知道我必须编写一个新工具。

我试图让我编写的代码可用。出于几个原因,我倾向于把我的绘图代码留给自己,但几乎将其他所有代码都发布出来。我想如果我有问题,其他人可能也有同样的问题,所以为什么不为他们节省一些时间呢?其次,我知道我将要发布的东西将被一个忙碌的科学家使用,他可能是也可能不是计算工作的巫师,这迫使我更加努力地思考如何使代码健壮、直接和易于使用。它还迫使我更清楚地定义我试图解决的问题。最后,我强烈地感觉到,虽然我们都在论文中尽最大努力编写方法,但没有什么能取代在论文中看到用于执行分析的代码。公开它使论文更容易获得和透明,是科学上正确的事情。

问:如何R/Bioconductor框架适合你的研究吗?例如,TopHat, Cufflinks, CuffDiff等都不流行Bioconductor但是' cummmeRbund '和' monocle '是。

TopHat和Cufflinks都是以前写的R而且Bioconductor对测序数据分析有很好的支持。在当时,要让这些工具与其他Bioconductor软件包很好地配合并不是那么容易。此外,TopHat和Cufflinks都不是你想要以这种方式进行交互的工具R包。他们不需要api。您通常只需使用默认参数运行它们,获取输出,然后进入下一个阶段。最后,读映射和转录本组装在计算上非常非常昂贵,并且涉及大量内存和I/O负载。c++比R,具有对多核编程的强大支持,并让您精确控制如何管理内存。领结、TopHat和袖扣都利用了c++的性能优势。

“CummeRbund”和“monocle”都是高度交互的工具,都不需要做大量的CPU或内存密集型工作,所以R是更好的选择。我也想利用所有的努力工作Bioconductor表达式社区在ExpressionSet和相关对象中加入了一些东西,使人们尽可能熟悉和容易地进行单细胞分析。所以' monocle '尝试在任何可能的地方做事情Bioconductor”。

问:多年来,您开发了备受尊敬和广泛使用的软件。你能分享一些关于设计的经验教训吗:什么是有效的,你会做什么不同的事情?

我认为我做对的主要事情是在正确的时间出现在正确的地点。任何广泛使用的工具的成功很大程度上都源于它是第一个完成工作的工具。一旦人们发现了可以得到好的结果的东西,他们倾向于坚持下去,而不是花大量时间使他们的工作流程适应新工具。也就是说,我们这些参与过这些项目的人花了大量的时间来维护、记录和增强我们发布后的东西。这项工作在用户之间产生信任方面确实得到了回报。至于我可能会做的不同的事情,我认为我犯的最大的错误是发布了在核心算法方面没有最终确定的早期版本。有些时候,你根本无法获得足够的测试数据来真正了解一个算法想法的工作情况。为了获得用户的反馈,我尝试在关于工具的论文发布之前发布早期版本来解决这个问题。他们通常很乐意提供,所以我会根据他们的结果对代码进行更改,等等。问题是,这会在工具的生命周期中造成不同版本之间的不一致,而大多数人真的讨厌这一点。 Slapping a “beta” label on something doesn’t do much to communicate to users that a tool is still under active R&D. So while I think that was well meaning in the sense I was trying to produce as good of a tool as I could, it ultimately did more harm than good in terms of user experience. The bottom line is that nobody wants to see the sausage being made.

基础设施更新

“总结实验”类的发展计划

你们很多人都知道“实验总结”课程正在建设中。该类保存从排序实验中派生的数字和其他数据类型。该结构是矩形的,行和列上都有注释。历史上该类持有一个“GRanges”或“GRangesList”可访问为rowData ().基于请求添加对非基于范围的行数据(例如,DataFrame) Hervé的支持,Jim、Martin和我一直在重新设计,到目前为止的大部分工作都指向Hervé。

目标是在易于扩展的模块化设计中支持基于范围和非基于范围的行数据。来自bioc-devel邮件列表讨论的其他反馈也将被纳入。

这是一项正在进行的工作,需要几个开发周期才能完全完成。目前,我们已经创建了一个包含新类的新包summarizeexperiment。GenomicRanges包中的“summarizeexperiment”已弃用,从BioC 3.3开始将不再可用。

新的summarizeexperiment包中的新类的摘要:

BioconductorGit / GitHub镜像

Bioconductor项目是在Subversion (SVN)源代码控制系统中维护的,并且从项目的早期就开始了爱尔兰斯洛伐克预测。随着Git越来越受欢迎,我们尝试通过Git-SVN桥;Git中的提交被传播到SVN,反之亦然。这座桥非常受欢迎,承载了221个包,然而,有一些缺点。网桥不包含完整的提交历史,其他用户必须被授予访问存储库的权限,并且存在一些可靠性问题——网桥确实宕机了。

认识到Git/GitHub的优势和流行度,我们寻找一个更完整的解决方案。的决定是镜像完整的包存储库,因此创建Bioconductor Git镜像.这些是每个软件包的只读存储库,并与SVN存储库同步。这些镜像替换Git-SVN网桥,现在已弃用。使用桥的维护者应该迁移到Git镜像。请参阅网站的HOWTO部分迁移指令

感谢吉姆和丹为此所做的工作。见官方公告bioc-devel。

Nate和Jim提供了一些他们最喜欢的(也很有趣!)Git资源:

可再生的研究

包生命终止政策

Bioconductor旨在为整个社区的用户提供稳定和相关的软件。包的数量持续增长,截至2015年6月,存储库托管1024个软件,241个实验数据和883个注释包。定期构建和检查软件和实验数据包,确保功能按预期运行,并提供必要的依赖关系。在每次发布之前,西雅图团队都会联系构建或检查失败的包的维护者,以便新版本尽可能干净。

不可避免地,随着维护者的迁移,或者随着一种技术与另一种技术的交换,包会被放弃。无论这是维护者的主动决定还是无法找到维护者,我们都需要一种方法来标记这些退休包。在这些方面,我们最近采用了一套方案生命终止保险.这适用于所有不再通过构建或检查且没有活动维护者的软件、实验数据和注释包。在每个Bioconductor发布之前,都考虑将包的生命周期终止弃用。当包进入弃用阶段时,将在支持站点上发布公告,以提供包供采用。第一个成功采用的是汤姆卡罗尔的三角包。谢谢你汤姆!

包管理

在3个仓库中有超过2000个包,有效的包质量控制和管理工具是必不可少的。我们的目标是提供满足包审查过程中的标准标准的包,在受支持的平台上构建,随时可用(svn, biocLite()和现在的Git),并且易于发现(即,最适合这项工作的包)。

多年来,Marc和现在的Sonali已经建立了许多用于跟踪、质量控制和分类包裹的系统。通过他们自己的创新和社区反馈,他们创造了改善我们与这些存储库交互方式的工具。这些工作大部分是内部使用的,并不面向公众。本节重点介绍所有人都可以看到(希望有用)的最新添加内容。

' ReproducibleResearch ' biocViews术语

' biocViews '术语允许跨包存储库进行强大的特定主题搜索。这些术语会随着技术的变化和新的数据格式的出现而修订和更新。最新加入的术语是“可复制研究”。这是为包含可复制数据和来自出版物的结果的包保留的,目的是将它们与典型的实验数据包区分开来。

' recommendPackages()的函数

Sonali添加了一个新函数,'推荐包()',' biocViews '包。' biocViews '术语被安排在一个层次结构中,其中每个术语可以有一个或多个子术语。'推荐包()'标识带有特定术语的包以及带有子术语的包。

该函数目前位于开发分支(Bioconductor3.2),但是,发布和开发存储库都可以用' use '进行搜索。释放”的论点。

例如,这个调用使用发布' biocViews '术语返回在发布分支中同时标记“Cheminformatics”和“Clustering”的所有包:

库(biocViews)术语<- c(“化学信息学”,“聚类”)## >推荐包(术语,使用。释放= TRUE,相交。views = TRUE) ##[1]“ChemmineOB”“ChemmineR”“eiR”“fmcsR”

的使用。release = FALSE '将使用devel ' biocViews '搜索devel分支。

带有特定“biocViews”术语的包也可以通过使用web界面来识别。'推荐包()'的优点是能够交叉术语,从而搜索多个视图及其子视图。

有效的“biocViews”术语可以在网站上找到2021年欧洲杯 而且重击

“预先接受的”包装状态

一个新的状态术语“预接受”已添加到包跟踪器中。这个术语用于已经被评审人员批准但还没有一个成功的构建报告的新包。一旦包有一个干净的构建并检查,状态就会更改为“已接受”。此状态仅适用于新包。

构建报告

上个季度的构建报告发生了很多变化。以下是其中的亮点。

盾牌

包的登陆页面(例如,//www.andersvercelli.com/packages/BiocGenerics)现在包括概括每个包的使用和可用性指标的盾牌(又名徽章)。动机是为用户提供一种快速而简单的方法来评估软件包。如果对“biocViews”术语进行搜索,返回一些适合分析的包,那么屏蔽指标可以提供额外的评估级别,并有助于进一步缩小领域。

护盾提供以下指标:

防护罩也可以用于外部。例如,要在Github中的README上显示构建状态,可以从释放重击盾牌。

要了解完整的讨论,请参阅帖子Bioc-devel。

感谢吉姆和丹在盾牌上所做的工作。

包的短url

有人要求Bioconductor网站解析缩短的软件包网址。这个用例是在拨款和出版物的上下文中,其中引用带有完整url长度的包可能会很麻烦且令人分心。

以前必须指定包的完整路径:

//www.andersvercelli.com/packages/release/bioc/html/BiocGenerics.html

通用的简短形式带你到发布页面,除非包只在devel中可用:

//www.andersvercelli.com/packages/BiocGenerics

还支持指定release或devel或编号的Bioconductor版本的简短形式:

//www.andersvercelli.com/packages/devel/BiocGenerics //www.andersvercelli.com/packages/release/BiocGenerics //www.andersvercelli.com/packages/3.2/BiocGenerics //www.andersvercelli.com/packages/3.1/BiocGenerics //www.andersvercelli.com/packages/3.0/BiocGenerics

短url可以在出版物和其他网站中使用,它们可以作为指向软件包当前发布版本的永久链接。关于这些短url的信息已添加到我们发送给新包开发人员的电子邮件中,以便他们可以在引用其包的出版物中使用它们。2021欧洲杯体育投注开户

要了解关于短url的完整讨论,请参阅bioc-devel帖子.谢谢丹。

提高对支持站点消息的认识

的Bioconductor支持网站看到相当多的交通。如果算上顶级的问题、回答和评论,平均每月有900篇帖子。跟踪和过滤相关消息可能很耗时。Dan实现了一些脚本,以确保消息到达正确的眼睛

为了帮助将消息传递给正确的人,Dan实现了一些脚本来提醒维护人员注意与他们的包相关的帖子。

第一个脚本查看用户配置文件的“监视标记”字段。将一个包添加到“监视标记”中,每当有人发布带有(小写)包名标记的问题时,就会发送一封电子邮件。该脚本进行检查,以确保在支持站点上注册的所有包维护者在他们的“监视标记”字段中拥有他们维护的所有包。

第二个脚本标识在支持站点上没有登录的维护者。软件包的Maintainer字段中的电子邮件地址应该与在支持站点上注册时使用的电子邮件地址相同。

最后,对BiocCheck进行了修改,以确保维护者在支持站点上注册。对于需要通过BiocCheck的新包,这现在是一个要求。

注释

TxDb对象

Bioconductor TxDb对象是一个用于存储转录注释的容器。已经编写了许多方法来查询和子集底层数据库,使类成为存储来自UCSC、Ensembl和BioMart资源的信息的有用格式。

用于从TxDb转换数据和从TxDb转换数据的函数已经出现了一段时间,极大地提高了在线源和在线源之间争论数据的能力Bioconductor.最近添加了一些新功能,我认为它们值得了解。感谢Marc和Herve的工作。

更多细节在“基因组特征”软件包的手册页上。

库(GenomicFeatures) ? makeTxDbFromUCSC

' OrganismDbi '包和' OrganismDb '对象

' OrganismDbi '包提供了与一组注释包进行接口的类和方法。“有机体mdb”类是一个复合对象,由多个注释包通过一个公共键链接而组成。原型包包含TxDb, GO.db和org.*.eg.db组合,用于特定的生物体和基因组构建。这样做的目的是,只要现有注释包具有公共映射,就可以将它们的任何集合捆绑成一个有机包。

目前有3个“有机体dbi”包,Homo。智人,亩。小家鼠和褐家鼠。可以通过搜索注释存储库使用biocViews术语“有机体mdb”。

有关创建自己的包的更多信息,请参阅' OrganismDbi '包中的手册页。

库(OrganismDbi) ? makeOrganismPackage

可以使用' select() '接口访问这些对象中的数据,或者最近使用Marc的新范围访问器函数之一。

AnnotationHub更新

传播的元数据

“AnnotationHub”中可用的资源已从外部资源下载并保存为预解析R对象或原始数据文件。中心中的每个资源都有关联的元数据,分为10个类别。

library(AnnotationHub) hub <- AnnotationHub() ## > names(mcols(hub)) ##[1]“title”“dataprovider”“species”“taxonomyid”“genome”##[6]“description”“tags”“rdataclass”“sourceurl”“sourcetype”

一旦从集线器中提取对象,这是与对象一起保存的有用信息。Sonali正在致力于将这些字段作为元数据传播到R从中心返回的对象。例如,如果resource返回grange,则字段将可用元数据().这是一项正在进行的工作,计划在秋季完成Bioconductor释放。

新资源

ensemble发布80个文件(包括GTF和FASTA):

查询(中心,c(“gtf”,“80”,“运用”))查询(中心,c(“fasta”,“80”,“运用”))

表观基因组学路线图项目文件:

查询(中心,“EpigenomeRoadMap”)

“OrgDb”包:

查询(中心,“OrgDb”)

项目统计

网站流量

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

2015年第二季度网站流量对比2014年
届:总 增加28.52% (375,901 vs 292,490)
会议:回访 增加31.25% (246,683 vs 187,956)
会议:新访客 增加23.61% (129,218 vs 104,534)


使用谷歌分析

包下载和新提交

2015年4月、5月、6月软件包唯一IP下载量分别为38853、37784、35505。2014年同期的数字分别为39818、38348和36179。数字必须按月(vs sum)进行比较,因为有些ip在月份之间是相同的。有关的完整摘要,请参阅网站下载数据

2015年第二季度共增加了63个软件包,使devel的软件包数量达到1042个(Bioconductor3.2)和发行版1024 (Bioconductor3.1)。

教程

Bioconductor现在支持网站托管教程页面.Sean Davis贡献了一篇关于使用dplyr和geoometadb挖掘NCBI GEO数据的文章,另一篇关于访问公共基因组数据的文章Bioconductor.Sonali的教程概述了在“AnnotationHub”中可用的新表观基因组学路线图项目文件。

即将来临的事件

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

确认

感谢Cole Trapnell分享他对软件开发和“monocle”包的想法Bioconductor团队在西雅图进行项目更新和编辑审查。

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