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