use FIG; my $fig = new FIG; use HTML; use CGI; my $cgi = new CGI; my $html = []; my @pegs_with_no_ss = (); if($cgi->param('genome') && $cgi->param('attribute') && $cgi->param('value')) { push (@$html, "Connect Differentially Expressed Pegs to Subsystems"); push(@$html, $cgi->br,$cgi->hr); push(@$html,$cgi->h3("Subsystems: # of pegs with matching expression level")); my $genome_string = $cgi->param('genome'); my @string_parts = split(", ",$genome_string); my $genome = $string_parts[1]; my $att_param = $cgi->param('attribute'); my $value_param = $cgi->param('value'); my $ss_counter; my @all = $fig->all_subsystems(); foreach my $a (@all){ $ss_counter{$a} = 0 } my @pegs = $fig->pegs_of($genome); my %list_of_ss; foreach my $peg (@pegs) { next unless (my @attr=$fig->get_attributes($peg)); foreach my $attr (@attr) { next unless (defined $attr); my ($gotpeg, $tag, $val, $link)=@$attr; next unless ($tag eq $att_param); next unless($val eq $value_param); my @subsystems = $fig->subsystems_for_peg($peg); my $no_ss = 1; foreach my $ss (@subsystems) { my $ss_name = $ss->[0]; $counter = $ss_counter{$ss_name}; $counter = $counter + 1; $list_of_ss{$ss_name} = "1"; $ss_counter{$ss_name} = $counter; $no_ss = 0; } if($no_ss){push(@pegs_with_no_ss,$peg)} } } my @list = keys(%list_of_ss); my $prefix = subsys.cgi?user=&ssa_name="; my $suffix = "&request=show_ssa"; push(@$html,""); foreach my $s (@list) { my $peg_count = $ss_counter{$s}; my $url = "$s"; push(@$html,""); } push(@$html,"
$url$peg_count
",$cgi->hr); push(@$html,$cgi->h3("Pegs Not in Subsystem")); push(@$html,""); foreach my $p (@pegs_with_no_ss) { my $cgi = &FIG::cgi_url(-relative => 1); my $url =qq($p); push(@$html,""); } push(@$html,"
$url
"); &HTML::show_page($cgi,$html); } else{ $html = []; push @$html, "Connect Differentially Expressed Pegs to Subsystems"; push(@$html,$cgi->start_form(-action => "array2sub.cgi", -method => 'post')); my @gs_list; my @genomes = $fig->genomes('complete'); foreach $g (@genomes){ my $gs = $fig->genus_species($g); push(@gs_list, $gs.", ".$g); } @gs_list2 =sort {uc($a) cmp uc($b)} @gs_list; push(@$html, $cgi->h3("select genome"), $cgi->scrolling_list(-name => 'genome', -values => [@gs_list2], -size => 10, -multiple => 1 ), $cgi->hr ); #my $opt=$fig->get_keys("peg"); # all the peg tags #my @options=sort {uc($a) cmp uc($b)} keys %$opt; #unshift(@options, undef); @options =("microarray_sigmaB_regulon","pH_75_vs_55"); push(@$html,$cgi->h3("select experiment"), $cgi->popup_menu(-name => 'attribute', -values=>\@options), $cgi->br, $cgi->hr); @options2 = ("up regulated","down regulated","present"); push(@$html,$cgi->h3("select value"), $cgi->popup_menu(-name => 'value', -values=>\@options2), $cgi->br,$cgi->hr); push(@$html,$cgi->submit('find subsystems'), $cgi->end_form); &HTML::show_page($cgi,$html); }