| Bio-Graphics documentation | Contained in the Bio-Graphics distribution. |
Bio::Graphics::Glyph::three_letters - DAS-compatible package to use for drawing a line of groups of three letters
See L<Bio::Graphics::Panel> and L<Bio::Graphics::Glyph>.
This glyph draws groups of three letters separated by horizontal lines.
In addition to the common options, the following glyph-specific options are recognized:
Option Description Default
------ ----------- -------
-text The three letters to show "CAG"
-width Width of one letter group 20
-interval Interval between 10
letter groups
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
Vsevolod (Simon) Ilyushchenko <simonf@cshl.edu>.
Copyright (c) 2004 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.
| Bio-Graphics documentation | Contained in the Bio-Graphics distribution. |
package Bio::Graphics::Glyph::three_letters; # DAS-compatible package to use for drawing a line of groups of three letters # $Id: three_letters.pm,v 1.1 2008-12-08 23:18:43 lstein Exp $ # Non object-oriented utilities used here-and-there in Bio::Graphics modules
use strict; use base qw(Bio::Graphics::Glyph::repeating_shape); sub pad_top { my $self = shift; my $top = $self->SUPER::pad_top; my $extra = 0.2 * $self->font->height; return $top + $extra; } sub default_interval { return 20; } sub default_text { return "CAG"; } sub draw_repeating_shape { my ($self, $gd, $x1, $y1, $x2, $y2, $fg) = @_; my $text = defined $self->option('text') ? $self->option('text') : $self->default_text(); while (length $text < 3) { $text .= " "; } $text = substr($text,0,3); my @letters = split //, $text; my $oneThird = ($x2-$x1) / 3; my $secondLetterX = $x1 + $oneThird; my $thirdLetterX = $x1 + 2*$oneThird; my $font = $self->option('labelfont') || $self->font; $gd->string($font, $x1, $y2-$font->height, $letters[0], $self->fontcolor); $gd->string($font, $secondLetterX, $y2-1.7*$font->height, $letters[1], $self->fontcolor); $gd->string($font, $thirdLetterX, $y2-$font->height, $letters[2], $self->fontcolor); } 1; __END__