发布的瓦莱丽Obenchain2015年10月
的Bioconductor通讯每季回顾核心基础设施的发展、社区项目和未来方向。我们涵盖了普遍感兴趣的主题以及对软件影响最大的主题。本季度Bioconductor核心团队从华盛顿州西雅图搬迁到纽约州布法罗,并迎来了两名新成员。引入了两个新的工作流和分析管道论坛:最近启动的Bioconductorf1000研究频道和新栏目R /生物导体BMC生物和医学杂志源代码中的工作流程。本文总结了基础设施包以及在过去的开发周期中特别活跃的一些贡献包的新特性和功能。
在九月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上发布了。尽管去看看吧!
的Bioconductor主页有一个新的链接F1000研究频道.
F1000Research是一个开放的科学出版平台,其目标如下:
快速发表:所有的科学研究都在几天内发表,使新的结果立即可见。在出版后进行审查。
公开同行评议:公开同行评议消除了发表前匿名评议可能存在的潜在偏见。
公布所有结果:公布所有结果,包括无效/阴性结果、小发现、病例报告、数据说明和观察文章。
提供的数据:所有文章都附有用于生成结果的数据,以实现可重复研究。
的动机BioconductorF1000Research频道是一个面向任务的工作流程论坛,涵盖了当前从开始到结束的基因组规模的分析问题。与包小片段相比,这些工作流组合欧洲杯2021体育彩票了来自几个不同包的资源,演示了综合分析和建模技术。最终目标是让它更容易Bioconductor用户可以通过调整这些工作流程来导航软件产品,从而快速地为他们的特定问题找到解决方案。
这项工作由沃尔夫冈·胡贝尔、文斯·凯里、肖恩·戴维斯、卡斯珀·丹尼尔·汉森和马丁·摩根领导。
Levi Waldron是纽约市市立大学公共卫生学院生物统计学助理教授。他任职于Bioconductor技术顾问委员会,目前正领导小组开发新的基础设施进行分析多分析基因组实验.利瓦伊最近成为了生物与医学杂志的BMC源代码本月早些时候,他发布了一篇公告呼吁R /生物导体工作流提交到新部分。该杂志是开放获取的,旨在发布源代码,供分发和用于推进生物和医学研究。稿件考虑信息系统、决策支持系统、客户端用户网络、数据库管理和数据挖掘工作流程的所有方面。
工作流程应该解决一个普遍感兴趣的问题,并且容易被其他研究人员所适应。实现上可以作为一个工作流Bioconductor网站,一个亚马逊或码头工人图像或其他跨平台支持的方法。更多详情请参阅作者的说明.
在过去的几周里,Dan一直忙于将包构建、单个包构建器和网站转移到云端。此举提供了更灵活的登录访问和机器配置。从外部看,一切都应该是一样的,这样用户与这些资源的交互才不会改变。
这是一项巨大的努力,几乎已经完成。谢谢丹!
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:
GenomicFeatures: coverageByTranscripts ()
计算一组范围的抄本(CDS)覆盖率。
(由Hervé Pages贡献)
改进了GFF文件的rtracklayer::import()
从GFF文件读取数据到data.frame或DataFrame对象。这个函数会自动检测GFF版本,但如果需要的话会有一个' version '参数。默认情况下加载所有列,或者可以在' columns '参数中指定单个列。提供了额外的灵活性rtracklayer: readGFF ()
.
(由Hervé Pages贡献)
GRanges对象和字符向量之间的强制转换
一个农庄
对象可以强制转换为字符向量并返回。看到了吗,田庄在GenomicRanges打包查看详细信息。
(由Hervé Pages贡献)
## From GRanges to character: > gr <- GRanges("chr1", IRanges(1,5), "-") > x <- as.character(gr) > x [1] "chr1:1-5:-" ## From character to GRanges: > GRanges(x) GRanges对象具有1个范围和0个元数据列:seqnames ranges strand [1] chr1 [1,5] - ------- seqinfo: 1个序列来自一个未指定的基因组;没有seqlengths
从表达式集和摘要实验的强制
可敬的ExpressionSet
能不能强迫从更现代的SummarizedExperiment
.强制使用为()
支持从普通探针或基于基因的注释标签到基因组范围的映射标识;makeSummarizedExperimentFromExpressionSet ()
允许用户指定的标识符转换。
(由吉姆·赫斯特贡献)
作为对基础设施包中新特性和功能部分的补充,我们希望强调贡献包中所做的重要更改。并不是所有的包都保留最新的NEWS文件,因此确定哪些包添加了新特性可能比较棘手。衡量活跃开发的一种方法是一段时间内svn/git提交的数量。
截至9月22日,自2015年4月发布以来,这些包都有50多个提交:文案,systemPipeR,ComplexHeatmap,derfinderHelper,ggtree,RnBeads而且cogena.
一些作者说,提交是由于维护和包自上一个版本以来没有太大的变化。其他软件包确实发生了显著的变化,作者在下面总结了这些变化。由于篇幅限制,评论被稍加编辑。
ComplexHeatmap作者:顾祖光
这个包提供了一个框架来组合和可视化多个热图。组合地图可以灵活地注释和装饰(添加图形后生成)。的oncoPrint ()
功能提供了一种可视化基因组改变事件的紧凑方法。
小插图被分成独立的主题,并得到了广泛的改进。
支持热图标题的文本旋转。
可以拆分行,如果cluster_rows
是群集对象。
连续值的图例可以设置为连续色条。
行标题、列标题以及图例标题支持数学表达式。
添加densityHeatmap ()
它通过热图在矩阵/列表中可视化密度分布。
添加装修*
函数,使它更容易和直接添加更多的图形在图上。
添加oncoPrint ()
这使得复制癌纹很容易
添加select ()
函数以交互方式选择热图中的子区域,并检索所选子区域中的行/列索引。
添加行*
而且列*
辅助功能(例如:rowAnnotation ()
,row_anno_barplot ()
)
ggtree作者:余光创、林赞玉
一个系统发生树查看器,具有添加节点级(分类)注释层的广泛功能。扩展了图语法和基础结构ggplot
而且ggplot2
.
read.raxml ()
而且read.r8s ()
支持RAxML和r8s输入;数据存储在raxml
而且r8
对象
merge_tree ()
它结合了来自不同软件的统计证据,使得比较结果成为可能
gheatmap ()
用相关的数值矩阵注释树(例如基因型表)
msaplot ()
哪一个注释树与多个序列对齐
这两个gheatmap ()
而且msaplot ()
添加一个新的图层到树形视图,可以通过添加转换为圆形+ coord_polar(θ= " y ")
语法。
cogena作者:贾志龙、迈克尔·巴恩斯
Cogena是一个用于共表达基因集富集分析的工作流程。
增加了基于cogena工作流的药物发现和药物重新定位的管道。可根据疾病相关数据的基因表达预测候选药物,或根据药物相关数据的基因表达识别其他类似药物。此外,通过相关途径分析可以揭示药物的作用方式。
添加功能coExp ()
而且clEnrich ()
在管道中使用
添加CmapDn100基因集。gmt和CmapUp100。Gmt,基于连接图使药物重新定位分析
新增基因集MsigDB 5.0
systemPipeR作者:Thomas Girke
systemPipeR为广泛的下一代序列(NGS)应用程序构建和运行自动化分析工作流程提供基础设施。
总会在工作流
为Ribo-Seq和polyRibo-Seq、ChIP-Seq和VAR-Seq增加了新的端到端工作流
添加了数据包“systemPipeRdata”来生成systemPipeR工作流环境,使用单个命令(genWorkenvir)包含快速测试和运行工作流所需的所有参数文件和示例数据
工作流框架
简化复杂分析工作流程的设计
在单机和计算机集群上改进工作流自动化和并行化
在寻找优化方法时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年第三季度的比较。会议被新访客和回头客打断。新访问者对应于新用户总数。
届:总 | 增加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)。
看到活动页面查看所有课程和会议的列表。
欧洲生物导体开发者大会2021欧洲杯体育投注开户2015年12月07 - 08日,英国剑桥
“基因组数据科学的生物导体”课程2015年9月7日发布。这一系列为期一个月的课程是JHU基因组数据科学专业的一部分。所有6个班将在每个月进行。
Bioconductor3.2版本2015年10月14日-全球!
Bioconductor简介Pete Hickey为革命博客所写的项目摘要。
请将意见或问题发送至瓦莱丽.