Bio-Graphics
view release on metacpan or search on metacpan
lib/Bio/Graphics/Glyph/transcript.pm view on Meta::CPAN
$self->SUPER::draw_component(@_);
}
sub part_label_merge {
my $self = shift;
my $label = $self->SUPER::part_label_merge;
return $label if defined $label;
1;
}
sub draw_connectors {
my $self = shift;
my $gd = shift;
my ($left,$top) = @_;
$self->SUPER::draw_connectors($gd,$left,$top);
my @parts = $self->parts; # or return;
# H'mmm. No parts. Must be in an intron, so draw intron
# spanning entire range
if (!@parts) {
return unless $self->feature_has_subparts;
my($x1,$y1,$x2,$y2) = $self->bounds(0,0);
$self->_connector($gd,$left,$top,$x1,$y1,$x1,$y2,$x2,$y1,$x2,$y2);
@parts = ($self);
}
# flip argument makes this confusing
# certainly there's a simpler way to express this idea
my $strand = $self->feature->strand;
my ($first,$last) = ($parts[0],$parts[-1]);
($first,$last) = ($last,$first) if exists $self->{flip};
if ($strand >= 0) {
my($x1,$y1,$x2,$y2) = $last->bounds(@_);
my $center = ($y2+$y1)/2;
$self->{flip} ?
$self->arrow($gd,$x1,$x1-$self->arrow_length,$center)
:
$self->arrow($gd,$x2,$x2+$self->arrow_length,$center);
}
elsif ($strand < 0) {
my($x1,$y1,$x2,$y2) = $first->bounds(@_);
my $center = ($y2+$y1)/2;
$self->{flip } ?
$self->arrow($gd,$x2,$x2+$self->arrow_length,$center)
:
$self->arrow($gd,$x1,$x1 - $self->arrow_length,$center);
}
}
sub arrow_length {
my $self = shift;
return $self->option('arrow_length') || 8;
}
# override option() for force the "hat" type of connector
sub connector {
my $self = shift;
return $self->SUPER::connector(@_) if $self->all_callbacks;
return ($self->option('connector') || 'hat');
}
1;
__END__
=head1 NAME
Bio::Graphics::Glyph::transcript - The "transcript" glyph
=head1 SYNOPSIS
See L<Bio::Graphics::Panel> and L<Bio::Graphics::Glyph>.
=head1 DESCRIPTION
This glyph is used for drawing transcripts. It is essentially a
"segments" glyph in which the connecting segments are hats. The
direction of the transcript is indicated by an arrow attached to the
end of the glyph.
=head2 OPTIONS
The following options are standard among all Glyphs. See
L<Bio::Graphics::Glyph> for a full explanation.
Option Description Default
------ ----------- -------
-fgcolor Foreground color black
-outlinecolor Synonym for -fgcolor
-bgcolor Background color turquoise
-fillcolor Synonym for -bgcolor
-linewidth Line width 1
-height Height of glyph 10
-font Glyph font gdSmallFont
-connector Connector type 0 (false)
-connector_color
Connector color black
-label Whether to draw a label 0 (false)
-description Whether to draw a description 0 (false)
-hilite Highlight color undef (no color)
In addition, the alignment glyph recognizes the following
glyph-specific options:
Option Description Default
( run in 0.756 second using v1.01-cache-2.11-cpan-39bf76dae61 )