Bioconductor通讯

发布的瓦莱丽Obenchain2015年10月

Bioconductor通讯每季回顾核心基础设施的发展、社区项目和未来方向。我们涵盖了普遍感兴趣的主题以及对软件影响最大的主题。本季度Bioconductor核心团队从华盛顿州西雅图搬迁到纽约州布法罗,并迎来了两名新成员。引入了两个新的工作流和分析管道论坛:最近启动的Bioconductorf1000研究频道和新栏目R /生物导体BMC生物和医学杂志源代码中的工作流程。本文总结了基础设施包以及在过去的开发周期中特别活跃的一些贡献包的新特性和功能。

内容

Bioconductor搬迁到罗斯威尔帕克癌症研究所

在九月Bioconductor核心团队从华盛顿州西雅图迁至纽约州布法罗。新的家庭制度是罗斯威尔帕克癌症研究所这是布法罗尼亚加拉医疗中心的一部分。该建筑群位于布法罗市中心,占地约120英亩,是一个由医院、医疗保健设施和教育机构组成的联合体。园区发展迅速,目前员工人数为12000人,预计到2017年将达到17000人。RPCI与位于布法罗的纽约州立大学有着密切的联系。

物理地点的改变也带来了一些人员的变化。Marc Carlson, Sonail Arora和Paul Shannon在8月底离开了这个项目。的设计和实施都是有帮助的AnnotationHub(以及一般的注释)、生物网络分析工具、教育材料和许多其他领域。非常感谢他们所做的许多贡献。

在布法罗,我们很高兴地欢迎新的团队成员Jim Java和Brian Long。Jim曾在RPCI的妇科肿瘤组担任生物统计学家,在那里他分析了临床试验数据。他还担任过几家公司的软件工程师,从事的项目从销售点软件到嵌入式系统。他拥有计算机科学博士学位(专注于自然语言处理),生物统计学和英语文学硕士学位。他的研究兴趣包括科学和统计计算、自然语言处理(特别是作者身份识别)、语言学、气候科学、枪支暴力、伦理学和文学。

Brian在软件开发方面的工作专注于关系数据库和NoSQL存储、UI/UX设计、安全和扩展性。最近,他一直在与一个团队合作,开发平台即服务(类似于谷歌应用程序引擎)。该平台允许应用程序开发人员将组件部署到按需虚拟基础设施中,并通过Apache Th2021欧洲杯体育投注开户rift支持大量编程语言。大部分工作都不是开源的,而是代码已经在GitHub上发布了。尽管去看看吧!

可再生的研究

f1000研究频道上线

Bioconductor主页有一个新的链接F1000研究频道

F1000Research是一个开放的科学出版平台,其目标如下:

的动机BioconductorF1000Research频道是一个面向任务的工作流程论坛,涵盖了当前从开始到结束的基因组规模的分析问题。与包小片段相比,这些工作流组合欧洲杯2021体育彩票了来自几个不同包的资源,演示了综合分析和建模技术。最终目标是让它更容易Bioconductor用户可以通过调整这些工作流程来导航软件产品,从而快速地为他们的特定问题找到解决方案。

这项工作由沃尔夫冈·胡贝尔、文斯·凯里、肖恩·戴维斯、卡斯珀·丹尼尔·汉森和马丁·摩根领导。

生物和医学源代码主办新的R /生物导体工作流部分

Levi Waldron是纽约市市立大学公共卫生学院生物统计学助理教授。他任职于Bioconductor技术顾问委员会,目前正领导小组开发新的基础设施进行分析多分析基因组实验.利瓦伊最近成为了生物与医学杂志的BMC源代码本月早些时候,他发布了一篇公告呼吁R /生物导体工作流提交到新部分。该杂志是开放获取的,旨在发布源代码,供分发和用于推进生物和医学研究。稿件考虑信息系统、决策支持系统、客户端用户网络、数据库管理和数据挖掘工作流程的所有方面。

工作流程应该解决一个普遍感兴趣的问题,并且容易被其他研究人员所适应。实现上可以作为一个工作流Bioconductor网站,一个亚马逊码头工人图像或其他跨平台支持的方法。更多详情请参阅作者的说明

基础设施更新

将机器构建到云端

在过去的几周里,Dan一直忙于将包构建、单个包构建器和网站转移到云端。此举提供了更灵活的登录访问和机器配置。从外部看,一切都应该是一样的,这样用户与这些资源的交互才不会改变。

这是一项巨大的努力,几乎已经完成。谢谢丹!

HTS核心包堆栈

Bioconductor鼓励软件重用,并以一组灵活的、集成的基础设施包为目标。相互关系的一个后果是,低级包中的更改可能会影响下游包。

在整个开发周期中,会添加新的类并重新组织代码,这可能会导致依赖层次结构的更改。我们尽最大努力识别并修复受这些更改影响的包。修改后的包和它们的依赖项被提交到svn/git中,应该通过每晚的构建一起传播,并通过biocLite ()第二天。

Hervé最近在S4Vectors/inst/doc/中添加了一个描述高通量测序(HTS)核心包堆栈的图形。在开发新的S4类和方法时,了解这个层次结构非常有用。它还使直接从svn工作的前沿开发人员受益2021欧洲杯体育投注开户biocLite ()).从svn安装的包可能有更新的依赖项,这些依赖项还没有通过构建系统传播,必须手动(按顺序)安装。

包堆栈文件将随着核心包的更改而更新。这是当前快照。

截至2015年8月

VariantAnnotation | | v v genome features BSgenome | | v v rtracklayer | v genome alignments | | v v summarizeexperimental Rsamtools | | | v v v genome icranges Biostrings | | v v GenomeInfoDb XVector | | v v IRanges | v S4Vectors

新功能

所有这些都可以在devel分支中获得,Bioconductor3.2:

贡献包中的活动

作为对基础设施包中新特性和功能部分的补充,我们希望强调贡献包中所做的重要更改。并不是所有的包都保留最新的NEWS文件,因此确定哪些包添加了新特性可能比较棘手。衡量活跃开发的一种方法是一段时间内svn/git提交的数量。

截至9月22日,自2015年4月发布以来,这些包都有50多个提交:文案systemPipeRComplexHeatmapderfinderHelperggtreeRnBeads而且cogena

一些作者说,提交是由于维护和包自上一个版本以来没有太大的变化。其他软件包确实发生了显著的变化,作者在下面总结了这些变化。由于篇幅限制,评论被稍加编辑。

ComplexHeatmap作者:顾祖光

这个包提供了一个框架来组合和可视化多个热图。组合地图可以灵活地注释和装饰(添加图形后生成)。的oncoPrint ()功能提供了一种可视化基因组改变事件的紧凑方法。

ggtree作者:余光创、林赞玉

一个系统发生树查看器,具有添加节点级(分类)注释层的广泛功能。扩展了图语法和基础结构ggplot而且ggplot2

这两个gheatmap ()而且msaplot ()添加一个新的图层到树形视图,可以通过添加转换为圆形+ coord_polar(θ= " y ")语法。

cogena作者:贾志龙、迈克尔·巴恩斯

Cogena是一个用于共表达基因集富集分析的工作流程。

systemPipeR作者:Thomas Girke

systemPipeR为广泛的下一代序列(NGS)应用程序构建和运行自动化分析工作流程提供基础设施。

总会在工作流

工作流框架

2021欧洲杯体育投注开户

为什么vectorize ?

在寻找优化方法时R编码最常见的建议之一是“向量化”。一个向量化的函数R一个是用编译语言编写的带有光的类循环结构吗R包装。有几个特性使这些函数具有性能优势。

数据被作为一个向量而不是单个元素传递给一个“向量化”的函数。向量R是“类型化的”,这意味着所有元素必须具有相同的数据类型。将整个向量传递给已编译的代码可以减少工作量R必须解释数据类型。其次,循环计算是在编译语言中完成的,如C、c++或FORTRAN。

向量化函数在源代码中调用. c、. call、. primitive或. internal。一个例子是基础::()

>哪个函数(x, arr。ind = FALSE, useNames = TRUE) {wh <- . internal (which(x)) if (arr。Ind && !是。null(d <- dim(x))) arrayInd(wh, d, dimnames(x), useNames = useNames) else wh}   . null(d <- dim(x)

下面是这些函数如何提高性能的一个具体示例在支持网站上发帖在哪里Hervé帮助了作者ChIPseeker包确定瓶颈ChIPseeker::: getFirstHitIndex ().解决方案是替换一个调用酸式焦磷酸钠()(例如,R-级迭代)与两个向量化函数,复制()而且().这个优雅的一行代码将算法从时间上的二次元简化为时间上的线性。好了!

Hervé采用了一种经典的方法来改进代码:将原始的支持站点示例(谢谢!)简化为能够及时说明问题的示例;逐行遍历代码,注意到一个函数调用花费的时间异常长;理解导致问题的一小段代码;确定一个向量化的替代方案。

我们可能并不都能看到如此显著的改进,但可以肯定的是,这些功能值得了解并在可能的情况下实现。

的省略

R,省略号(…)用于向函数传递可变数量的参数。开发人员在编写自己的S4泛型时遇到的一个常见问2021欧洲杯体育投注开户题是何时(以及为什么)在函数签名中包含省略号。Hervé最近回答发布在Bioc-devel上关于这个话题。主要观点总结在这里,但完整的细节你会想要阅读文章。

为S4对象的getter和setter定义泛型和方法而不是普通函数通常被认为是很好的实践。在引入新的泛型时,建议尽可能保持签名为“泛型”,以便方法可以添加特定于它们所处理的对象的参数。

setGeneric("parameters", function(object,…))

另一种情况是在泛型中的省略号前面有额外的参数,如修饰符或切换符。

setGeneric("enrichment", function(object, method="auto",…)

的目的签名= "对象"是将调度限制在对象只有。定义合理的默认值(例如method= " auto "或verbose=FALSE)对于鼓励跨方法的一致的、用户友好的行为也很重要。

在限制性更强的情况下,有意省略省略号的一个例子是生物()最近添加到BiocGenerics.这是一个简单的getter方法,我们希望加强这一点,并鼓励方法遵循这个非常简单的契约。如果有人提出一个用例,他们的方法需要额外的参数,那么省略号可以添加到泛型中。

...通常适用于泛型的签名,方法通常最好只包含实际使用的实参。这样,无效参数就不会被忽略:

.A = setClass("A", representation(x="integer")) setMethod("enrichment", "A", function(object, method="auto",…){cat("enrichment:", class(object), ";method:", method, "\n")}) enrichment(.A(), methods ="special") # typo默默地忽略## enrichment: A;method: auto setMethod("enrichment", "A", function(object, method="auto") {cat("enrichment:", class(object), "\nmethod:", method, "\n")}) enrichment(.A(), methods ="special") ## .local(object, method,…)中的错误:##未使用的参数(methods ="special")

设计泛型时的关键是识别或预测方法之间最大的公共因子,并在泛型级别将其形式化。拿不准的时候,宁可低估也不要高估。对于方法,尽可能使用最严格的签名。

项目统计

网站流量

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

2015年第三季度网站流量对比2014年
届:总 增加28.05% (339,991 vs 265,507)
讲座:回访旅客 增加34.03% (227,171 vs 169,498)
会议:新访客 增加17.50% (112,820对96,009)


谷歌分析

包下载和新提交

2015年7月、8月、9月软件包唯一IP下载量分别为35349次、33600次、29953次。2014年同期的数字为36362、36118和47918。数字必须按月进行比较(而不是总和),因为有些ip在月份之间是相同的。的完整摘要,请参阅网站下载数据

截至9月25日,2015年第三季度总共增加了54个软件包,使总数达到1078个(Bioconductor3.2)和发行版的1024 (Bioconductor3.1)。

新闻、事件和课程

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

请将意见或问题发送至瓦莱丽