Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/Graphics/Glyph/redgreen_box.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1f6dce3d34e0 |
---|---|
1 package Bio::Graphics::Glyph::redgreen_box; | |
2 #$Id: redgreen_box.pm,v 1.4.2.1 2003/07/05 00:32:04 lstein Exp $ | |
3 | |
4 use strict; | |
5 use Bio::Graphics::Glyph::generic; | |
6 use vars '@ISA'; | |
7 @ISA = 'Bio::Graphics::Glyph::generic'; | |
8 | |
9 sub bgcolor { | |
10 my $self = shift; | |
11 $self->{force_bgcolor}; | |
12 } | |
13 | |
14 sub fgcolor { | |
15 my $self = shift; | |
16 return $self->option('border') ? $self->SUPER::fgcolor : $self->{force_bgcolor}; | |
17 } | |
18 | |
19 sub draw { | |
20 my $self = shift; | |
21 my $val = $self->feature->score; | |
22 | |
23 # we're going to force all our parts to share the same colors | |
24 # since the | |
25 my @parts = $self->parts; | |
26 @parts = $self if !@parts && $self->level == 0; | |
27 my @rgb = map {int($_)} HSVtoRGB(120*(1-$val),1,255); | |
28 my $color = $self->panel->translate_color(@rgb); | |
29 $_->{force_bgcolor} = $color foreach @parts; | |
30 | |
31 $self->SUPER::draw(@_); | |
32 } | |
33 | |
34 sub HSVtoRGB ($$$) { | |
35 my ($h,$s,$v)=@_; | |
36 my ($r,$g,$b,$i,$f,$p,$q,$t); | |
37 | |
38 if( $s == 0 ) { | |
39 ## achromatic (grey) | |
40 return ($v,$v,$v); | |
41 } | |
42 | |
43 $h /= 60; ## sector 0 to 5 | |
44 $i = int($h); | |
45 $f = $h - $i; ## factorial part of h | |
46 $p = $v * ( 1 - $s ); | |
47 $q = $v * ( 1 - $s * $f ); | |
48 $t = $v * ( 1 - $s * ( 1 - $f ) ); | |
49 | |
50 if($i<1) { | |
51 $r = $v; | |
52 $g = $t; | |
53 $b = $p; | |
54 } elsif($i<2){ | |
55 $r = $q; | |
56 $g = $v; | |
57 $b = $p; | |
58 } elsif($i<3){ | |
59 $r = $p; | |
60 $g = $v; | |
61 $b = $t; | |
62 } elsif($i<4){ | |
63 $r = $p; | |
64 $g = $q; | |
65 $b = $v; | |
66 } elsif($i<5){ | |
67 $r = $t; | |
68 $g = $p; | |
69 $b = $v; | |
70 } else { | |
71 $r = $v; | |
72 $g = $p; | |
73 $b = $q; | |
74 } | |
75 return ($r,$g,$b); | |
76 } | |
77 | |
78 sub mMin { | |
79 my $n=10000000000000; | |
80 map { $n=($n>$_) ? $_ : $n } @_; | |
81 return($n); | |
82 } | |
83 | |
84 sub mMax { | |
85 my $n=0; | |
86 map { $n=($n<$_) ? $_ : $n } @_; | |
87 return($n); | |
88 } | |
89 | |
90 | |
91 1; | |
92 | |
93 =head1 NAME | |
94 | |
95 Bio::Graphics::Glyph::redgreen_box - The "redgreen_box" glyph | |
96 | |
97 =head1 SYNOPSIS | |
98 | |
99 See L<Bio::Graphics::Panel> and L<Bio::Graphics::Glyph>. | |
100 | |
101 =head1 DESCRIPTION | |
102 | |
103 This glyph is similar to the graded_segments glyph except that it | |
104 generates a green-E<gt>red gradient suitable for use with microarray data. | |
105 A feature score of 0 is full green; a feature score of 1.0 is full | |
106 red; intermediate scores are shades of yellow. | |
107 | |
108 =head2 OPTIONS | |
109 | |
110 The following options are standard among all Glyphs. See | |
111 L<Bio::Graphics::Glyph> for a full explanation. | |
112 | |
113 Option Description Default | |
114 ------ ----------- ------- | |
115 | |
116 -fgcolor Foreground color black | |
117 | |
118 -outlinecolor Synonym for -fgcolor | |
119 | |
120 -bgcolor Background color turquoise | |
121 | |
122 -fillcolor Synonym for -bgcolor | |
123 | |
124 -linewidth Line width 1 | |
125 | |
126 -height Height of glyph 10 | |
127 | |
128 -font Glyph font gdSmallFont | |
129 | |
130 -connector Connector type 0 (false) | |
131 | |
132 -connector_color | |
133 Connector color black | |
134 | |
135 -label Whether to draw a label 0 (false) | |
136 | |
137 -description Whether to draw a description 0 (false) | |
138 | |
139 The following glyph-specific option is recognized: | |
140 | |
141 -border Draw a fgcolor border around 0 (false) | |
142 the box | |
143 | |
144 | |
145 =head1 BUGS | |
146 | |
147 Please report them. | |
148 | |
149 =head1 SEE ALSO | |
150 | |
151 L<Bio::Graphics::Panel>, | |
152 L<Bio::Graphics::Glyph>, | |
153 L<Bio::Graphics::Glyph::arrow>, | |
154 L<Bio::Graphics::Glyph::cds>, | |
155 L<Bio::Graphics::Glyph::crossbox>, | |
156 L<Bio::Graphics::Glyph::diamond>, | |
157 L<Bio::Graphics::Glyph::dna>, | |
158 L<Bio::Graphics::Glyph::dot>, | |
159 L<Bio::Graphics::Glyph::ellipse>, | |
160 L<Bio::Graphics::Glyph::extending_arrow>, | |
161 L<Bio::Graphics::Glyph::generic>, | |
162 L<Bio::Graphics::Glyph::graded_segments>, | |
163 L<Bio::Graphics::Glyph::heterogeneous_segments>, | |
164 L<Bio::Graphics::Glyph::line>, | |
165 L<Bio::Graphics::Glyph::pinsertion>, | |
166 L<Bio::Graphics::Glyph::primers>, | |
167 L<Bio::Graphics::Glyph::rndrect>, | |
168 L<Bio::Graphics::Glyph::segments>, | |
169 L<Bio::Graphics::Glyph::ruler_arrow>, | |
170 L<Bio::Graphics::Glyph::toomany>, | |
171 L<Bio::Graphics::Glyph::transcript>, | |
172 L<Bio::Graphics::Glyph::transcript2>, | |
173 L<Bio::Graphics::Glyph::translation>, | |
174 L<Bio::Graphics::Glyph::triangle>, | |
175 L<Bio::DB::GFF>, | |
176 L<Bio::SeqI>, | |
177 L<Bio::SeqFeatureI>, | |
178 L<Bio::Das>, | |
179 L<GD> | |
180 | |
181 =head1 AUTHOR | |
182 | |
183 Lincoln Stein E<lt>lstein@cshl.orgE<gt> | |
184 | |
185 Copyright (c) 2001 Cold Spring Harbor Laboratory | |
186 | |
187 This library is free software; you can redistribute it and/or modify | |
188 it under the same terms as Perl itself. See DISCLAIMER.txt for | |
189 disclaimers of warranty. | |
190 | |
191 =cut |