:AnnotationFilter
作者:马丁•摩根(aut)约翰Rainer (aut),约阿希姆Bargsten[所有],丹尼尔·范Twisk[所有],Bioconductor包维护者(cre)
最后修改:2022-11-01 15:03:40
编译:11月1日星期二16:48:37 2022

1介绍

各种各样的注释在Bioconductor资源可用。访问这些数据库的全部内容,甚至单表计算昂贵,而且在许多情况下不是必需的,因为用户可能想要提取只有录制的数据如基因组单个基因的坐标。在这方面,过滤注释资源数据提取前对性能有重大影响,增加这些公司数据库的可用性。

AnnotationFilter包因此发展提供基本的过滤器类,以实现一个共同的过滤框架Bioconductor注释资源。AnnotationFilter定义了一些最常用的过滤器类功能注释数据库,如象征genename。每个过滤器类应该是工作在一个数据库表列和促进过滤所提供的值。这种过滤器类允许用户来构建复杂的查询检索特定的注释,而不需要知道列或表名或底层数据库的布局。虽然最初被开发使用的Organism.dplyrensembldb包,过滤器类和相关滤波的概念可以很容易地添加到其他注释包。

2过滤器类

所有过滤器类扩展的基本AnnotationFilter类和一个或多个和一个条件允许过滤在单个数据库表列。根据输入值的类型,过滤器类分为:

  • CharacterFilter:需要一个字符值的长度> = 1和支持条件= =,! =,startsWithendsWith。一个将是一个例子GeneIdFilterIDs允许筛选基因。

  • IntegerFilter:需要一个整数作为输入,并支持条件= =,! =,>,<,> =< =。一个将是一个例子GeneStartFilter过滤结果(染色体)启动基因的坐标。

  • DoubleFilter:需要一个数字作为输入,并支持条件= =,! =,>,<,> =< =

  • GRangesFilter:是一种特殊的滤波器,如需要农庄作为价值并执行过滤列的组合(即开始和结束坐标以及序列名称和链)。是一致的findOverlaps方法从IRanges包的构造函数GRangesFilter过滤了类型参数来定义它的条件。支持的值“任何”(默认),检索所有条目重叠农庄,“开始”“结束”匹配所有功能相同的开始和结束坐标分别为“在”相匹配的所有功能定义的范围农庄“平等”等于返回功能农庄

过滤器类的名称直观,第一部分对应于数据库列名与每个字符之后_被资本化,紧随其后的是关键字过滤器。一个过滤器的名称为一个数据库表列gene_id因此被称为GeneIdFilter。一个过滤器的默认数据库列存储的槽(访问通过方法)。

supportedFilters方法可以用来获取所有可用的过滤器对象中定义的概述AnnotationFilter

库(AnnotationFilter) supportedFilters ()
# #过滤器领域# # 16 CdsEndFilter cds_end # # 15 CdsStartFilter cds_start # # 6 EntrezFilter entrez # # 19 ExonEndFilter exon_end # # 1 ExonIdFilter exon_id # # 2 ExonNameFilter exon_name # # 18 ExonRankFilter exon_rank # # 17 ExonStartFilter exon_start 24 GRangesFilter农庄# # # # 5 GeneBiotypeFilter gene_biotype # # 21 GeneEndFilter gene_end # # 3 GeneIdFilter gene_id # # 4 GeneNameFilter gene_name # # 20 GeneStartFilter gene_start # # 11 ProteinIdFilter protein_id # # 13 SeqNameFilter seq_name # # 14 SeqStrandFilter seq_strand # # 7 # # SymbolFilter象征10 TxBiotypeFilter tx_biotype # # 23 TxEndFilter tx_end # # 8 TxIdFilter tx_id # # 9 TxNameFilter tx_name # # 22 TxStartFilter tx_start # # 12 UniprotFilter uniprot

请注意,AnnotationFilter包只提供过滤器类而不是功能应用过滤。这样的功能注释资源和数据库布局的依赖和需求从而实现包提供注释资源。

3使用

创建过滤器通过他们的专用构造器函数,例如GeneIdFilter函数GeneIdFilter类。因为这个简单和廉价的创建、过滤器类被认为是只读因此不提供setter方法来改变他们的位置值。除了构造函数,AnnotationFilter提供了功能翻译查询表达式为过滤器类(请参见下面的进一步为例)。

下面我们创建一个SymbolFilter可以用来过滤注释资源检索所有相关条目指定的符号价值。

库(AnnotationFilter) smbl < - SymbolFilter smbl (“BCL2”)
# # # #类:SymbolFilter条件:= = # #值:BCL2

这样一个过滤器应该是用于检索所有条目相关联的特性值在数据库表列象征匹配滤波器的价值“BCL2”

使用“startsWith”条件我们可以定义一个过滤器检索所有基因与基因的条目名称/标志从指定的值(如开始。“BCL2”“BCL2L11”下面的例子。

smbl < - SymbolFilter (“BCL2”,条件=“startsWith”) smbl
# # # #类:SymbolFilter条件:startsWith # #值:BCL2

除了构造函数,AnnotationFilter提供了一个功能创建过滤器实例在一个更自然和直观的方式翻译筛选器表达式(写成公式,即从一开始~)。

smbl < - AnnotationFilter(~ = =象征“BCL2”) smbl
# # # #类:SymbolFilter条件:= = # #值:BCL2

个人AnnotationFilter可以合并在一个对象AnnotationFilterList。这个类继承了列表并提供一个额外的logicOp ()定义如何应该结合其个人过滤器。的长度logicOp ()必须是1小于过滤器对象的数量。中的每个元素logicOp ()定义应该如何结合连续两个过滤器。下面我们创建一个AnnotationFilterList包含两个过滤器对象结合逻辑

对费< - AnnotationFilter (~ = =“BCL2”象征& tx_biotype = =“protein_coding”)外语教学
# # AnnotationFilterList长度2 # #符号= =‘BCL2 & tx_biotype = =“protein_coding”

请注意,AnnotationFilter函数(还)不支持嵌套表达式的翻译,等(符号= = " BCL2L11 " & tx_biotype = =“nonsense_mediated_decay”) |(符号= =“BCL2”& tx_biotype = =“protein_coding”)。然而这样的查询可以被嵌套构建AnnotationFilterList类。

# #定义过滤器的过滤查询第一对。afl1 < - AnnotationFilterList (SymbolFilter (“BCL2L11”), TxBiotypeFilter (“nonsense_mediated_decay”)) # #(括号定义第二个过滤器对应该的总和。afl2 < - AnnotationFilterList (SymbolFilter (“BCL2”), TxBiotypeFilter (“protein_coding”)) # #现在结合逻辑或afl < - AnnotationFilterList (afl1、afl2 logicOp =“|”) afl
长度2 # # # # AnnotationFilterList(符号= = & tx_biotype = = ' nonsense_me BCL2L11