Bio::Graphics::Glyph
transcript2
Toolbar
Summary
Bio::Graphics::Glyph::transcript2 - The "transcript2" glyph
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
Description
This glyph is used for drawing transcripts. It is like "transcript"
except that if there is sufficient room the terminal exon is shaped
like an arrow in order to indicate the direction of transcription. If
there isn't enough room, a small arrow is drawn.
The following options are standard among all Glyphs. See
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)
-strand_arrow Whether to indicate 0 (false)
strandedness
In addition, the alignment glyph recognizes the following
glyph-specific options:
Option Description Default
------ ----------- -------
-arrow_length Length of the directional 8
arrow.
Methods
bump | No description | Code |
draw_component | No description | Code |
draw_connectors | No description | Code |
pad_left | No description | Code |
pad_right | No description | Code |
Methods description
None available.
Methods code
sub bump
{ my $self = shift;
return $self->SUPER::bump(@_) if $self->all_callbacks;
return 0; }
1;
__END__ } |
sub draw_component
{ my $self = shift;
return unless $self->level > 0;
my $gd = shift;
my ($left,$top) = @_;
my @rect = $self->bounds(@_);
my $width = abs($rect[2] - $rect[0]);
my $filled = defined($self->{partno}) && $width >= MIN_WIDTH_FOR_ARROW;
if ($filled) {
my $f = $self->feature;
my $strand = $f->strand;
my ($first,$last) = ($self->{partno} == 0 , $self->{partno} == $self->{total_parts}-1);
($first,$last) = ($last,$first) if $self->{flip};
if ($strand < 0 && $first) { $self->filled_arrow($gd,-1,@rect);
} elsif ($strand >= 0 && $last) { $self->filled_arrow($gd,+1,@rect);
} else {
$self->SUPER::draw_component($gd,@_);
}
}
else {
$self->SUPER::draw_component($gd,@_);
} } |
sub draw_connectors
{ my $self = shift;
my ($gd,$dx,$dy) = @_;
my $part;
my $strand = $self->feature->strand;
$strand *= -1 if $self->{flip}; if (my @parts = $self->parts) {
$part = $strand >= 0 ? $parts[-1] : $parts[0];
} else {
my($x1,$y1,$x2,$y2) = $self->bounds(0,0);
$self->_connector($gd,$dx,$dy,$x1,$y1,$x1,$y2,$x2,$y1,$x2,$y2);
$part = $self;
}
my @rect = $part->bounds();
my $width = abs($rect[2] - $rect[0]);
my $filled = $width >= MIN_WIDTH_FOR_ARROW;
if ($filled) {
$self->Bio::Graphics::Glyph::generic::draw_connectors(@_);
} else {
$self->SUPER::draw_connectors(@_);
} } |
sub pad_left
{ my $self = shift;
my $pad = $self->Bio::Graphics::Glyph::generic::pad_left;
return $pad unless ($self->feature->strand||0) < 0; my $first = ($self->parts)[0] || $self;
my @rect = $first->bounds();
my $width = abs($rect[2] - $rect[0]);
return $self->SUPER::pad_left if $width < MIN_WIDTH_FOR_ARROW;
return $pad; } |
sub pad_right
{ my $self = shift;
my $pad = $self->Bio::Graphics::Glyph::generic::pad_right;
return $pad if $self->{level} > 0;
my $last = ($self->parts)[-1] || $self;
my @rect = $last->bounds();
my $width = abs($rect[2] - $rect[0]);
return $self->SUPER::pad_right if $width < MIN_WIDTH_FOR_ARROW;
return $pad } |
General documentation
Please report them.
Bio::Graphics::Panel,
Bio::Graphics::Glyph,
Bio::Graphics::Glyph::arrow,
Bio::Graphics::Glyph::cds,
Bio::Graphics::Glyph::crossbox,
Bio::Graphics::Glyph::diamond,
Bio::Graphics::Glyph::dna,
Bio::Graphics::Glyph::dot,
Bio::Graphics::Glyph::ellipse,
Bio::Graphics::Glyph::extending_arrow,
Bio::Graphics::Glyph::generic,
Bio::Graphics::Glyph::graded_segments,
Bio::Graphics::Glyph::heterogeneous_segments,
Bio::Graphics::Glyph::line,
Bio::Graphics::Glyph::pinsertion,
Bio::Graphics::Glyph::primers,
Bio::Graphics::Glyph::rndrect,
Bio::Graphics::Glyph::segments,
Bio::Graphics::Glyph::ruler_arrow,
Bio::Graphics::Glyph::toomany,
Bio::Graphics::Glyph::transcript,
Bio::Graphics::Glyph::transcript2,
Bio::Graphics::Glyph::translation,
Bio::Graphics::Glyph::triangle,
Bio::DB::GFF,
Bio::SeqI,
Bio::SeqFeatureI,
Bio::Das,
GD
Lincoln Stein <lstein@cshl.org>
Copyright (c) 2001 Cold Spring Harbor Laboratory
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself. See DISCLAIMER.txt for
disclaimers of warranty.