[BioPerl-l] Bio::Seq->delete_SeqFeature missing?
Malcolm Cook
Malcolm.Cook@ppgx.com
Thu, 10 May 2001 09:27:02 -0700
Hilmar & Ewan,
I'm converted. Thanks for the discussion.
If I wanted a new Bio::Seq identical in all respects to one at hand, say
held in $oldseq, would I write:
my $newseq = $oldseq->new;
Or do I have to create it as:
my $newseq = Bio::Seq->new;
and then copy attributes one at a time from $oldseq, as:
$newseq->source = $oldseq->source;
etc...
??
And, does flush_SeqFeature simply become the following?
=head2 flush_SeqFeature
Title : flush_SeqFeature - THIS METHOD SEEMS MISSING FROM BIO::SEQ!
Usage : $seq->flush_SeqFeature();
$seq->flush_SeqFeature();
Function: Removes all features from the sequence
Example :
Returns : TRUE on success
Args : none
=cut
sub Bio::Seq::flush_SeqFeature {
my ($self) = @_;
$self->{'_as_feat'} = [];
return 1;
}
Cheers,
Malcolm
>-----Original Message-----
>From: bioperl-l-admin@bioperl.org [mailto:bioperl-l-admin@bioperl.org]On
>Behalf Of Hilmar Lapp
>Sent: Thursday, May 10, 2001 12:15 AM
>To: Malcolm Cook
>Cc: Ewan Birney; Bioperl
>Subject: Re: [Bioperl-l] Bio::Seq->delete_SeqFeature missing?
>
>
>Malcolm Cook wrote:
>>
>> Ewan, before I got your advice, I wrote, modelled on add_SeqFeature, the
>> following:
>>
>> =head2 delete_SeqFeature
>>
>> Title : delete_SeqFeature - THIS METHOD SEEMS MISSING FROM BIO::SEQ!
>> Usage : $seq->delete_SeqFeature($feat);
>> $seq->delete_SeqFeature(@feat);
>>
>> Function: Deletes the given feature object (or each of an array
>of feature
>> objects) from the feature array of this sequence. The object passed is
>> required to implement the Bio::SeqFeatureI interface.
>>
>
>I agree with Ewan. The implementation works, but it needs to pull
>out every feature anyway and also rebuilds the array. If you have
>your own way of screening features by some property, this is even
>inefficient. I think the easiest and as compared to other modules
>most 'standard' way is to flush them all using flush_SeqFeature()
>(which has to be added) and then re-add as you want. So, e.g. if
>you're screening for primary tag, the code becomes
>
>my @feat = $seq->all_SeqFeature();
>$seq->flush_SeqFeature();
>$seq->add_SeqFeature((grep { $_->primary_tag() eq "some_tag"; }
>@feat));
>
> Hilmar
>
>--
>-----------------------------------------------------------------
>Hilmar Lapp email: hilmarl@yahoo.com
>GNF, San Diego, Ca. 92122 phone: +1 858 812 1757
>-----------------------------------------------------------------
>_______________________________________________
>Bioperl-l mailing list
>Bioperl-l@bioperl.org
>http://bioperl.org/mailman/listinfo/bioperl-l