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

Diff of /FigWebServices/protein.cgi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.96, Sun Mar 6 15:30:20 2005 UTC revision 1.97, Wed Mar 9 07:34:49 2005 UTC
# Line 974  Line 974 
974      #  Move filtering of sims list out of display loop.  Avoids many problems,      #  Move filtering of sims list out of display loop.  Avoids many problems,
975      #  including display of table with no entries.  Anticipate more filters.      #  including display of table with no entries.  Anticipate more filters.
976      #  -- GJO      #  -- GJO
977        #
978        #  Adjust environmental filter to be 9999999, not 999999, which hid real
979        #  genomes. -- GJO
980    
981      my @sims = grep { $show_env || ( $_->id2 !~ /^fig\|999999/ ) }      my @sims = grep { $show_env || ( $_->id2 !~ /^fig\|9999999/ ) }
982                 &sims( $fig_or_sprout, $peg, $maxN, $maxP, $select, $max_expand, $group_by_genome );                 sims( $fig_or_sprout, $peg, $maxN, $maxP, $select, $max_expand, $group_by_genome );
983    
984      #  Similarity filter      #  Similarity filter
985    
# Line 1049  Line 1052 
1052    
1053          my $col_hdrs;          my $col_hdrs;
1054          my $color_help = "(<A href=\"Html/similarity_region_colors.html\">colors explained</A>)";          my $color_help = "(<A href=\"Html/similarity_region_colors.html\">colors explained</A>)";
1055            my $func_clr_help = "(<A href=\"Html/function_colors.html\">colors explained</A>)";
1056    
1057          if ($user && $cgi->param('translate')) {          if ($user && $cgi->param('translate')) {
1058              push( @$html, " ASSIGN to/Translate from/SELECT current PEG", $cgi->br,              push( @$html, " ASSIGN to/Translate from/SELECT current PEG", $cgi->br,
1059                            "ASSIGN/annotate with form: ", shift @from, $cgi->br,                            "ASSIGN/annotate with form: ", shift @from, $cgi->br,
# Line 1063  Line 1068 
1068                            "region in<br>$peg<br>$color_help",                            "region in<br>$peg<br>$color_help",
1069                            "ASSIGN from<hr>Translate to",                            "ASSIGN from<hr>Translate to",
1070                            "In Sub",                            "In Sub",
1071                            "Function",                            "Function<br>$func_clr_help",
1072                            "Organism",                            "Organism",
1073                            (! $hide_alias) ? "Aliases" : ()                            (! $hide_alias) ? "Aliases" : ()
1074                          ];                          ];
# Line 1081  Line 1086 
1086                            "region in<br>$peg<br>$color_help",                            "region in<br>$peg<br>$color_help",
1087                            "ASSIGN from",                            "ASSIGN from",
1088                            "In Sub",                            "In Sub",
1089                            "Function",                            "Function<br>$func_clr_help",
1090                            "Organism",                            "Organism",
1091                            (! $hide_alias) ? "Aliases" : ()                            (! $hide_alias) ? "Aliases" : ()
1092                          ];                          ];
# Line 1095  Line 1100 
1100                            "region in<br>similar sequence<br>$color_help",                            "region in<br>similar sequence<br>$color_help",
1101                            "region in<br>$peg<br>$color_help",                            "region in<br>$peg<br>$color_help",
1102                            "In Sub",                            "In Sub",
1103                            "Function",                            "Function<br>$func_clr_help",
1104                            "Organism",                            "Organism",
1105                            (! $hide_alias) ? "Aliases" : ()                            (! $hide_alias) ? "Aliases" : ()
1106                          ];                          ];
# Line 1119  Line 1124 
1124                        "</TH>\n\t</TR>\n"                        "</TH>\n\t</TR>\n"
1125              );              );
1126    
1127            #
1128          #  Grouping by genome is hard to see.  This is an attempt to make it more obvious          #  Grouping by genome is hard to see.  This is an attempt to make it more obvious
1129          #  by consolidating the "Organism" for all rows in which it is repeated.  -- GJO          #  by consolidating the "Organism" for all rows in which it is repeated.  -- GJO
1130            #
1131            #  Let's figure out the function here too.  This will allow color to be
1132            #  specific for more than one function.  For example, we can color:
1133            #
1134            #     Identical function white
1135            #     Most common alternative brown
1136            #     Next most common alternatives red, orange, yellow, green, blue, and violet
1137            #     Any additional alternatives gray
1138            #
1139    
1140          my $sim;          my $sim;
1141          my ( $id2, $genome, $org, $color, $info, $prev_genome, $prev_sim );          my ( $id2, $func, $genome, $org, $color, $info, $prev_genome, $prev_sim );
1142            my %func_cnt = ();
1143    
1144          foreach $sim ( @sims ) {          foreach $sim ( @sims ) {
1145              $id2  = $sim->id2;              $id2  = $sim->id2;
1146    
1147                $func = html_enc( scalar trans_function_of( $cgi, $fig_or_sprout, $id2, $user ) );
1148                $func && $func_cnt{ $func }++;
1149    
1150              if ( $group_by_genome && ( ( $genome ) = $id2 =~ /fig\|(\d+\.\d+)\./ )              if ( $group_by_genome && ( ( $genome ) = $id2 =~ /fig\|(\d+\.\d+)\./ )
1151                                    && ( $genome eq $prev_genome ) )                                    && ( $genome eq $prev_genome ) )
1152              {              {
1153                  $prev_sim->[-1]->[2]++;         # Increase row span of org                  $prev_sim->[-1]->[3]++;         # Increase row span of org
1154                  push @$sim, [ "", $color, 0 ];  # No org name, prev_color, no row span                  push @$sim, [ $func, "", $color, 0 ];  # No org name, prev_color, no row span
1155              }              }
1156              else              else
1157              {              {
1158                  ( $org, $color ) = org_and_color_of( $fig_or_sprout, $id2 );                  ( $org, $color ) = org_and_color_of( $fig_or_sprout, $id2 );
1159                  push @$sim, [ html_enc( $org ), $color, 1 ];                  push @$sim, [ $func, html_enc( $org ), $color, 1 ];
1160                  $prev_genome = $genome || "";                  $prev_genome = $genome || "";
1161                  $prev_sim = $sim;                  $prev_sim = $sim;
1162              }              }
1163          }          }
1164    
1165            #  Build a function to color translation table based on frequence of function.
1166            #  Reserve white for the current function.
1167    
1168            my %func_color;
1169            $func_cnt{ $current_func } && delete $func_cnt{ $current_func };
1170            $func_color{ $current_func } = "#FFFFFF";
1171    
1172            #  Assign other colors until we run out:
1173    
1174            my @colors = qw( #EECCAA #FFAAAA #FFCC66 #FFFF00 #AAFFAA #BBBBFF #FFAAFF );
1175            for ( sort { $func_cnt{ $b } <=> $func_cnt{ $a } } keys %func_cnt )
1176            {
1177                $func_color{ $_ } = ( shift @colors ) || "#DDDDDD";
1178            }
1179    
1180          #  Add the table data, row-by-row          #  Add the table data, row-by-row
1181    
1182          my $alia = (! $hide_alias);          my $alia = (! $hide_alias);
1183          foreach $sim ( @sims ) {          foreach $sim ( @sims ) {
1184              my $id2  = $sim->id2;              my $id2  = $sim->id2;
1185    
             # # Filtering moved outside of "if ( @sims ) {" -- GJO  
             #  
             # if ((! $show_env) && ($id2 =~ /^fig\|99999/)) {  
             #     shift @from;  
             #     next;  
             # }  
   
1186              my $cbox = &translatable($fig_or_sprout,$id2) ?              my $cbox = &translatable($fig_or_sprout,$id2) ?
1187                     qq(<input type=checkbox name=checked value="$id2">) : "";                     qq(<input type=checkbox name=checked value="$id2">) : "";
1188    
# Line 1192  Line 1221 
1221              my $reg2    = "$b2-$e2 (<b>$d2/$ln2</b>)";              my $reg2    = "$b2-$e2 (<b>$d2/$ln2</b>)";
1222              my $color2  = match_color( $b2, $e2, $ln2 );              my $color2  = match_color( $b2, $e2, $ln2 );
1223              my $radio   = $user ? shift @from : undef;              my $radio   = $user ? shift @from : undef;
1224              my $func2   = html_enc( scalar &trans_function_of( $cgi, $fig_or_sprout, $id2, $user ) );  
1225                # Retrieve the Function and Organism data that was pushed on the end of the sim:
1226    
1227                my ( $func2, $org, $oc, $rowspan ) = @{$sim->[-1]};
1228    
1229              ## RAE Added color3. This will color function cells that do not match the original              ## RAE Added color3. This will color function cells that do not match the original
1230              ## annotation. This makes is a lot easier to see what is different (e.g. caps/spaces, etc)              ## annotation. This makes is a lot easier to see what is different (e.g. caps/spaces, etc)
             my $color3  = ( $func2 eq $current_func ) ? "#FFFFFF" : "#FFDEAD";  
1231    
1232              if ( $funcF && ( $funcF ne $func2 ) ) { $func2 = "$funcF<br>$func2" }              my $color3 = $func2 && $func_color{ $func2 } || "#DDDDDD";
1233    
1234              # Retrieve the Organism data that was pushed on the end of the sim:              if ( $funcF && ( $funcF ne $func2 ) ) { $func2 = "$funcF<br>$func2" }
1235              my ( $org, $oc, $rowspan ) = @{$sim->[-1]};              $func2 ||= "&nbsp;";
1236    
1237              my $aliases = $alia ? html_enc( join( ", ", &feature_aliasesL($fig_or_sprout,$id2) ) )              my $aliases = undef;
1238                                  : undef;              if ( $alia )
1239                {
1240                    $aliases = html_enc( join( ", ", &feature_aliasesL($fig_or_sprout,$id2) ) );
1241              $aliases = &HTML::set_prot_links($cgi,$aliases);              $aliases = &HTML::set_prot_links($cgi,$aliases);
1242                    $aliases ||= "&nbsp;";
1243                }
1244    
1245              #  Okay, everything is calculated, let's "print" the row datum-by-datum:              #  Okay, everything is calculated, let's "print" the row datum-by-datum:
1246    
             $func2 = $func2 ? $func2 : "&nbsp;";  
             $aliases = $aliases ? $aliases : "&nbsp;";  
1247              push( @$html, "\t<TR>\n",              push( @$html, "\t<TR>\n",
1248                            #                            #
1249                            #  Colorize check box by Domain                            #  Colorize check box by Domain

Legend:
Removed from v.1.96  
changed lines
  Added in v.1.97

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3