package Bio::EnsEMBL::GlyphSet::_repeat;
use strict;
use base qw( Bio::EnsEMBL::GlyphSet_simple );
sub features {
my $self = shift;
## Need to add code to restrict by logic_name and by db!
my $types = $self->my_config( 'types' );
my $logicnames = $self->my_config( 'logicnames' );
my @repeats = sort { $a->seq_region_start <=> $b->seq_region_end }
map { my $t = $_; map { @{ $self->{'container'}->get_all_RepeatFeatures( $t, $_ ) } } @$types }
@$logicnames;
return \@repeats;
}
sub colour_key {
my( $self, $f ) = @_;
return 'repeat';
}
sub image_label {
my( $self, $f ) = @_;
return '', 'invisible';
}
sub title {
my( $self, $f ) = @_;
my($start,$end) = $self->slice2sr( $f->start(), $f->end() );
my $len = $end - $start + 1;
return sprintf "%s; bp: %s; length: %s",
$f->repeat_consensus()->name(),
"$start-$end",
$len;
}
sub tag {
return;
}
sub export_feature {
my $self = shift;
my ($feature) = @_;
my $id = "repeat:$feature->{'dbID'}";
return if $self->{'export_cache'}->{$id};
$self->{'export_cache'}->{$id} = 1;
return $self->_render_text($feature, 'Repeat', undef, { 'source' => $feature->display_id });
}
1 ;