[Bioperl-l] Graphics Panel

Kevin Brown Kevin.M.Brown at asu.edu
Tue Jan 9 15:32:04 UTC 2007

> > matter what I do with the -description option, I can't get 
> > the locus tag
> > of the gene to show up properly.  Instead I always get the 
> > description
> >
> > sub generic_description {
> >   my $feature = shift;
> >   my $description = $feature->get_tag_values("locus_tag");
> >   return "$description";
> > }
> I don't know if this is causing your problem, but be aware that
> get_tag_values() is meant to be used in array context to return all
> the tag values (there could be more than one). Because you are using
> it in a scalar context, it would be returning the array length
> (probably "1"). If you know there is only one locus_tag (most likely),
> then write:
> my ($description) = $feature->get_tag_values("locus_tag");
> $description ||= 'no locus tag';

Hmm, that is odd.  I use that very call in the other script that
retrieves the GenBank files (code not shown) and it returns the value I
was expecting.  It turns out that after the features get dumped into the
graphics panel, they lose a number of tag values.  I'm not sure why that
is happening.  Basically if I do
print $feature->get_tag_values("locus_tag");
before I push it into add_track I do see the string I want returned from
it as expected, but once I send it off to add_track and it launches the
sub to get the tag, it is no longer there.

The other interesting thing is, I run this script with the same input
file each time and randomly I get an error that it can't find the method
get_tag_values in a Bio::Location::Simple object, but I never pass it
Bio::Location::Simple.  The array is full of Bio::SeqFeature::Generic
objects which I have verified by printing out the object reference type
before putting it in the array of items I'm after.

More information about the Bioperl-l mailing list