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
平台:未知

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中从本地文件系统导入文件   spring boot如何在Java SpringBoot项目中集成Olingo(Odata)   java查找连续数组中缺少的第k个元素(超过时间限制)   java为什么在mySql中插入1/2行时会得到2/4行   java不能在静态上下文中使用它   File Observer方法的java My onEvent()部分不起作用   java Netty NioSocketChannel在多线程写入时收到中断消息   java将文件夹与父文件夹一起复制   java我的TictaToe代码出了什么问题?如何检查已采取的措施?   java Swing JTable更新   java如何将cordinates查找为int   如何使用selenium和java在firefox中打开新的空选项卡   java Gradle构建输出Jar未运行   java没有GET/WEBINF/jsp/login的映射。jsp