跳到内容

FAANG/通信格式转录器

存储库文件导航

格式化转录器

生成状态 覆盖率状态

基于过滤器和回调过滤和转录文件

FormatTranscribe模块旨在方便翻译标准格式(GTF、GFF3、Fasta),过滤字段和可变它们基于回调函数。该工具使用JSON进行配置块指定如何处理每个列以及哪些筛选器或回调以应用。

对于每个记录,应用一组过滤器,默认称为input_filter,处理和output_filter。然而,要应用的确切过滤器可以是在命令行中指定。

在每个过滤器中,每个字段的规则按顺序应用为该格式定义。在应用每个筛选器之前,“_pre”规则是应用所有基于字段的规则后,运行“post”规则。此外,可以添加快捷方式“_all”规则,其中关联的过滤器将按顺序对每个字段运行,即“all”宏在应用所有命名字段规则后运行。所有过滤器和字段基于的规则是可选的,如果在JSON中没有定义,将跳过这些规则配置文件。

目前有两种类型的规则,一种是基于散列的简单替换,其中查找哈希也在JSON配置中指定。这个第二种规则是回调,用户在回调中指定perl要加载的模块、回调函数名称和参数调用时替换(字段值、正在处理的字段名、,正在处理的过滤器等)。

JSON配置文件可以从多个来源合并。底座配置和任何包含的块都可以有一个或多个“包含”字段以拉入更多配置片段或映射/查找。这个允许在中不重复大型查找表多个配置文件,但在一个位置进行维护。

包括的配置部分按中所示的顺序应用块和嵌套的配置节被添加到post-order中树遍历。合并节时,可以指定合并规则如Hash::Union模块中定义的那样。

配置文件和包含的部分可以通过file://提取,http://和ftp://uri格式。

正在验证配置

还存在用于验证配置的命令行工具。A给定配置将被加载并合并。之后,所有指定的将计算过滤器(或默认的三个)以确保查找替换类型规则中存在表。而且那个可以加载回调模块,回调函数存在,并且替换的参数有效。

配置文件

配置文件由两部分组成,过滤规则和单个字段的映射,以及到的任何子配置集合并。

过滤器是应用于文件中每个字段的一组规则处理。规则是映射(直接替换)或回调返回要替换的值的模块。的配置回调和映射表位于配置。

配置文件的基本框架如下所示:

{“输入过滤器”:{“field1”:“my_mappingtable”,“field2”:“my_callback”,“field3”:“large_lookup”},“映射”:{“my_mappingtable”:{…},“my_callback”:{…}},“包括”:[“http://ensembl.org/my_large_lookup.conf"]}

在上述配置中,循环表“my_mappingtable”将为用于直接替换字段1中的值。字段2的值将传递给“my_callback”定义的回调函数,并且字段3将通过从远程文件检索的查找表进行替换称为my_large_lookup.conf。

过滤器

默认情况下,每个记录/行都通过三个过滤器运行,即input_filter、,处理和output_filter。所有字段都通过特定在处理下一个过滤器之前,先过滤一个记录/行。

如果字段的更改方式取决于所做的更改,则这可能很有用到另一个字段。这些过滤器在配置中都是可选的文件,并且可以在命令行上覆盖运行的过滤器。

回调

回调函数可以应用于单个字段,这些字段由要加载的模块、实例化期间要传递的参数、回调函数和传递给回调函数的参数。回调函数应将要替换的值返回到字段中正在处理中。基本格式如下:

“回调”:{“一般回调”:{“回调”:,“模块(_M)”:“”,“_init”:,“参数(_P)”:}}

实例化(_init)和回调(_Parameters)的参数可以是标量、数组或散列。对参数字符串进行变量替换在传递给回调模块之前。即。

{“字段”:“{{field}}”,“值”:“}{value}},”过滤器“:”{{filter}}“}”

将向函数传递一个匿名散列,替换正在处理的字段/列、字段的值以及哪个筛选器当时正在运行。

模块初始化期间允许的替换为:{{field}}-回调正在处理的字段的名称{{attr_path}}-如果字段是嵌套的,例如GFF3中的属性,则处理子字段{{format}}-正在处理的文件的格式

在处理文件中的值时,允许的替换是上述所有内容加上:{{value}}-此时正在处理的字段的值{{filter}}-正在运行的筛选器{{record}}-映射到匿名散列的完整记录(即正在处理的GFF3格式的完整行)

除处理值外,还可以使用[[some_mapping]]来替换配置映射部分的块。即[[sequence_lookup|my_mapping]]会替换中sequencelookup->mymapping元素的全部内容配置文件的映射部分。

配置示例

基本配置使用映射部分中的过滤器染色体->homo_sapiens_ensembl_to_ucsc,表示为嵌套对象(请参见examples/chromosomepluscallback.conf),用于字段“source”

GFF3中的字段属性基于;允许多个字符值,在本例中,属性字段中的子字段ID也是基于染色体->homosapiensensemembltoucsc过滤器重新映射。

最后,映射部分回调“callback”和“seq_callback”用于字段seqname和sequence。

{“input_filter”:{“source”:“染色体|homo_sapiens|ensembl_to_ucsc”,“seqname”:“回调”,“属性”:{“ID”:“染色体|homo_sapiens|ensembl_to_ucsc”},“sequence”:“seq_callback”},“包括”:[“文件://examples/chromosome_plus_callback.conf"]}

完成的回调可能如下所示:

“回调”:{“_callback”:“运行”,“_module”:“Bio::FormatTranscriber::Callback”,“_init”:[“{{Field}}”,“{{Format}}“],“_parameters”:{“field”:“{{field}}”,“value”:“}{value}}“,”filter“:”{{filter}}}

命令行示例

读取FASTA文件并在其上运行一些简单的转换(将序列修剪为20bp长),将结果发送到STDOUT:

bin/format_transciber.pl-格式fasta-c文件://examples/base.conf-it/data/data.faa

同上,但对抑制示例回调函数输出的输出进行降噪:

bin/format_transciber.pl-格式fasta-c文件://examples/base.conf-i t/data/data.faa 2>/dev/null

读取GFF3文件并翻译一些列:

bin/format_transciber.pl-格式gff3-c文件://examples/base.conf-i t/data/data_with_fasta.gff3 2>/dev/null

GFF3文件中开始>20000bp的过滤记录属于基因类型,序列名不是“X”或“1?”:

bin/format_transciber.pl-格式gff3-c文件://examples/gff3_filter.conf-i你的_gff3_file.gff3

筛选来自大于70000bp的GFF3文件的记录,以及该记录的所有子记录:

bin/format_transciber.pl-格式gff3-c文件://examples/gff3_filter_large.conf-i t/data/patch_data.gff3

验证配置,确保可以加载回调并且存在映射:

bin/validate_filter.pl-格式gff3-c文件://examples/base.conf

合并配置文件中的所有包含项并输出统一配置,这有助于测试合并规则是否按预期工作:

bin/merge_config.pl-c文件文件://examples/merge.conf

关于

ftp重新设计项目的文件转换实用程序

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包