annotate variant_effect_predictor/Bio/Graphics/Glyph/transcript.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 package Bio::Graphics::Glyph::transcript;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2 # $Id: transcript.pm,v 1.12.2.1 2003/07/05 00:32:04 lstein Exp $
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5 use Bio::Graphics::Glyph::segments;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 use vars '@ISA';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 @ISA = qw( Bio::Graphics::Glyph::segments);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 sub pad_left {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 my $pad = $self->SUPER::pad_left;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12 return $pad if $self->{level} > 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 my $strand = $self->feature->strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 return $pad unless defined $strand && $strand < 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15 return $self->arrow_length > $pad ? $self->arrow_length : $pad;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18 sub pad_right {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20 my $pad = $self->SUPER::pad_right;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 return $pad if $self->{level} > 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22 my $strand = $self->feature->strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 return $pad unless defined($strand) && $strand > 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24 return $self->arrow_length > $pad ? $self->arrow_length : $pad;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 sub draw_component {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 return unless $self->level > 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 $self->SUPER::draw_component(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 sub draw_connectors {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 my $gd = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 my ($left,$top) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 $self->SUPER::draw_connectors($gd,$left,$top);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 my @parts = $self->parts;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 # H'mmm. No parts. Must be in an intron, so draw intron
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 # spanning entire range
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 if (!@parts) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 my($x1,$y1,$x2,$y2) = $self->bounds(0,0);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 $self->_connector($gd,$left,$top,$x1,$y1,$x1,$y2,$x2,$y1,$x2,$y2);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 @parts = $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 # flip argument makes this confusing
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 # certainly there's a simpler way to express this idea
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 my $strand = $self->feature->strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 my ($first,$last) = ($parts[0],$parts[-1]);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 ($first,$last) = ($last,$first) if exists $self->{flip};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 if ($strand >= 0) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 my($x1,$y1,$x2,$y2) = $last->bounds(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 my $center = ($y2+$y1)/2;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 $self->{flip} ?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 $self->arrow($gd,$x1,$x1-$self->arrow_length,$center)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 $self->arrow($gd,$x2,$x2+$self->arrow_length,$center);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 my($x1,$y1,$x2,$y2) = $first->bounds(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 my $center = ($y2+$y1)/2;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 $self->{flip } ?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 $self->arrow($gd,$x2,$x2+$self->arrow_length,$center)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 $self->arrow($gd,$x1,$x1 - $self->arrow_length,$center);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 sub arrow_length {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 return $self->option('arrow_length') || 8;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 # override option() for force the "hat" type of connector
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 sub connector {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 return $self->SUPER::connector(@_) if $self->all_callbacks;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 return ($self->option('connector') || 'hat');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 __END__
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 Bio::Graphics::Glyph::transcript - The "transcript" glyph
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 See L<Bio::Graphics::Panel> and L<Bio::Graphics::Glyph>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 This glyph is used for drawing transcripts. It is essentially a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 "segments" glyph in which the connecting segments are hats. The
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 direction of the transcript is indicated by an arrow attached to the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 end of the glyph.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 =head2 OPTIONS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 The following options are standard among all Glyphs. See
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 L<Bio::Graphics::Glyph> for a full explanation.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 Option Description Default
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 ------ ----------- -------
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 -fgcolor Foreground color black
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 -outlinecolor Synonym for -fgcolor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 -bgcolor Background color turquoise
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 -fillcolor Synonym for -bgcolor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 -linewidth Line width 1
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 -height Height of glyph 10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 -font Glyph font gdSmallFont
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 -connector Connector type 0 (false)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 -connector_color
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 Connector color black
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 -label Whether to draw a label 0 (false)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 -description Whether to draw a description 0 (false)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 In addition, the alignment glyph recognizes the following
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 glyph-specific options:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 Option Description Default
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 ------ ----------- -------
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 -arrow_length Length of the directional 8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 arrow.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 =head1 BUGS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 Please report them.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 =head1 SEE ALSO
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 L<Bio::Graphics::Panel>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 L<Bio::Graphics::Glyph>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 L<Bio::Graphics::Glyph::arrow>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 L<Bio::Graphics::Glyph::cds>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 L<Bio::Graphics::Glyph::crossbox>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 L<Bio::Graphics::Glyph::diamond>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 L<Bio::Graphics::Glyph::dna>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 L<Bio::Graphics::Glyph::dot>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 L<Bio::Graphics::Glyph::ellipse>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 L<Bio::Graphics::Glyph::extending_arrow>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 L<Bio::Graphics::Glyph::generic>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 L<Bio::Graphics::Glyph::graded_segments>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 L<Bio::Graphics::Glyph::heterogeneous_segments>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 L<Bio::Graphics::Glyph::line>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 L<Bio::Graphics::Glyph::pinsertion>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 L<Bio::Graphics::Glyph::primers>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 L<Bio::Graphics::Glyph::rndrect>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 L<Bio::Graphics::Glyph::segments>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 L<Bio::Graphics::Glyph::ruler_arrow>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 L<Bio::Graphics::Glyph::toomany>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 L<Bio::Graphics::Glyph::transcript>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 L<Bio::Graphics::Glyph::transcript2>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 L<Bio::Graphics::Glyph::translation>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 L<Bio::Graphics::Glyph::triangle>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 L<Bio::DB::GFF>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 L<Bio::SeqI>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 L<Bio::SeqFeatureI>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 L<Bio::Das>,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 L<GD>
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 =head1 AUTHOR
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 Lincoln Stein E<lt>lstein@cshl.orgE<gt>
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 Copyright (c) 2001 Cold Spring Harbor Laboratory
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 This library is free software; you can redistribute it and/or modify
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 it under the same terms as Perl itself. See DISCLAIMER.txt for
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 disclaimers of warranty.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 =cut