Bioconductor通讯

张贴了瓦莱丽遵守2014年4月,

内容

介绍

欢迎来到第一个Bioconductor通讯!在这个空间中,我们将提供来自西雅图团队的项目更新以及核心开发人员的最近贡献。2021欧洲杯体育投注开户主题将包括基础架构重组,新包和功能,会议和其他感兴趣的领域。

通讯将按季度进行,目的是总结过去3个月的主要发展。如有任何意见和建议,请发送至vobencha@fhcrc.org.

基础设施

基因管理包裹

最后秋季赫维斯在基础设施包上做了一些优秀的选择。全部Galignments *课程和相关功能从Genomicranges.Rsamtools到新基因管理包裹。课程和功能来自Genomicranges.建立在功能上的Rsamtools也被移动了。Reorg基本上清理了我们的依赖树,并将反映在即将发布的BioC 2.14中。(Ascii Art由Hervé提供)。

绞喉^ ^ |||xvector |^ ||Genomicranges Biostrings ^ ^ ||RSAMTOOLS ^ |bsgenome ^ | GenomicAlignments ^ | rtracklayer ^ | GenomicFeatures

结工具in.基因管理

从基因组对准中提取连接的新工具已添加到基因管理包裹。的结码()函数,以前称为空白(),从雪茄中提取对应于N个操作的读取的部分。

新junction-related操作:

Genomeinfodb.包裹

在处理范围和注释时,在不同机构的染色体名称之间进行转换是一个挑战。新Genomeinfodb.包是通过在样式(例如,UCSC,N​​CBI,Ensembl,...)和生物之间提供映射接口来解决这些不一致的步骤。

与seqnames和SeqnamesStyle相关的低级函数从Genomicranges.annotationdbi.Genomeinfodb.。有些函数已弃用,有些重命名。看到消息文件以获取完整列表活动。

该包装旨在用作查询或转换SEQLEVELS的方法的基础。未来的工作将解决在需要匹配SEQLEVELS的操作中自动检测对象之间的不兼容样式的问题。

Sonali,Marc,Hervé和马丁都为这项工作做出了贡献。

目前支持9种生物:

## [1] "Arabidopsis_thaliana" "Caenorhabditis_elegans" ## [3] " cyanidischyzon_merolae " "Drosophila_melanogaster" ## [5] "Homo_sapiens" "Oryza_sativa" ## [7] "Populus_trichocarpa" "Saccharomyces_cerevisiae" ## [9] "Zea_mays"

有风格发现的方法,

seqlevelsStyle(" ch3 ") ## [1] "UCSC"

以及在风格之间转换。在这里,我们从UCSC映射到NCBI:

mapseqlevels(c(“chrii”,“chriii”,“chrm”),“ncbi”)## Chrii Chriii Chrm ##“II”“III”“MT”

网络/注释

annotationhub.包裹

annotationhub.资源持续稳定增长。截至2014年3月,该中心支持来自7个数据提供者(Ensembl, NCBI, UCSC, dbSNP, HAEMCODE, Encode, Inparanoid 8)的204个基因组和98个物种。该中心是一个注释数据的存储库,从原始文件格式解析到R对象,以方便计算。例如,UCSC的BED、GTF和跟踪文件可以作为农庄。来自dbSNP的VCF文件已经被解析为VCF.对象和FASTA文件可用为FaFile对象。

马克、丹和保罗领导了这项工作。

refnet.包裹

在春假发布中观看的新包是refnet.。此包提供可计算形式的分子交互数据,是首先Bioconductor。该软件包提供访问2转录因子网络和RECO 2(从5个资源编制的共识代谢重建)。查询使用Psicquic.或者RefNet.db包。(注意:refnet.RefNet.db将在BioC 2.14中提供。)

这些数据可用于造成或研究实验特异性途径,探索差异表达基因的功能和关系,并对分子水平的各种探索提供洞察。

refnet.是可扩展的,我们鼓励贡献。网络,已知的相互作用,感染途径,疾病 - 宿主相互作用或手稿的途径将是有价值的补充。贡献数据的指导包含在包中。

功劳refnet.,RefNet.dbPsicquic.通过来自Mentored项目的贡献来保罗。

Web Site-ish

Biocviews条款

用于对包进行分类包的BIoCViews术语已被刷新。添加了新的术语,更新了旧的术语和旧术语或无效条款的包。的更新web界面允许通过BioCViews术语或主题进行搜索。复选框选项显示与任何包关联的术语。感谢Sonali和Dan的工作。

BiocCheck包裹

BiocCheck是封装的新包吗Bioconductor套餐指南和最佳实践。它旨在为新的包作者提供指导,并在包裹审查过程中由单个包装机制运行。

BiocCheck也可以从命令行使用

R CMD BiocCheck包

并且应该在追求R CMD检查成功完成。一个全功能小插图解释了包的建议。丹是这个背后的建筑师。

编程位

击球

我最喜欢的物品之一是击球类。这是一种简单,直观的类,可用于复杂的索引和组合。它在两个矢量图对象之间存储一组“命中”,最熟悉的是作为a的输出findoverlaps.手术。

在这里,我们使用击球识别并删除一组范围内的“共享”区域。原始组中的共享区域是位置5到10。范围3完全在此共享范围内。

库(GenomicRanges) gr1一起< -农庄(“A”,IRanges (c(1、5、5),c(10、15、10)))gr1一起# #农庄与3和0元数据列:链# # # # seqnames范围< Rle > < IRanges > < Rle > # #[1][1, 10] * # #[2][5、15]* # # [3][5 10 ] * ## --- ## seqlengths: # # # # NA

首先,我们分离范围并执行findoverlaps.这会给我们一个击球目的:

gr2 < -  disjoin(gr1)OV < -  soppoverlaps(gr1,gr2)ov ## length 5 ## querylength:3 ##主长:3 ## queryhits主题## <整数> <整数> ## 1 1 1## 2 1 2 ## 2 2 2 ## 4 2 3 ## 5 3 2

便利功能countqueryhits'和记录中每条记录的总结次数查询或者主题被击中。

countsubjecthits(ov)## [1] 1 3 1

在范围之间不共享的区域将仅计算一次(自我命中)。

keep_idx <- which(countSubjectHits(ov) == 1L)

配件queryHitssubjectHits从中提取相应的列击球目的:

主题(OV)## [1] 1 2 2 3 2

提取的subjectHits可以在匹配操作中使用子集击球只包含“非共享”区域的对象:

ov < -  ov [ocmemits(ov)%in%walk_idx] ov ## length 2 ## querylength:3 ##主长:3 ## queryhits主题## <整数> <整数> ## 1 1 1 ##2 2 3.

再一次subjectHits但这次是从子集中提取的击球目的。我们使用此索引将Disjoined原始范围子集中仅留下“未共享”区域:

## seqnames ranges strand ##    ## [1] A [1,4] * ## [2] A[1,15] * ##—## seqlength# # A ## NA

要完成这个,我们做了一个格兰德莱斯列表未共享的区域。该列表的长度为3,对应于' gr1 '中的3个范围:

ans_eltens < -  countqueryhits(ov)ans_skeleton < -  partitioningyend(cumsum(ans_eltlens))重新开始(ans_regions,ans_s_skeleton)## grangeslist长3:## [1]] ## granges带有1个范围和0元数据列:##SEQNAMES范围范围股线##  <铁锯>  ## [1] [1,4] * ## ## [2]] ## GRANGES带有1个范围和0元数据列:## SEQNAMES范围Strand ## [1] A [11,15] * ## ## [3]] ##带有0范围和0元数据列的GRANGES:## SEQNAMES范围股线## ## --- ## SEQLENGTES:##a ## na

感谢Michael和Hervé的工作击球类。

自匹配

最近我对群体/因素分裂有一个问题。我以为Hervé提出的解决方案非常优雅,值得分享。

问题归结为将“Group1”向量转换为“Group2”:

Group1 <- c(3,1, 2, 2)

激励用例是根据组分割咯咯Group1.但不是隐含的顺序。

当我们拆分这个剧院

x < -  granges(c(rep(“chr2”,2),rep(“chr19”,2)),铁气(1:4,宽度= 1))x ## granges带4个范围和0元数据列:##seqnames范围范围股线##  <铁钢>  ## [1] CHR2 [1,1] * ## [2] CHR2 [2,2] * ## [3] CHR19 [3,3]* ## [4] CHR19 [4,4] * ## --- ## SEQLENGTH:## CHR19 CHR2 ## NA NA

通过Group1.对象被重新排序以匹配中的优先级Group1.

## seqnames ranges strand ##    ## [1] chr2 [2,2] * ## ## $2 ## # GRanges有2个范围和0个元数据列:## seqnames ranges strand ## [1] chr19 [3,3] * ## [2] chr19 [4,4] * ## ## $3 ## GRanges with 1 range and 0 metadata columns: ## seqnames ranges strand ## [1] chr2[1,1] * ## ##——## seqnames: ## chr19 chr2 ## NA NA

这是预期的行为,但并不完全是我之后的结果。我想尊重分组Group1.但不是订单。基本上我想转身Group1.Group2.所以我会得到这个结果:

分割(x, group2) # # GRangesList长度3:# # # # 1美元农庄1和0元数据范围列:链# # # # seqnames范围< Rle > < IRanges > < Rle > # # [1] chr2 [1,1 ] * ## ## $ 2与1 # #农庄组织范围和0元数据列:链# # # # seqnames范围[1]chr2 (2, 2 ] * ## ## $ 3与2 # #农庄组织范围和0元数据列:## seqnames ranges strand ## [1] chr19 [3,3] * ## [2] chr19[4,4] * ## ##——## seqnames: ## chr19 chr2 ## NA NA

解决方案:

一个简单的解决方案是在创建GRangesList对象后重新排序。

GRL <- split(x, group1) GRL [as.character(unique(group1))]

但是数据很大,所以我希望在创建列表之前解决订购问题。第二种解决方案是改变Group1.“self-match”。

匹配(group1, group1) ## [1] 1 2 3

在任何载体样对象'x'上的“自匹配”是一个简单且非常有效的方法,可以将唯一ID分配给“x”中的唯一值。此外,从“X”和IDS中的唯一值的映射是严格上升的,这是我所需要的我的用例。

XX < -  C(“Z”,“B”,“C”,“C”,“A”,“B”)IDS < - 匹配(XX,XX)IDS ## [1] 1 2 3 3 5 2IDS [!重复(xx)]#始终严格增加## [1] 1 2 3 5

Hervé的2线解决方法是我的分裂问题:

GRL2 < - 拆分(x,匹配(group1,group1))名称(grl2)< -  unique(group1)

更多细节击球类可以在手册页找到:

?击中

“howto”装饰图案Genomicranges.演示了利用广泛的其他实际工作流程Genomicranges.基础设施。

图书馆(Genomicranges)BrowSevignettes(“基因组织”)

课程/会议

在1月,肖恩和赫尔韦朝南到拉西尔·韦托,巴西教学夏天生物信息学课程由Ribeirão普雷托医学院主办。课程由Benilton Carvalho和Houtan Noushmehr组织,重点是分析和理解高通量序列数据。

在西雅图,我们全年提供几个短课程。最后是马丁和索纳利的2月。这是一个2天的介绍性课程,涵盖了使用大数据,类结构,集成工作流程和RNASEQ差分快递数据的分析的基础知识。

即将到来的活动和过去的课程材料可以找到网站

展望未来

春释放只是几周的距离。我们计划于4月11日分行并在14日发布。完整的时间表是贴在网上

BioC 2014将于今年(7月30日- 8月1日)在波士顿举行网站为更新。

7月份通讯将(可能)包括上升的副本号码包GenomicFileviews.包,以及计数/覆盖函数的摘要。如果有主题,你想看到覆盖让我们知道!