package EnsEMBL::Web::Text::Feature;
use strict;
use warnings;
no warnings "uninitialized";
sub new {
return bless {'__raw__'=>$_[1],'__extra__'=>{} },$_[0];
}
sub seqname { my $self = shift; (my $T = $self->_seqname) =~s/^chr//; return $T; }
sub start { my $self = shift; return $self->{'start'}; }
sub end { my $self = shift; return $self->{'end'}; }
sub hstart { return undef; }
sub hend { return undef; }
sub hstrand { return undef; }
sub id { my $self = shift; return undef; }
sub _strand {
my($self,$str) = @_;
return $str eq '-' ? -1 : ( $str eq '+' ? 1 : 0 ) ;
}
sub seq_region_start { return shift->rawstart; }
sub seq_region_end { return shift->rawend; }
sub seq_region_strand { return shift->strand; }
sub map {
my( $self, $slice ) = @_;
my $chr = $self->seqname();
$chr=~s/^chr//;
return () unless $chr eq $slice->seq_region_name;
my $start = $self->rawstart();
my $slice_end = $slice->end();
return () unless $start < $slice_end;
my $end = $self->rawend();
my $slice_start = $slice->start();
return () unless $slice_start < $end;
$self->slide( 1 - $slice_start );
return $self;
}
sub strand { return undef; }
sub type { return undef; }
sub note { return undef ;}
sub score { return undef; }
sub link { return undef; }
sub extra_data { return $_[0]{__extra__}; }
1;