[Bioperl-l] Bio::AnnotatableI function annotation()
Mark A. Jensen
maj at fortinbras.us
Fri Mar 27 14:10:25 EDT 2009
[missed the list, evidently]
> Hey Govind-
> You are right about that-- if you have time, will you make
> a bug report (http://bugzilla.bioperl.org) stating just that?
> Shouldn't be a problem to fix. (I have a feeling that this
> refactorization was designed precisely to be transparent
> to users.)
> thanks a lot-
> 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:44 PM
> Subject: Re: [Bioperl-l] Bio::AnnotatableI function annotation()
>
>
>> 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