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

Govind Chandra govind.chandra at bbsrc.ac.uk
Fri Mar 27 17:09:29 UTC 2009


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
> >
> > 
> 




More information about the Bioperl-l mailing list