一个用C编写的小型、轻量级、快速的fasta验证器

py-fasta-validator的Python项目详细描述


py_fasta_验证程序

fasta validator的Python扩展

这是一个pythonc扩展,用于验证fasta文件。它只检查一些内容,默认情况下只通过返回代码设置其响应,因此您需要在Python代码中进行检查。请参阅提供的示例。在

我们遵循的简单规则是:

  1. 每个标题行以>开头。报头在序列的前面。在
  2. 每隔一行被视为序列线
  3. 序列行不能包含空格、数字或非序列字符。换句话说,它们只能包含字符[A-Z]和[A-Z]
  4. 序列行可以以新行结尾,也可以返回,具体取决于您是否在mac、pc或linux计算机上编辑过此文件。在
  5. 序列行可以为空。在
  6. 序列标识符是标题行中>后面的字符串,直到第一个空格。第一个空格后的所有内容都是描述性的,可以是任意长的
  7. 每个序列标识符在fasta文件中必须是唯一的。在

我们将使用以下返回代码退出:

  • 0这是一个有效的fasta文件
  • 1第一行不是以a>开头的;(违反了规则1)。在
  • 2文件中存在重复的序列标识符(违反规则7)
  • 4序列行中有[a-Za-z]以外的字符

其他退出代码(例如255、254等)表示程序中存在内部错误。在

先决条件

fasta validator是用ansic编写的,但是您还需要Python开发人员工具包(例如,在您的机器上安装Python-3.x-dev以提供Python.h)

安装

所有人

使用pip安装:

pip3 install pyfastavalidator

高级

要从GitHub克隆代码,请使用:

^{pr2}$

要构建代码,请使用:

make

这应该将源代码编译为当前工作目录中的可执行文件。在

请注意,如果出现这样的错误:

gcc  -Wall -o fasta_validate ./fasta_validate.c -I/usr/include/python3.8 -I/usr/include/x86_64-linux-gnu/python3.8
/usr/bin/ld: /tmp/ccgvrFaq.o: in function `python_input':
fasta_validate.c:(.text+0x481): undefined reference to `PyArg_ParseTuple'
/usr/bin/ld: fasta_validate.c:(.text+0x48c): undefined reference to `PyExc_RuntimeError'
/usr/bin/ld: fasta_validate.c:(.text+0x49b): undefined reference to `PyErr_SetString'
/usr/bin/ld: fasta_validate.c:(.text+0x4c3): undefined reference to `PyLong_FromLong'
/usr/bin/ld: /tmp/ccgvrFaq.o: in function `PyInit_fastaValidator':
fasta_validate.c:(.text+0x4f2): undefined reference to `PyModule_Create2'
collect2: error: ld returned 1 exit status
make: *** [Makefile:9: all] Error 1

然后我们需要将python的版本附加到make命令中。我(当前)正在运行python3.8,要编译而不出错的命令是:

make CFLAGS=-lpython3.8

我不知道这个错误的确切原因,但是pkg-config --libs python3在应该报告-lpython3.8时没有报告任何内容

要以root(sudo)身份安装此代码,可以使用:

make install

这将把可执行文件复制到/usr/local/bin。在

要以用户身份安装它,只需将编译后的二进制文件fasta_validate复制到路径上的某个地方。在

测试

要测试代码,可以使用提供的示例。在

python3 example_validations.py -f test/good.fasta

或者您可以在所有测试中运行该示例:

for F in test/*; do
	python3 example_validations.py -f $F;
done

引文

请引用为

爱德华兹,R.A.,2019年。fasta_validate:用纯C.DOI:10.5281/zenodo.2532044编写的快速高效的fasta验证器 DOI

这和fasta_validator有什么区别?在

不太喜欢!在

最初的C代码是为Search SRA项目编写的,因为我们想验证用户上传的fasta文件。该代码是用C编写的,不需要任何附加的库来安装。在

这个版本添加了Python钩子,因此需要安装Python开发库。因此,我们将它们作为两个独立的项目保存,尽管您会注意到C代码本质上是相同的!在

许可证

此软件使用MIT License发布

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

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException