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

Annotation of /FigWebServices/legionella_v4.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (view) (download)

1 : mkubal 1.1 use FIG;
2 :     use HTML;
3 :     use raelib;
4 :     my $raelib=new raelib;
5 :     use CGI;
6 :     my $cgi=new CGI;
7 :     use LWP::Simple qw(!head); # see the caveat in perldoc LWP about importing two head methods.
8 :    
9 :     my $fig;
10 :     eval {
11 :     $fig = new FIG;
12 :     };
13 :    
14 :    
15 :     my $html = [];
16 :     my $user = $cgi->param('user');
17 :    
18 :     unshift(@$html, "<TITLE>Paint Legionella Microarray Expression Data on Subsystem Modules</TITLE>\n");
19 :    
20 :     my $tag_to_id;
21 :     my $inputs;
22 :     if ($cgi->param('request') && $cgi->param('korgs') )
23 :     {
24 :     my $input =$cgi->param('proteins');
25 :     my @inputs = split("\n",$input);
26 :     push @orgs, $cgi->param('korgs');
27 :     $org = $orgs[0];
28 :    
29 :     if ($cgi->upload('fileupload'))
30 :     {
31 :     my $fh=$cgi->upload('fileupload');
32 :     @inputs = <$fh> ;
33 :     }
34 :    
35 :     push(@inputs,$org);
36 :     $given = [@inputs];
37 :     $big_return = &parse_inputs($fig,$given);
38 :     $id_to_tag = $big_return->[0];
39 :     $fig_to_alias = $big_return->[1];
40 :     $alias_to_spot_url = $big_return->[2];
41 :     $alias_to_exp_url = $big_return->[3];
42 :     }
43 :    
44 :     if ($id_to_tag && $cgi->param('request') eq "Subsystem Information")
45 :     {
46 :     &subsystem_info($fig,$cgi,$html,$id_to_tag,$fig_to_alias);
47 :     }
48 :     if ($id_to_tag && $cgi->param('request') eq "Paint Subsystem Connections")
49 :     {
50 :     &paint_connections($fig,$cgi,$html,$id_to_tag,$fig_to_alias);
51 :     }
52 :     if ($id_to_tag && $cgi->param('request') eq "Paint Subsystem Modules")
53 :     {
54 :     &paint_modules($fig,$cgi,$html,$id_to_tag,$fig_to_alias,$alias_to_spot_url,$alias_to_exp_url);
55 :     }
56 :    
57 :     else
58 :     {
59 :    
60 :     &show_initial($fig,$cgi,$html);
61 :     &HTML::show_page($cgi,$html,1);
62 :     exit;
63 :     }
64 :    
65 :     sub show_initial {
66 :     my ($fig,$cgi,$html)=@_;
67 :     # generate a blank page
68 :     push @$html,
69 :     $cgi->start_multipart_form(),
70 :     "<p>Select an Organism from the list.\n Enter list of tag and id pairs where the tag represents an expression level in a microarray experiment or an isolate from a complete genome hybridization experiment and the id is a gene/protein id or alias</p>\n",
71 :     "<p>",
72 :     "<br><b>Choose one or more organisms from this list:</b><br>\n",
73 :     $raelib->scrolling_org_list($cgi, "1"),
74 :    
75 :     "<b>Paste tag ID pairs here:</b><br>\n",
76 :     $cgi->textarea(-name=>"proteins", -rows=>10, -columns=>40), "<br>\n",
77 :     "<br><b>Or choose a file here:</b><br>\n",
78 :     $cgi->filefield(-name=>"fileupload", -size=>50), "<br>\n",
79 :     $cgi->submit(-name=>'request', -value=>'Subsystem Information'),
80 :     $cgi->submit(-name=>'request', -value=>'Paint Subsystem Connections'),
81 :     $cgi->submit(-name=>'request', -value=>'Paint Subsystem Modules'),
82 :     $cgi->reset, $cgi->end_form;
83 :     return $html;
84 :     }
85 :     sub paint_connections
86 :     {
87 :     my ($fig,$cgi,$html,$id_to_tag,$fig_to_alias,$alias_to_spot_url,$alias_to_exp_url)=@_;
88 :     $new_html = [];
89 :     $dir = "/home/mkubal/public_html";
90 :     open(IN,"$dir/rx_to_rx.xml");
91 :    
92 :     open(OUT,">/home/mkubal/public_html/painted_reaction_network.html");
93 :     my @headers = keys(%{$id_to_tag});
94 :    
95 :     %sid_to_coordinate_x;
96 :     %sid_to_coordinate_y;
97 :     %sid_to_rid;
98 :     @sids_with_rid;
99 :    
100 :     $sid;
101 :     $coordinate_x;
102 :     $coordinate_y;
103 :    
104 :     while ($_ = <IN>){
105 :     $temp = $_;
106 :     if($temp =~ /species=\"(s\d+)\"/){$sid = $1; }
107 :     if(!$sid_to_coordinate_x{$sid}){
108 :     if($temp =~ /x=\"(\d+\.\d+)\"\s+y=\"(\d+\.\d+)\"/){
109 :     $coordinate_x = $1; #print "sid:$sid x:$1\n";
110 :     $coordinate_y= $2; #print "sid:$sid y:$2\n";
111 :     $sid_to_coordinate_x{$sid} = $coordinate_x;
112 :     $sid_to_coordinate_y{$sid} = $coordinate_y;
113 :     }
114 :     }
115 :    
116 :     if($temp =~/id=\"(s\d+)\"\s+initialAmount.*name=\"(R\d+)\">/){
117 :     $sid_to_rid{$1} = $2;
118 :     push(@sids_with_rid,$1);
119 :     }
120 :     }
121 :    
122 :     %rid_to_peg;
123 :     %rid_to_tag;
124 :     foreach my $h (@headers)
125 :     {
126 :     my $p = $id_to_tag->{$h};
127 :     my @pegs = @$p;
128 :     foreach my $peg (@pegs){
129 :     if ($peg =~/(fig\|\d+.\d+.peg.\d+)/){
130 :     $peg = $1;
131 :     $function = $fig->function_of($peg);
132 :     if($function =~/EC (\d+\.\d+\.\d+\.\d+)/)
133 :     {
134 :     @rids = $fig->catalyzes($1);
135 :     foreach $r (@rids){
136 :     $rid_to_tag{$r} = $h;
137 :     $rid_to_peg{$r} = $peg;
138 :     }
139 :     }
140 :     }
141 :     }
142 :     }
143 :    
144 :     print OUT "<HTML><HEAD>
145 :     <TITLE>strep</TITLE>
146 :     <META NAME='generator' CONTENT='YokMap 1.0.1'>
147 :     <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1'>
148 :     </HEAD>
149 :     <BODY BGCOLOR='#ffffff'>";
150 :    
151 :     %rid_to_subsystems;
152 :     open(SS_TO_RID,"$dir/ss_to_rx.txt");
153 :     @lines = <SS_TO_RID>;
154 :     foreach $l (@lines){
155 :     #print "$l";
156 :     chomp($l);
157 :     @temp = split("\t",$l);
158 :     if($rid_to_subsystems{$temp[1]}){
159 :     $list = $rid_to_subsystems{$temp[1]};
160 :     push(@$list,$temp[0]);
161 :     $rid_to_subsystems{$temp[1]}= $list;
162 :     }
163 :     else{
164 :     $rid_to_subsystems{$temp[1]}= [$temp[0]];
165 :     }
166 :     }
167 :    
168 :     @rids_on_diagram =();
169 :     foreach $sid (@sids_with_rid){
170 :     $rid = $sid_to_rid{$sid};
171 :     push(@rids_on_diagram,$rid);
172 :     $tag = $rid_to_tag{$rid};
173 :     $peg = $rid_to_peg{$rid};
174 :     $top = $sid_to_coordinate_y{$sid} + 10;
175 :     $left = $sid_to_coordinate_x{$sid} + 10;
176 :     $list= $rid_to_subsystems{$rid};
177 :     $subsystems_text = join(" ",@$list);
178 :     $mo = "onmouseover=\"return escape('$subsystems_text')\"";
179 :     if($peg =~/fig\|\d+.\d+.peg.(\d+)/){
180 :     my $alias = $fig_to_alias{$peg};
181 :     print OUT "<h5 STYLE='position: absolute; top:$top; left:$left'><font Color='red'><a href='http://theseed.uchicago.edu/FIG/protein.cgi?prot=$peg&user=' $mo>$alias</a></font></h5>\n";
182 :     }
183 :     #else{
184 :     # print OUT "<h5 STYLE='position: absolute; top:$top; left:$left'><font>no peg</font></h5>\n";
185 :     # }
186 :    
187 :     $left = $left + 40;
188 :    
189 :     if($tag){
190 :     print OUT "<h5 STYLE='position: absolute; top:$top; left:$left'><font Color='red'><a href='http://www.genome.jp/dbget-bin/www_bget?rn+$rid' $mo>$tag</font></h5>\n";
191 :     }
192 :     else{
193 :     print OUT "<h5 STYLE='position: absolute; top:$top; left:$left'><font Color='red'><a href='http://www.genome.jp/dbget-bin/www_bget?rn+$rid' $mo>KEGG</font></h5>\n";
194 :     }
195 :    
196 :     }
197 :    
198 :     print OUT "<MAP NAME='strep'><AREA SHAPE='default' COORDS='0,0,2400,1600' NOHREF></MAP><IMG SRC='rx_to_rx.jpg' WIDTH='2400' HEIGHT='1600' USEMAP='#strep' BORDER='0'><script language='JavaScript' type='text/javascript' src='wz_tooltip.js'></script></BODY></HTML>";
199 :    
200 :    
201 :     push(@$new_html,"<br><br>");
202 :    
203 :     push(@$new_html,"<a href='http://ci.uchicago.edu/~mkubal/painted_reaction_network.html'>painted network of reactions connecting subsystems</a>");
204 :    
205 :     push(@$new_html,"<br>");
206 :    
207 :     &HTML::show_page($cgi,$new_html);
208 :     exit;
209 :     }
210 :    
211 :     sub paint_modules
212 :     {
213 : mkubal 1.2 #print STDERR "paint_modules called\n";
214 : mkubal 1.1 my ($fig,$cgi,$html,$id_to_tag,$fig_to_alias,$alias_to_spot_url,$alias_to_exp_url)=@_;
215 :     $new_html = [];
216 :     $dir = "/home/mkubal/public_html";
217 :    
218 :     open(IN2,"$dir/subsystem_modules.xml");
219 :     open(IN3,"$dir/ss_connections_by_reaction.txt");
220 :    
221 :     open(OUT2,">/home/mkubal/public_html/painted_subsystem_modules.html");
222 :     open(OUT3,">/home/mkubal/public_html/temp.txt");
223 :     my @headers = keys(%{$id_to_tag});
224 :    
225 :     %sid_to_coordinate_x;
226 :     %sid_to_coordinate_y;
227 :     %sid_to_rid;
228 :     @sids_with_rid;
229 :    
230 :     $sid;
231 :     $coordinate_x;
232 :     $coordinate_y;
233 :    
234 :     while ($_ = <IN2>){
235 :     $temp = $_;
236 :     if($temp =~ /species=\"(s\d+)\"/){$sid = $1; }
237 :     if(!$sid_to_coordinate_x{$sid}){
238 :     if($temp =~ /x=\"(\d+\.\d+)\"\s+y=\"(\d+\.\d+)\"/){
239 :     $coordinate_x = $1; #print "sid:$sid x:$1\n";
240 :     $coordinate_y= $2; #print "sid:$sid y:$2\n";
241 :     $sid_to_coordinate_x{$sid} = $coordinate_x;
242 :     $sid_to_coordinate_y{$sid} = $coordinate_y;
243 :     }
244 :     }
245 :    
246 :     if($temp =~/id=\"(s\d+)\"\s+initialAmount.*name=\"(R\d+)\">/){
247 :     $sid_to_rid{$1} = $2;
248 :     push(@sids_with_rid,$1);
249 :     }
250 :     }
251 :    
252 :     %rid_to_peg;
253 :     %rid_to_tag;
254 :     foreach my $peg (@headers)
255 :     {
256 : mkubal 1.2 #print STDERR "peg:$peg\n";
257 : mkubal 1.1 $function = $fig->function_of($peg);
258 :     if($function =~/EC (\d+\.\d+\.\d+\.\d+)/)
259 :     {
260 :     @rids = $fig->catalyzes($1);
261 :     foreach $r (@rids){
262 :     $tag = $id_to_tag->{$peg};
263 :     $rid_to_tag{$r} = $tag;
264 :     $rid_to_peg{$r} = $peg;
265 : mkubal 1.2 ##print STDERR "peg,rid,tag:$peg,$r,$tag\n";
266 : mkubal 1.1 }
267 :     }
268 :     }
269 :    
270 :    
271 :     print OUT2 "<HTML><HEAD>
272 :     <TITLE>strep</TITLE>
273 :     <META NAME='generator' CONTENT='YokMap 1.0.1'>
274 :     <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1'>
275 :     </HEAD>
276 :     <BODY BGCOLOR='#ffffff'><MAP NAME='strep'>";
277 :    
278 :    
279 :     %rid_to_subsystems;
280 :     open(SS_TO_RID,"$dir/ss_to_rx.txt");
281 :     @lines = <SS_TO_RID>;
282 :     foreach $l (@lines){
283 :     #print "$l";
284 :     chomp($l);
285 :     @temp = split("\t",$l);
286 :     if($rid_to_subsystems{$temp[1]}){
287 :     $list = $rid_to_subsystems{$temp[1]};
288 :     $add = 1;
289 :     foreach $item (@$list){
290 :     if($item eq $temp[1]){$add = 0}
291 :     }
292 :     if($add){
293 :     push(@$list,$temp[0]);
294 :     $rid_to_subsystems{$temp[1]}= $list;
295 :     }
296 :     }
297 :     else{
298 :     $rid_to_subsystems{$temp[1]}= [$temp[0]];
299 :     }
300 :     }
301 :    
302 :    
303 :     my %rid_connects_to_ss_by;
304 :     @lines = <IN3>;
305 :     $counter = 0;
306 :     #print OUT3 "Test\n";
307 :     foreach $l (@lines){
308 :     my $key;
309 :     my $ss;
310 :     my $connects_to;
311 :     my $string;
312 :     if($l =~/.*\t(R\d+)\t(.*)\t(R\d+)/){
313 :     $counter = $counter + 1;
314 :     $key = $1;
315 :     $ss = $2;
316 :     $connects_to = $3;
317 :     $string = "$key connects to $connects_to in $ss";
318 :     #print OUT3 "$string\n";
319 :     if($rid_connects_to_ss_by{$key}){
320 :     $temp = $rid_connects_to_ss_by{$key};
321 :     $add = 1;
322 :     foreach $t (@$temp){
323 :     if($t eq $string){
324 :     $add= 0;
325 :     }
326 :     }
327 :     if($add){
328 :     push(@$temp,$string);
329 :     print OUT3 "2nd $key\t$string\n";
330 :     }
331 :     }
332 :     else{
333 :     $list = [$string];
334 :     $rid_connects_to_ss_by{$key} = $list;
335 :     print OUT3 "1st $key\t$string\n";
336 :     }
337 :     }
338 :     }
339 :    
340 :     @rids_on_diagram =();
341 :     foreach $sid (@sids_with_rid){
342 :     my $rid; my $tag; my $top; my $left; my $list; my $connections;
343 :     my $subsystems_text; my $subsystem_text; my $peg = 0;
344 :    
345 :     $rid = $sid_to_rid{$sid};
346 :     push(@rids_on_diagram,$rid);
347 :     $peg = $rid_to_peg{$rid};
348 :    
349 :     if($peg){
350 :     $tag = $rid_to_tag{$rid};
351 :     $top = $sid_to_coordinate_y{$sid} - 10 ;
352 :     $left = $sid_to_coordinate_x{$sid} - 40;
353 :     $list= $rid_to_subsystems{$rid};
354 :     $connections= $rid_connects_to_ss_by{$rid};
355 :    
356 :     $subsystems_text = join(",",@$list);
357 :     $connection_text = join(",",@$connections);
358 :    
359 :     print OUT3 "$rid $connection_text\n";
360 :     $mo = "onmouseover=\"return escape('$subsystems_text')\"";
361 :     $mo2 = "onmouseover=\"return escape('$connection_text')\"";
362 :    
363 :     my $alias = $fig_to_alias{$peg};
364 :     if($peg =~/fig\|\d+.\d+.peg.(\d+)/){
365 :     print OUT2 "<h5 STYLE='position: absolute; top:$top; left:$left'><font Color='red'><a href='http://theseed.uchicago.edu/FIG/protein.cgi?prot=$peg&user=' $mo>$alias</a></font></h5>\n";
366 :    
367 :     }
368 :    
369 :     $top_left_x = $left + 45;
370 :     $top_left_y = $top + 15;
371 :     $bottom_right_x = $top_left_x + 50;
372 :     $bottom_right_y = $top_left_y + 10;
373 :     print OUT2 "<AREA SHAPE='RECT' COORDS='$top_left_x,$top_left_y,$bottom_right_x,$bottom_right_y' HREF='http://www.genome.jp/dbget-bin/www_bget?rn+$rid'>";
374 :    
375 :     $left = $left + 115;
376 :     $spot_url = $alias_to_spot_url{$alias};
377 :     if($tag < .10){$color ="#009900" }
378 :     elsif($tag < .25){$color ="#0CC00" }
379 :     elsif($tag < .50){$color ="#00FF00" }
380 :     elsif($tag < 2){$color ="#CCFF00" }
381 :     elsif($tag < 20){$color ="#FF00FF" }
382 :     elsif($tag < 40){$color ="#FF00CC" }
383 :     elsif($tag < 60){$color ="#FF0099" }
384 :     elsif($tag < 80){$color ="#FF0066" }
385 :     elsif($tag < 100){$color ="#FF0033" }
386 :     else{$color ="#FF0000" }
387 : mkubal 1.2 print OUT2 "<h5 STYLE='position: absolute; top:$top; left:$left'><a href='$spot_url' ><font Color='$color'>$tag</font></h5>\n";
388 : mkubal 1.1
389 : mkubal 1.2 $left = $left + 25;
390 : mkubal 1.1 $exp_url = $alias_to_exp_url{$alias};
391 : mkubal 1.2 print OUT2 "<h5 STYLE='position: absolute; top:$top; left:$left'><a href='$exp_url'><font Color='$color'>test_exp</font></h5>\n";
392 : mkubal 1.1 }
393 :    
394 :     $peg = 0;
395 :    
396 :    
397 :     }
398 :    
399 :     foreach $k (keys(%rid_connects_to_ss_by)){
400 :     $v = $rid_connects_to_ss_by{$k};
401 :     $s = join(" ",@$v);
402 :     print OUT3 "$k\t$s\n";
403 :     }
404 :    
405 :     $start_left = 3200;
406 :     $top = 100;
407 :    
408 :     my @all_rids = keys(%rid_to_tag);
409 :     foreach my $ar (@all_rids){
410 :     $left = $start_left;
411 :     $fid = $rid_to_peg{$ar};
412 : mkubal 1.2 ##print STDERR "peg:$fid $ar\n";
413 : mkubal 1.1 $alias = $fig_to_alias{$fid};
414 :     my $add = 1;
415 :     foreach $dr (@rids_on_diagram){
416 :     if ($ar eq $dr){ $add = 0}
417 :     }
418 :     if($add){
419 :     print OUT2 "<h5 STYLE='position: absolute; top:$top; left:$left'><font Color='red'><a href='http://theseed.uchicago.edu/FIG/protein.cgi?prot=$fid&user='>$alias</a></font></h5>\n";
420 :     $left = $left + 50;
421 :     $tag = $rid_to_tag{$ar};
422 :     #print OUT2 "<h5 STYLE='position: absolute; top:$top; left:$left'><font Color='red'><a href='http://www.genome.jp/dbget-bin/www_bget?rn+$ar'>$tag</font></h5>\n";
423 :     $top = $top + 25;
424 :     if($top > 1000){$top = 100; $start_left = $start_left + 100}
425 :     }
426 :     }
427 :    
428 :     print OUT2 "</MAP><IMG SRC='subsystem_modules.jpg' WIDTH='3600' HEIGHT='2400' USEMAP='#strep' BORDER='0'><script language='JavaScript' type='text/javascript' src='wz_tooltip.js'></script></BODY></HTML>";
429 :    
430 :     #print OUT2 "<MAP NAME='strep'><AREA SHAPE='default' COORDS='0,0,3600,2400' NOHREF></MAP><IMG SRC='subsystem_modules.jpg' WIDTH='3600' HEIGHT='2400' USEMAP='#strep' BORDER='0'><script language='JavaScript' type='text/javascript' src='wz_tooltip.js'></script></BODY></HTML>";
431 :    
432 :     push(@$new_html,"<br><br>");
433 :    
434 :     push(@$new_html,"<a href='http://ci.uchicago.edu/~mkubal/painted_subsystem_modules.html'>painted subsystem modules</a>");
435 :    
436 :     &HTML::show_page($cgi,$new_html);
437 :     exit;
438 :     }
439 :    
440 :    
441 :     sub subsystem_info
442 :     {
443 :     my ($fig,$cgi,$html,$id_to_tag)=@_;
444 :    
445 :     my $html = [];
446 :     my $table = [];
447 :     my @headers = keys(%{$id_to_tag});
448 :     my $ss_counter;
449 :     my @all_subsystems;
450 :     my @pegs_with_no_ss;
451 :    
452 :     push (@$html,"<br><br>");
453 :     my $first_header = 1;
454 :     my $pegs_to_color_suffix;
455 :     foreach my $h (@headers)
456 :     {
457 :     my $p = $id_to_tag->{$h};
458 :     my @pegs = @$p;
459 :     foreach my $peg (@pegs)
460 :     {
461 :     if($first_header){$pegs_to_color_suffix = $pegs_to_color_suffix."&color=$peg"}
462 :     if ($peg =~/(fig\|\d+.\d+.peg.\d+)/){ $peg = $1};
463 :     my @subsystems = $fig->subsystems_for_peg($peg);
464 :    
465 :     if(!$subsystems[0]){push(@pegs_with_no_ss,$peg)};
466 :     foreach my $ssr (@subsystems)
467 :     {
468 :     $ss = $ssr->[0];
469 :     my $key = $ss."_".$h;
470 :     if($ss_counter{$key}){$ss_counter{$key} = $ss_counter{$key} + 1}
471 :     else{$ss_counter{$key} = 1}
472 :     my $add = 1;
473 :     foreach my $s (@all_subsystems){if($s eq $ss){$add= 0}}
474 :     if($add){push(@all_subsystems,$ss)}
475 :     }
476 :     }
477 :     $first_header = 0;
478 :     }
479 :    
480 :     my $prefix = &FIG::cgi_url() . "/display_subsys.cgi?user=&ssa_name=";
481 :     my $suffix = "&request=show_ssa".$pegs_to_color_suffix;
482 :     push(@$table,"<TABLE><TR><TH>Subsystems</TH>");
483 :     foreach my $h (@headers)
484 :     {
485 :     push(@$table,"<TH>\t$h\t</TH>");
486 :     }
487 :     push(@$table,"</TR>");
488 :    
489 :     foreach my $ss (@all_subsystems)
490 :     {
491 :     my $url = "<a href="."$prefix"."$ss"."$suffix>$ss</a>";
492 :     push(@$table,"<TR><TD>$url</TD>");
493 :     foreach my $h (@headers)
494 :     {
495 :     $key = $ss."_".$h;
496 :     if(!$ss_counter{$key}){$cell = "0"}else{$cell=$ss_counter{$key}}
497 :     push(@$table,"<TD>$cell</TD>");
498 :     }
499 :     push(@$table,"</TR>");
500 :    
501 :     }
502 :    
503 :     push(@$table,"</TABLE>");
504 :     push @$html, &HTML::make_table($table), "\n";
505 :    
506 :     push(@$html,$cgi->h3("Pegs Not in Subsystem"));
507 :     push(@$html,"<TABLE>");
508 :    
509 :     foreach my $p (@pegs_with_no_ss)
510 :     {
511 :     my $cgi = &FIG::cgi_url();
512 :     my $url =qq(<a href="$cgi/protein.cgi?prot=$p&user=">$p</a>);
513 :     push(@$html,"<TR><TD>$url</TD></TR>");
514 :     }
515 :    
516 :     push(@$html,"</TABLE>");
517 :    
518 :     &HTML::show_page($cgi,$html);
519 :     exit;
520 :     }
521 :    
522 :     =head2 parse_inputs
523 :    
524 :     Given a list of of tab-separated tags and protein ids
525 :     return a hash with the tag as key and the value is a list of values
526 :     =cut
527 :    
528 :     sub parse_inputs
529 :     {
530 :    
531 :     my ($fig,$given) =@_;
532 :     my $org = pop(@$given);
533 :     my $hash;
534 :     my $fig_to_alias;
535 :     my $alias_to_fig;
536 : mkubal 1.2 my $alias_to_spot_url;
537 :     my $alias_to_exp_url;
538 : mkubal 1.1
539 :     open(ID2PEG,"/home/mkubal/public_html/lpg_to_peg.txt");
540 :     @lines = <ID2PEG>;
541 :     foreach $l (@lines){
542 :     chomp($l);
543 :     @temp = split("\t",$l);
544 :     $alias_to_fig{$temp[0]} = $temp[1];
545 :     $fig_to_alias{$temp[1]} = $temp[0];
546 :     }
547 :    
548 :     foreach my $g (@$given)
549 :     {
550 :     my $id ="";
551 : mkubal 1.2 if ($g =~/(.*?)(\s+|\t)(.*?)(\s+|\t)(http.*?)(\s+|\t)(http.*)/){
552 : mkubal 1.1
553 :     $temp_id = $1;
554 :     $tag = $3;
555 :     $spot_url = $5;
556 : mkubal 1.2 print STDERR "spot_url:$spot_url\n";
557 : mkubal 1.1 $exp_url = $7;
558 : mkubal 1.2 print STDERR "exp_url:$exp_url\n";
559 : mkubal 1.1 $alias_to_spot_url{$temp_id} = $spot_url;
560 :     $alias_to_exp_url{$temp_id} = $exp_url;
561 :    
562 :     if($temp_id !~/fig/){
563 :     $id = $alias_to_fig{$temp_id};
564 :     $hash{$id} = $tag;
565 :     }
566 :     else{
567 :     $id = $temp_id;
568 :     $fig_to_alias{$id} = $id;
569 :     $hash{$id} = $tag;
570 :     }
571 :     }
572 :    
573 :     }
574 :    
575 :     return [\%hash,\%fig_to_alias,\%alias_to_spot_url,\%alias_to_exp_url];
576 :    
577 :     }
578 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3