oops, this directory was missed...
[cview.git] / lib / CXGN / ChrMarkerImage.pm
blobb6ec673220b04b47cb21088e7675fb6469f68b59
1 =head1 NAME
3 CXGN::Cview::ChrMarkerImage - a class for drawing small chromosome image wit a specific marker hilited.
5 =head1 DESCRIPTION
7 Inherits from L<CXGN::Cview::MapImage>.
9 =head1 AUTHOR(S)
11 Lukas Mueller (lam87@cornell.edu)
12 Naama Menda (nm249@cornell.edu)
14 =head1 FUNCTIONS
17 =cut
21 use strict;
23 use CXGN::Cview;
24 use CXGN::Cview::Chromosome;
25 #use CXGN::Cview::Cview_data_adapter;
26 use CXGN::Cview::MapImage;
27 use File::Temp qw / tempfile /;
28 use File::Basename qw / basename /;
30 package CXGN::Cview::ChrMarkerImage;
32 use base qw/ CXGN::Cview::MapImage /;
34 =head2 new
36 Usage: my $chromosome= CXGN::Cview::ChrmarkerImage->new("map name", width,height,$dbh, $lg_name, $map, $marker_name);
37 Desc:
38 Ret:
39 Args: name of a map, width and height of the image in pixles, linkage group name, map object (my $map=CXGN::Map->new($dbh,$map_version_id);), $marker_name.
40 Side Effects:
41 Example:
43 =cut
45 sub new {
46 my $class=shift;
47 my $name = shift;
48 my $width = shift;
49 my $height = shift;
50 my $self= $class->SUPER::new($name, $width, $height);
51 my $dbh=shift;
52 my $lg_name= shift;
53 my $map = shift;
54 my $marker_name= shift;
55 $self->set_dbh($dbh);
56 $self->set_lg_name($lg_name);
57 $self->set_map($map);
58 $self->set_marker_name($marker_name);
60 my $chromosome = $map->get_chromosome($lg_name);
61 # my $chromosome= CXGN::Cview::Chromosome->new($self->get_lg_name(), 100,50, 25 );
62 # CXGN::Cview::Cview_data_adapter::fetch_chromosome($self->get_dbh(), $chromosome, $self->get_map(), $self->get_lg_name());
63 $chromosome->set_horizontal_offset(50);
64 $chromosome->set_vertical_offset(25);
65 $chromosome->set_height(100);
66 $chromosome->set_caption($self->get_lg_name);
67 $chromosome->set_width(12);
68 my $map_version_id= $self->get_map()->get_id();
69 my $marker_name= $self->get_marker_name();
70 my $lg_name=$self->get_lg_name();
71 $chromosome->set_url("/cview/view_chromosome.pl?map_version_id=$map_version_id&amp;chr_nr=$lg_name&amp;hilite=$marker_name");
73 my @markers= $chromosome->get_markers();
75 foreach my $m(@markers) {
76 if ($m->get_name() eq $self->get_marker_name()) {
77 $m->hilite();
78 $m->set_label_spacer(20);
80 else { $m->hide_label(); }
81 $m->set_color(150, 80, 50);
84 $self->add_chromosome($chromosome);
86 return $self;
90 =head2 get_image_filename
92 Usage: my ($image_path, $image_url)=$chromosome->get_image_filename();
93 Desc: returns a tmp .png file of the chromosome image object
94 Ret: $image_path, $image_url
95 Args:
96 Side Effects:
97 Example:
99 =cut
101 sub get_image_filename {
102 my $self=shift;
103 my $vhost_conf=CXGN::VHost->new();
104 my $dir = $vhost_conf->get_conf('basepath').$vhost_conf->get_conf('tempfiles_subdir')."/cview/";
106 my $template = 'tempXXXX'; #not needed. The function tempfile seems to generate a default TEMPLATE 'XXXXXXXXXX$suffix'
107 my $suffix = '.png';
108 my ($fh, $image_path) = File::Temp::tempfile( DIR => $dir,
109 SUFFIX => $suffix
112 #my $filename = time().".$$.png";
114 my $filename = File::Basename::basename($image_path);
116 print STDERR "IMAGE PATH: $image_path\n";
117 my $image_url = $vhost_conf->get_conf('tempfiles_subdir')."/cview/$filename";
119 $self -> render_png_file($image_path);
120 return ($image_path, $image_url);
124 =head2 get_dbh
126 Usage:
127 Desc:
128 Ret:
129 Args:
130 Side Effects:
131 Example:
133 =cut
135 sub get_dbh {
136 my $self=shift;
137 return $self->{dbh};
141 =head2 set_dbh
143 Usage:
144 Desc:
145 Ret:
146 Args:
147 Side Effects:
148 Example:
150 =cut
152 sub set_dbh {
153 my $self=shift;
154 $self->{dbh}=shift;
159 =head2 get_lg_name
161 Usage:
162 Desc:
163 Ret:
164 Args:
165 Side Effects:
166 Example:
168 =cut
170 sub get_lg_name {
171 my $self=shift;
172 return $self->{lg_name};
176 =head2 set_lg_name
178 Usage:
179 Desc:
180 Ret:
181 Args:
182 Side Effects:
183 Example:
185 =cut
187 sub set_lg_name {
188 my $self=shift;
189 $self->{lg_name}=shift;
192 =head2 get_map
194 Usage:
195 Desc:
196 Ret:
197 Args:
198 Side Effects:
199 Example:
201 =cut
203 sub get_map {
204 my $self=shift;
205 return $self->{map};
209 =head2 set_map
211 Usage:
212 Desc:
213 Ret:
214 Args:
215 Side Effects:
216 Example:
218 =cut
220 sub set_map {
221 my $self=shift;
222 $self->{map}=shift;
226 =head2 get_marker_name
228 Usage:
229 Desc:
230 Ret:
231 Args:
232 Side Effects:
233 Example:
235 =cut
237 sub get_marker_name {
238 my $self=shift;
239 return $self->{marker_name};
243 =head2 set_marker_name
245 Usage:
246 Desc:
247 Ret:
248 Args:
249 Side Effects:
250 Example:
252 =cut
254 sub set_marker_name {
255 my $self=shift;
256 $self->{marker_name}=shift;
261 return 1;