¿Cómo puedo solucionar este misterio BioPerl relacionada?
Pregunta
Estoy usando Ubuntu 10.04 y Perl 5.10.1. El paquete BioPerl tiene algunos guiones, tales como bp_genbank2gff3.pl que convierte los archivos de un formato a formato GenBank GFF3.
El problema: obtener resultados inesperados cuando se utiliza bp_genbank2gff3.pl:. Las funciones de genes se "Name =" en lugar de "locus_tag =" en la columna de la última GFF3
Un miembro de la lista de correo BioPerl querida me dijo que utiliza la última versión del repositorio BioPerl BioPerl y obtiene el resultado correcto ( "locus_tag ="). Tengo una copia nueva, pero no funcionó para mí. Extraño!
Pasos para recrear la situación:
$ 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
A continuación se presenta una línea # 8 de mi GFF3 el resultado:
NC_009789 GenBank gene 665 781 . - 1 ID=EcE24377A_B0001;Dbxref=GeneID:5585816;Name=EcE24377A_B0001
Si bien esta es la misma línea de los resultados de mi colega:
NC_009789 GenBank gene 665 781 . - 1 ID=EcE24377A_B0001;Dbxref=GeneID:5585816;**locus_tag**=EcE24377A_B0001
Tenga en cuenta el "Name =" tag en mi versión (al final de la línea) se sustituye por "locus_tag =" en mis colegas
No tengo idea de lo que está pasando aquí ... misma entrada, presumiblemente mismo guión, pero diferentes salidas (la salida de mi colega se pone es el deseable). Incluso diff
ed los scripts (genbank2gff3.PLS
) que son idénticos.
Algunas ideas? ¿Alguien podría ver si consigue los mismos resultados que yo o mi colega?
Solución
En cuanto a la fuente del script href="http://github.com/bioperl/bioperl-live/blob/master/scripts/Bio-DB-GFF/genbank2gff3.PLS" rel="nofollow :
#?? 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);
Y en 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);
}
Así que parece que el guión está haciendo lo que tiene que hacer?