我如何解决这个与BioPerl相关的谜团?

时间:2010-09-18 15:44:37

标签: perl bioperl

我正在使用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)。

有什么想法吗? 谁能看到他和我或我的同事得到的结果是否相同?

1 个答案:

答案 0 :(得分:3)

查看script source

#?? 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);
}

所以看起来脚本正在做它应该做的事情吗?