我正在使用Ubuntu 10.04和Perl 5.10.1。 BioPerl包有一些很好的脚本,比如bp_genbank2gff3.pl,它将文件从genbank格式转换为GFF3格式。
问题:使用bp_genbank2gff3.pl时出现意外结果:基因特征在最后一个GFF3列中得到“Name =”而不是“locus_tag =”。
亲爱的BioPerl邮件列表成员告诉我,他使用BioPerl存储库中的最新BioPerl版本并获得正确的结果(“locus_tag =”)。我得到了一份新的副本,但它对我不起作用。怪异!
重建情况的步骤:
$ cd ~/src
$ git clone http://github.com/bioperl/bioperl-live.git
$ export PERL5LIB="$HOME/src/bioperl-live:$PERL5LIB"
$ cd /tmp
$ wget ftp://ftp.ncbi.nih.gov/genomes/Bacteria/Escherichia_coli_E24377A/NC_009789.gbk
$ ~/src/bioperl-live/scripts/Bio-DB-GFF/genbank2gff3.PLS NC_009789.gbk
以下是我产生的GFF3的第8行:
NC_009789 GenBank gene 665 781 . - 1 ID=EcE24377A_B0001;Dbxref=GeneID:5585816;Name=EcE24377A_B0001
虽然这与我同事的结果相同:
NC_009789 GenBank gene 665 781 . - 1 ID=EcE24377A_B0001;Dbxref=GeneID:5585816;**locus_tag**=EcE24377A_B0001
请注意我的版本中的“Name =”标记(在行尾)被同事中的“locus_tag =”替换
我不知道这里发生了什么......相同的输入,大概相同的脚本,但不同的输出(我的同事获得的输出是理想的输出)。我们甚至diff
编辑了相同的脚本(genbank2gff3.PLS
)。
有什么想法吗? 谁能看到他和我或我的同事得到的结果是否相同?
答案 0 :(得分:3)
#?? should gene_name from /locus_tag,/gene,/product,/transposon=xxx
# be converted to or added as Name=xxx (if not ID= or as well)
## problematic: convert_to_name ($feature); # drops /locus_tag,/gene, tags
convert_to_name($feature);
在convert_to_name
:
elsif ($g->has_tag('locus_tag')) {
($gene_id) = $g->get_tag_values('locus_tag');
$g->remove_tag('locus_tag');
$g->add_tag_value('Name', $gene_id);
}
所以看起来脚本正在做它应该做的事情吗?