ncbi上下文中格式的小型验证程序
Valifor的Python项目详细描述
版权所有(c)2018 QBIC
特此免费授予获得本软件和相关文档文件(以下简称"软件")副本的任何人在不受限制的情况下处理本软件中的
,包括但不限于使用、复制、修改的权利,前往、发布、分发、再授权和/或出售软件的
副本,并允许向其提供软件的人员这样做,受限于以下条件:
对于适销性的保证,
适用于特定目的和不侵权。在任何情况下,
作者或版权所有人都不对任何索赔、损害赔偿或其他
责任负责,无论是在诉讼或合同、侵权行为或其他方面,都是由于,
与软件无关或与软件有关,或与
软件中的使用或其他交易有关。
格式。
目前支持以下文件格式:
*fasta
*fastq
motivation
====
在任何数据驱动的工作流中,数据的质量都是非常重要的。特别是对于可以手动修改get格式的文件,有可能出现与格式不匹配的损坏文件。
如果损坏的文件能够在未被检测到的情况下进入工作流,则整个系统可能会中断,并且可能必须重置,即使没有中断,最终得到的结果也将不可用,并且必须重复所有已完成的工作。如果不能很快发现错误,情况会更糟。基于腐败结果的所有进一步工作和结论也可能无法使用。为了应对这种情况,有不同格式的验证器可以确保它们符合所有定义的规则。例如,有[fastavalidator](https://github.com/jwaldman/fastavalidator)和[fastqvalidator](https://github.com/statgen/fastqvalidator),它们都可以验证各自的格式。还有一些程序不仅可以验证某些格式,而且还允许对它们运行分析,如[bamutil](https://github.com/statgen/bamutil)
,但是没有任何工具可以集中于验证一系列格式,从而允许使用单个程序它验证进入工作流的所有不同文件。相反,目前需要有多个工具,所有这些工具都需要维护。
为了解决这个问题,我们开始创建*valifor*一个命令行应用程序,它将能够验证不同的ngs文件格式,而目前只是一个小的开始,它易于扩展,并且可以快速添加所需的格式。
目录
==========================
*[总体架构]('35;toa)
*[安装命令]('35;安装)
*[行界面]('35;cli)
*[添加新格式](\35;addformat)
<;a name="toa">;整个体系结构<;a>;
==========
,*valifor*体系结构如下图所示:
![有效](https://user-images.githubusercontent.com/35918514/42245707-01840510-7f1a-11e8-8860-20ea51f056b9.jpg)
基本结构是工厂模式。
信息量低命令行接口接收到文件/目录的一个或多个路径的输入,以进行验证,并可选地检查格式。
这用于在主逻辑中启动验证过程。在那里,工厂用于从absvalidator的子类中获取所需格式的正确验证器。
absvalidator是所有实现的验证器的基类。每个子类都必须实现父类中给定的接口。
然后使用工厂提供的验证器来验证文件,并返回有关文件是否有效以及格式在何处被破坏的信息。
<;a name="install">;安装<;/a>;
====
您可以使用[github]上的源文件(https://github.com/qbicsoftware/dmqb-grp1-2018)安装*valifor*您可以调用的目录:
$pip install path_to_the_directory
将其安装到您的系统上。
<;a name="cli">;使用valifor:<;<;&a>;
==*Valifor*已安装,可以使用。
您可以通过在命令行中添加`--help``选项来了解如何使用它。它将显示对*valifor*的概述和解释:
$valifor--help
用法:valifor[选项][路径]…
欢迎使用格式验证器valifor:
valifor是一个易于扩展的不同的格式。要启动
,您可以调用"valifor--help"以再次获取此消息,并将更多信息发送到选项中。
要使用valifor,您可以调用:
"valifor[path\u to\u file]"以根据其
文件结束。
"valifor[path_to_file]--format[format]"根据给定的格式检查其格式。
选项:
-f,--format[fasta dna fasta aa fastq]
要测试所有给定文件的格式类型
-h,--帮助显示此消息并退出。
您还可以通过指定目录路径来测试整个目录:
$valifor[path_to_dir]
或测试多个文件和/或目录:
$valifor[路径到目录][路径到文件]
$valiExample.fasta——格式化fastaDNA
,然后在命令行中打印结果。如果是有效的文件,它会打印测试的格式和名称:
$valid:example.fasta-fasta-dna
;如果是损坏的文件,如果可能,它还会返回原因:
$failed:example.fasta-Fasta DNA:序列中不允许有字符[O]。在第3行:10
如果文件或目录不存在,则打印一条警告,其中包含完整路径:
给定路径不存在:/path/to/fileorder
<;a name="addformat">;添加新格式:<;/a>;
一个新的格式,你当然要写一个相应的验证器。
新插件必须包含一个继承自absvalidator的类,并按照说明覆盖其所有函数在absvalidator的文档中。
(另外,应该有一个带有测试文件的unittest类。)
对于新的validator类,大部分工作已经完成,剩下的唯一工作就是将其集成到项目中。
为此,只需将其添加到验证程序工厂的函数,该工厂也在验证程序模块中。
您将找到4个函数:
*available_formats():
*添加cli中的选项应具有的新名称。
*从结尾获取格式(文件结尾):
*添加从文件结尾到选项名称的转换。
*获取验证器(名称):
*添加新类作为新选项的返回。
*如果文件结尾不足以完全确定确切的格式也添加到这里。
至此,您已经完成并集成了此项目的新格式。
关键字:验证器、格式、生物信息学、fasta、fastq
平台:未知
特此免费授予获得本软件和相关文档文件(以下简称"软件")副本的任何人在不受限制的情况下处理本软件中的
,包括但不限于使用、复制、修改的权利,前往、发布、分发、再授权和/或出售软件的
副本,并允许向其提供软件的人员这样做,受限于以下条件:
对于适销性的保证,
适用于特定目的和不侵权。在任何情况下,
作者或版权所有人都不对任何索赔、损害赔偿或其他
责任负责,无论是在诉讼或合同、侵权行为或其他方面,都是由于,
与软件无关或与软件有关,或与
软件中的使用或其他交易有关。
格式。
目前支持以下文件格式:
*fasta
*fastq
motivation
====
在任何数据驱动的工作流中,数据的质量都是非常重要的。特别是对于可以手动修改get格式的文件,有可能出现与格式不匹配的损坏文件。
如果损坏的文件能够在未被检测到的情况下进入工作流,则整个系统可能会中断,并且可能必须重置,即使没有中断,最终得到的结果也将不可用,并且必须重复所有已完成的工作。如果不能很快发现错误,情况会更糟。基于腐败结果的所有进一步工作和结论也可能无法使用。为了应对这种情况,有不同格式的验证器可以确保它们符合所有定义的规则。例如,有[fastavalidator](https://github.com/jwaldman/fastavalidator)和[fastqvalidator](https://github.com/statgen/fastqvalidator),它们都可以验证各自的格式。还有一些程序不仅可以验证某些格式,而且还允许对它们运行分析,如[bamutil](https://github.com/statgen/bamutil)
,但是没有任何工具可以集中于验证一系列格式,从而允许使用单个程序它验证进入工作流的所有不同文件。相反,目前需要有多个工具,所有这些工具都需要维护。
为了解决这个问题,我们开始创建*valifor*一个命令行应用程序,它将能够验证不同的ngs文件格式,而目前只是一个小的开始,它易于扩展,并且可以快速添加所需的格式。
目录
==========================
*[总体架构]('35;toa)
*[安装命令]('35;安装)
*[行界面]('35;cli)
*[添加新格式](\35;addformat)
<;a name="toa">;整个体系结构<;a>;
==========
,*valifor*体系结构如下图所示:
![有效](https://user-images.githubusercontent.com/35918514/42245707-01840510-7f1a-11e8-8860-20ea51f056b9.jpg)
基本结构是工厂模式。
信息量低命令行接口接收到文件/目录的一个或多个路径的输入,以进行验证,并可选地检查格式。
这用于在主逻辑中启动验证过程。在那里,工厂用于从absvalidator的子类中获取所需格式的正确验证器。
absvalidator是所有实现的验证器的基类。每个子类都必须实现父类中给定的接口。
然后使用工厂提供的验证器来验证文件,并返回有关文件是否有效以及格式在何处被破坏的信息。
<;a name="install">;安装<;/a>;
====
您可以使用[github]上的源文件(https://github.com/qbicsoftware/dmqb-grp1-2018)安装*valifor*您可以调用的目录:
$pip install path_to_the_directory
将其安装到您的系统上。
<;a name="cli">;使用valifor:<;<;&a>;
==*Valifor*已安装,可以使用。
您可以通过在命令行中添加`--help``选项来了解如何使用它。它将显示对*valifor*的概述和解释:
$valifor--help
用法:valifor[选项][路径]…
欢迎使用格式验证器valifor:
valifor是一个易于扩展的不同的格式。要启动
,您可以调用"valifor--help"以再次获取此消息,并将更多信息发送到选项中。
要使用valifor,您可以调用:
"valifor[path\u to\u file]"以根据其
文件结束。
"valifor[path_to_file]--format[format]"根据给定的格式检查其格式。
选项:
-f,--format[fasta dna fasta aa fastq]
要测试所有给定文件的格式类型
-h,--帮助显示此消息并退出。
您还可以通过指定目录路径来测试整个目录:
$valifor[path_to_dir]
或测试多个文件和/或目录:
$valifor[路径到目录][路径到文件]
$valiExample.fasta——格式化fastaDNA
,然后在命令行中打印结果。如果是有效的文件,它会打印测试的格式和名称:
$valid:example.fasta-fasta-dna
;如果是损坏的文件,如果可能,它还会返回原因:
$failed:example.fasta-Fasta DNA:序列中不允许有字符[O]。在第3行:10
如果文件或目录不存在,则打印一条警告,其中包含完整路径:
给定路径不存在:/path/to/fileorder
<;a name="addformat">;添加新格式:<;/a>;
一个新的格式,你当然要写一个相应的验证器。
新插件必须包含一个继承自absvalidator的类,并按照说明覆盖其所有函数在absvalidator的文档中。
(另外,应该有一个带有测试文件的unittest类。)
对于新的validator类,大部分工作已经完成,剩下的唯一工作就是将其集成到项目中。
为此,只需将其添加到验证程序工厂的函数,该工厂也在验证程序模块中。
您将找到4个函数:
*available_formats():
*添加cli中的选项应具有的新名称。
*从结尾获取格式(文件结尾):
*添加从文件结尾到选项名称的转换。
*获取验证器(名称):
*添加新类作为新选项的返回。
*如果文件结尾不足以完全确定确切的格式也添加到这里。
至此,您已经完成并集成了此项目的新格式。
关键字:验证器、格式、生物信息学、fasta、fastq
平台:未知