[Bioperl-l] Bio::AnnotatableI function annotation()

Govind Chandra govind.chandra at bbsrc.ac.uk
Fri Mar 27 13:44:31 EDT 2009


Hi Mark,
Will it be unfair to say that the documentation as well as the
implementation are confusing. SeqFeature::Generic should cause an error
when annotation() is called on it if it cannot do the right thing. For
the time being I will stick with the old ways (has_tag etc.). Good to
know they are not deprecated in the way I intend to use them (via
SeqFeature::Generic).
Cheers
Govind



On Fri, 2009-03-27 at 13:30 -0400, Mark A. Jensen wrote:
> Hey Govind--
> You're right-- SeqFeature::Generic object inherits from 
> AnnotatableI-- but the *_tags_* methods are now
> SeqFeature::Generic methods--ie, you can use these
> on features, and they are no longer hitting AnnotableI.
> It appears that the feature's AnnotationCollection doesn't
> even get loaded now. 
> [developer out there like to chime in?]
> cheers, 
> Mark
> ----- Original Message ----- 
> From: "Govind Chandra" <govind.chandra at bbsrc.ac.uk>
> To: "Mark A. Jensen" <maj at fortinbras.us>
> Cc: <bioperl-l at lists.open-bio.org>
> Sent: Friday, March 27, 2009 1:09 PM
> Subject: [Bioperl-l] Bio::AnnotatableI function annotation()
> 
> 
> > Thanks Mark,
> > 
> > Sorry for not putting a proper subject in the last post.
> > 
> > What you suggest is what I have been doing for a long time. I am just
> > trying to alter my code to conform to the latest bioperl version and ran
> > into this issue. I could be wrong (I am more a user rather than writer
> > of modules) but since $feature->annotation() does not result in an error
> > I think $feature is-a Bio::AnnotatableI as well.
> > 
> > Cheers
> > 
> > Govind
> > 
> > 
> > 
> > On Fri, 2009-03-27 at 12:17 -0400, Mark A. Jensen wrote:
> >> Hi Govind-
> >> 
> >> As near as I can tell, the *_tags methods are deprecated for
> >> Bio::AnnotatableI objects, but these methods are available
> >> off the SeqFeatureI objects themselves: i.e., rather than
> >> 
> >> >  $ac=$feature->annotation();
> >> >  $temp1=$ac->get_Annotations("locus_tag");
> >> 
> >> do
> >> 
> >>  $temp1 = $feature->get_tag_values("locus_tag");
> >> 
> >> directly.
> >> 
> >> hope it helps -
> >> Mark
> >> 
> >> ----- Original Message ----- 
> >> From: "Govind Chandra" <govind.chandra at bbsrc.ac.uk>
> >> To: <bioperl-l at lists.open-bio.org>
> >> Sent: Friday, March 27, 2009 11:26 AM
> >> Subject: Re: [Bioperl-l] Bioperl-l Digest, Vol 71, Issue 15
> >> 
> >> 
> >> > Hi,
> >> >
> >> > The code below
> >> >
> >> >
> >> > ====== code begins =======
> >> > #use strict;
> >> > use Bio::SeqIO;
> >> >
> >> > $infile='NC_000913.gbk';
> >> > my $seqio=Bio::SeqIO->new(-file => $infile);
> >> > my $seqobj=$seqio->next_seq();
> >> > my @features=$seqobj->all_SeqFeatures();
> >> > my $count=0;
> >> > foreach my $feature (@features) {
> >> >  unless($feature->primary_tag() eq 'CDS') {next;}
> >> >  print($feature->start(),"   ", $feature->end(), " 
> >> > ",$feature->strand(),"\n");
> >> >  $ac=$feature->annotation();
> >> >  $temp1=$ac->get_Annotations("locus_tag");
> >> >  @temp2=$ac->get_Annotations();
> >> >  print("$temp1   $temp2[0] @temp2\n");
> >> >  if($count++ > 5) {last;}
> >> > }
> >> >
> >> > print(ref($ac),"\n");
> >> > exit;
> >> >
> >> > ======= code ends ========
> >> >
> >> > produces the output
> >> >
> >> > ========== output begins ========
> >> >
> >> > 190   255   1
> >> > 0
> >> > 337   2799   1
> >> > 0
> >> > 2801   3733   1
> >> > 0
> >> > 3734   5020   1
> >> > 0
> >> > 5234   5530   1
> >> > 0
> >> > 5683   6459   -1
> >> > 0
> >> > 6529   7959   -1
> >> > 0
> >> > Bio::Annotation::Collection
> >> >
> >> > =========== output ends ==========
> >> >
> >> > $ac is-a Bio::Annotation::Collection but does not actually contain any
> >> > annotation from the feature. Is this how it should be? I cannot figure
> >> > out what is wrong with the script. Earlier I used to use has_tag(),
> >> > get_tag_values() etc. but the documentation says these are deprecated.
> >> >
> >> > Perl is 5.8.8. BioPerl version is 1.6 (installed today). Output of uname
> >> > -a is
> >> >
> >> > Linux n61347 2.6.18-92.1.6.el5 #1 SMP Fri Jun 20 02:36:06 EDT 2008
> >> > x86_64 x86_64 x86_64 GNU/Linux
> >> >
> >> > Thanks in advance for any help.
> >> >
> >> > Govind
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > Bioperl-l mailing list
> >> > Bioperl-l at lists.open-bio.org
> >> > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> >> >
> >> > 
> >> 
> > 
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at lists.open-bio.org
> > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> > 
> >




More information about the Bioperl-l mailing list