一个用C编写的小型、轻量级、快速的fasta验证器
py-fasta-validator的Python项目详细描述
py_fasta_验证程序
fasta validator的Python扩展
这是一个pythonc扩展,用于验证fasta文件。它只检查一些内容,默认情况下只通过返回代码设置其响应,因此您需要在Python代码中进行检查。请参阅提供的示例。在
我们遵循的简单规则是:
- 每个标题行以
>
开头。报头在序列的前面。在 - 每隔一行被视为序列线
- 序列行不能包含空格、数字或非序列字符。换句话说,它们只能包含字符[A-Z]和[A-Z]
- 序列行可以以新行结尾,也可以返回,具体取决于您是否在mac、pc或linux计算机上编辑过此文件。在
- 序列行可以为空。在
- 序列标识符是标题行中
>
后面的字符串,直到第一个空格。第一个空格后的所有内容都是描述性的,可以是任意长的 - 每个序列标识符在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验证器
这和fasta_validator有什么区别?在
不太喜欢!在
最初的C代码是为Search SRA项目编写的,因为我们想验证用户上传的fasta文件。该代码是用C编写的,不需要任何附加的库来安装。在
这个版本添加了Python钩子,因此需要安装Python开发库。因此,我们将它们作为两个独立的项目保存,尽管您会注意到C代码本质上是相同的!在
许可证
此软件使用MIT License发布
- 项目
标签: