sub get_SeqFeatures
{ my $self = shift;
my $tag = shift;
if( !defined $self->{'_as_feat'} ) {
$self->{'_as_feat'} = [];
}
if ($tag) {
return map { $_->primary_tag eq $tag ? $_ : () } @{$self->{'_as_feat'}};
}
else {
return @{$self->{'_as_feat'}};
}} |
sub add_SeqFeature
{ my ($self,@feat) = @_;
$self->{'_as_feat'} = [] unless $self->{'_as_feat'};
foreach my $feat ( @feat ) {
if( !$feat->isa("Bio::SeqFeatureI") ) {
$self->throw("$feat is not a SeqFeatureI and that's what we expect...");
}
$feat->attach_seq($self);
push(@{$self->{'_as_feat'}},$feat);
}
return 1;} |
sub remove_SeqFeatures
{ my $self = shift;
return () unless $self->{'_as_feat'};
my @feats = @{$self->{'_as_feat'}};
$self->{'_as_feat'} = [];
return @feats;
}
1;} |