added links to the tree browser using a newick string from a tmp file
[sgn.git] / mason / util / organism_tree.mas
blobab662daad2354da29834b81f0d316d3b3208f496
1 <%doc>
2 =head1 NAME 
4 organism_tree.mas - mason component for printing organism phylo trees 
6 =head1 DESCRIPTION
8 Queries the database for web_visible (see chado: organismprop table ) sgn organisms, and buids a species tree from the phylonode table  using the L<CXGN::Phylo::Tree> framework
10 =head1 AUTHOR
12 Naama Menda <nm249@cornell.edu>
14 =cut 
17 </%doc>
20 <%args>
22 $schema
23 $root
24 $species_hashref
25 $uri_dir
26 $tmp_dir
27 $image_only => 0
29 </%args>
31 <%perl>
33 use CXGN::Phylo::OrganismTree;
34 use CXGN::Tools::WebImageCache;
36 my $cache = CXGN::Tools::WebImageCache->new();
37 $cache->set_temp_dir($uri_dir);
38 $cache->set_basedir($tmp_dir);
40 my $file_key_name = $root . "-" . (join '-', keys %$species_hashref);
41 $cache->set_key($file_key_name);
42 $cache->set_expiration_time(86400);
43 my $map_name= $root . "_map";
45 $cache->set_map_name($map_name);
47 my $newick_file  = $tmp_dir . "/" . $uri_dir . "/" . $root . ".newick";
49 if ( !$cache->is_valid() ) {
51   my $tree = CXGN::Phylo::OrganismTree->new($schema);
52   my $newick_string = $tree->build_tree($root, $species_hashref);
54   open(my $FH, ">$newick_file" ) or die $! . "cannot open file $newick_file for writing! \n\n";
55   print $FH $newick_string;
56   close $FH;
57   my $image_map = $tree->get_renderer()->get_html_image_map($map_name);
58   my $image_png = $tree->render_png(undef, 1);
60   $cache->set_image_data($image_png);
61   $cache->set_image_map_data($image_map);
64 my $image_html= $cache->get_image_html();
66 open( my $MF, "<$newick_file" );
67 my $tree_string = "";
68 $tree_string .= $_ while <$MF>;
69 close($MF);
71 if ($image_only) { print $image_html; return; }
72 </%perl>
75 <&| /page/info_section.mas, 
76   title         => $root,
77   subtitle      => 'click on organism name to see more details ',
78   empty_message => 'Tree not available',
79   collapsible   =>1,
80   collapsed  =>0
81   &>
82   
83   <form action="/tools/tree_browser/" method="post"><input type="hidden" name="tree_string" value=" <% $tree_string %> "><input type="submit" value="show in treebrowser" /></form> 
84  <% $image_html %>
85   
86 </&>