3 CXGN::Cview::ChrMarkerImage - a class for drawing small chromosome image wit a specific marker hilited.
7 Inherits from L<CXGN::Cview::MapImage>.
11 Lukas Mueller (lam87@cornell.edu)
12 Naama Menda (nm249@cornell.edu)
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 /;
36 Usage: my $chromosome= CXGN::Cview::ChrmarkerImage->new("map name", width,height,$dbh, $lg_name, $map, $marker_name);
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.
50 my $self= $class->SUPER::new
($name, $width, $height);
54 my $marker_name= shift;
56 $self->set_lg_name($lg_name);
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&chr_nr=$lg_name&hilite=$marker_name");
73 my @markers= $chromosome->get_markers();
75 foreach my $m(@markers) {
76 if ($m->get_name() eq $self->get_marker_name()) {
78 $m->set_label_spacer(20);
80 else { $m->hide_label(); }
81 $m->set_color(150, 80, 50);
84 $self->add_chromosome($chromosome);
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
101 sub get_image_filename
{
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'
108 my ($fh, $image_path) = File
::Temp
::tempfile
( DIR
=> $dir,
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);
172 return $self->{lg_name
};
189 $self->{lg_name
}=shift;
226 =head2 get_marker_name
237 sub get_marker_name
{
239 return $self->{marker_name
};
243 =head2 set_marker_name
254 sub set_marker_name
{
256 $self->{marker_name
}=shift;