[Bio] / FigWebServices / graph_exp.cgi Repository:
ViewVC logotype

Annotation of /FigWebServices/graph_exp.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download)

1 : olson 1.1
2 :     use FIG;
3 :     use CGI;
4 :     use strict;
5 :     use Data::Dumper;
6 :    
7 :     my $fig = new FIG;
8 :    
9 :     my $cgi = new CGI;
10 :    
11 :     my @checked = $cgi->param("checked");
12 :     my $sort_by = $cgi->param("sort_by");
13 :    
14 :     print $cgi->header;
15 :    
16 :     if ((grep { $_ eq $sort_by } @checked) == 0)
17 :     {
18 :     push(@checked, $sort_by);
19 :     }
20 :    
21 :     my $genome = $fig->genome_of($sort_by);
22 :    
23 :     # my $orgdir = $FIG_Config::organisms;
24 :     my $orgdir = "/home/overbeek/Proj/FIGdisk/FIG/Data/Organisms";
25 :    
26 :     if (!open(R, "<", "$orgdir/$genome/UserSpace/ExpressionData/raw_data.tab"))
27 :     {
28 :     print "No expression data found for $sort_by\n";
29 :     exit;
30 :     }
31 :    
32 :     my %dat;
33 :     my $n_left = @checked;
34 :     my %want = map { $_ => 1 } @checked;
35 :    
36 :     my $n;
37 :     while (<R>)
38 :     {
39 :     chomp;
40 :     my($id, @dat) = split(/\t/);
41 :     if ($want{$id})
42 :     {
43 :     $dat{$id} = [@dat];
44 :     $n = @dat;
45 :     $n_left--;
46 :     last if $n_left == 0;
47 :     }
48 :     }
49 :    
50 :     my $base = "graph_exp.$$";
51 :     my $out_s = "$FIG_Config::temp/$base.dat";
52 :    
53 :     my @dat_order = ($sort_by);
54 :     delete $want{$sort_by};
55 :     push(@dat_order, keys %want);
56 :    
57 :     open(OS, "| sort -n > $out_s") or die $!;
58 :    
59 :     my @plots;
60 :     my $col = 1;
61 :     for my $peg (@dat_order)
62 :     {
63 :     push(@plots, qq("$out_s" using $col with points title "$peg"));
64 :     $col++;
65 :     }
66 :    
67 :     #print Dumper(\@dat_order, \%dat);
68 :     for my $i (1..$n)
69 :     {
70 :     my @row;
71 :     for my $peg (@dat_order)
72 :     {
73 :     push(@row, shift @{$dat{$peg}});
74 :     }
75 :     print OS join("\t", @row), "\n";
76 :     }
77 :     close(OS);
78 :    
79 :     my $plot = "$FIG_Config::temp/$base.png";
80 :    
81 :     my $plots = join(", ", @plots);
82 :    
83 :     open(G, "|/opt/bcr/2008-0612/linux-debian-x86_64/bin/gnuplot") or die $!;
84 :     print G <<END;
85 :     set term png
86 :     set output "$plot"
87 :     plot $plots
88 :     set output
89 :     END
90 :    
91 :     close(G);
92 :    
93 :     my $tmp = "$FIG_Config::temp_url/$base.png";
94 :     print "<img src='$tmp'>\n";
95 :    
96 :     unlink($out_s);
97 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3