[Bioperl-l] Bio::AnnotatableI function annotation()
Mark A. Jensen
maj at fortinbras.us
Fri Mar 27 13:30:17 EDT 2009
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