Mercurial > repos > willmclaren > ensembl_vep
diff variant_effect_predictor/Bio/Graphics/Glyph/pinsertion.pm @ 0:21066c0abaf5 draft
Uploaded
author | willmclaren |
---|---|
date | Fri, 03 Aug 2012 10:04:48 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/Graphics/Glyph/pinsertion.pm Fri Aug 03 10:04:48 2012 -0400 @@ -0,0 +1,127 @@ +package Bio::Graphics::Glyph::pinsertion; +# package to use for drawing P insertion as a triangle +# p insertion is a point (one base). + +use strict; +use GD; +use vars '@ISA'; +@ISA = 'Bio::Graphics::Glyph::generic'; +use Bio::Graphics::Glyph::generic; + +sub box { + my $self = shift; + my $half = $self->insertion_width/2; + return ($self->left-$half,$self->top,$self->right+$half,$self->bottom); +} + +sub insertion_width { + my $self = shift; + return $self->option('insertion_width') || 6; +} + +# override draw method +sub draw { + my $self = shift; + + my $gd = shift; + my ($left,$top) = @_; + my ($x1,$y1,$x2,$y2) = $self->calculate_boundaries(@_); + + my $height = $self->height; + + my $half = $self->insertion_width/2; + + my $fill = $self->bgcolor; + + my $poly = GD::Polygon->new; + + if ($self->feature->strand > 0) { #plus strand + $poly->addPt($x1 - $half, $y1); + $poly->addPt($x1 + ($half), $y1); + $poly->addPt($x1, $y2); #pointer down + } else { + $poly->addPt($x1, $y1); #pointer up + $poly->addPt($x1 - $half, $y2); + $poly->addPt($x1 + ($half), $y2); + } + $gd->filledPolygon($poly, $fill); + $gd->polygon($poly, $fill); + + # add a label if requested + $self->draw_label($gd,$left,$top) if $self->option('label'); + $self->draw_description($gd,$left,$top) if $self->option('description'); +} + + +1; + +=head1 NAME + +Bio::Graphics::Glyph::pinsertion - The "Drosophila P-element Insertion" glyph + +=head1 SYNOPSIS + + See L<Bio::Graphics::Panel> and L<Bio::Graphics::Glyph>. + +=head1 DESCRIPTION + +This glyph was designed to show P-element insertions in the Drosophila +genome, but in fact is suitable for any type of zero-width feature. +Also see the triangle glyph. + +=head2 OPTIONS + +In addition to the generic options, this glyph recognizes: + + Option Name Description Default + ----------- ----------- ------- + + -insertion_width Width of glyph in pixels 3 + +=head1 BUGS + +Please report them. + +=head1 SEE ALSO + +L<Bio::Graphics::Panel>, +L<Bio::Graphics::Glyph>, +L<Bio::Graphics::Glyph::arrow>, +L<Bio::Graphics::Glyph::cds>, +L<Bio::Graphics::Glyph::crossbox>, +L<Bio::Graphics::Glyph::diamond>, +L<Bio::Graphics::Glyph::dna>, +L<Bio::Graphics::Glyph::dot>, +L<Bio::Graphics::Glyph::ellipse>, +L<Bio::Graphics::Glyph::extending_arrow>, +L<Bio::Graphics::Glyph::generic>, +L<Bio::Graphics::Glyph::graded_segments>, +L<Bio::Graphics::Glyph::heterogeneous_segments>, +L<Bio::Graphics::Glyph::line>, +L<Bio::Graphics::Glyph::pinsertion>, +L<Bio::Graphics::Glyph::primers>, +L<Bio::Graphics::Glyph::rndrect>, +L<Bio::Graphics::Glyph::segments>, +L<Bio::Graphics::Glyph::ruler_arrow>, +L<Bio::Graphics::Glyph::toomany>, +L<Bio::Graphics::Glyph::transcript>, +L<Bio::Graphics::Glyph::transcript2>, +L<Bio::Graphics::Glyph::translation>, +L<Bio::Graphics::Glyph::triangle>, +L<Bio::DB::GFF>, +L<Bio::SeqI>, +L<Bio::SeqFeatureI>, +L<Bio::Das>, +L<GD> + +=head1 AUTHOR + +Allen Day E<lt>day@cshl.orgE<gt>, Shengqiang Shu E<lt>sshu@bdgp.lbl.govE<gt> + +Copyright (c) 2001 Cold Spring Harbor Laboratory, BDGP + +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. + +=cut