我偶然发现了一个 Genbank 格式的文件(此处显示为一个最小的虚拟示例),其中包含如下嵌套功能:
FEATURES Location/Qualifiers
xxxx_domain complement(complement(1..145))
这样的功能使当前的 Biopython Genbank 解析器(1.59 版本)崩溃,但在以前的版本(例如 1.55)中显然没有。显然这种行为已经在 1.57 中(见下面的评论)。
从 Biopython bugtracker 看来,旧的 locationparser 代码似乎在 1.56 中被删除:
从我可以从ftp://ftp.ncbi.nih.gov/genbank/gbrel.txt和http://www.insdc.org/documents/feature_table.html#3.4.2上的格式描述中推断出,这是最可能无效。(但请参阅下面的评论)。
有人可以对此发表评论。即这是 Biopython 中的故障还是 Genbank 文件的格式?
完整的演示文件:
LOCUS XXXXXXXXXXXXXX 240 bp DNA circular 17-JAN-2012
DEFINITION xxxxxx.
KEYWORDS xx.
SOURCE
ORGANISM
FEATURES Location/Qualifiers
xxxx_domain complement(complement(1..145))
/vntifkey="1"
/label=A label
/note="A note"
BASE COUNT 75 a 57 c 42 g 66 t
ORIGIN
1 tttacaaaac gcattttcaa accttgggta ctaccccctt ttaaatatcc gaatacacta
61 ataaacgctc tttcctttta ggtaaacccg ccaatatata ctgatacaca ctgatagttt
121 aaactagatg cagtggccga ccatcagatc tagtaggaaa cagctatgac catgattacg
181 cattacttat ttaagatcaa ccgtaccagt ataccctgcc agcatgatgg aaacctccct
//
显示错误的最小演示程序(假设安装了 Biopython 1.59 和 Python 2.7,并且上述文件以“test.gb”的形式提供:
#!/usr/bin/env python
from Bio import SeqIO
s = SeqIO.read(open("test.gb")), "r"), "genbank")
这崩溃了
raise LocationParserError(location_line)
Bio.GenBank.LocationParserError: complement(1..145)