[Bio] / FigKernelPackages / UnvSubsys.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/UnvSubsys.pm

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

revision 1.6, Sun Sep 18 01:20:28 2005 UTC revision 1.7, Sun Sep 18 14:11:22 2005 UTC
# Line 9  Line 9 
9    
10  sub new  sub new
11  {  {
12      my($class, $ssa, $fig, $show_clusters, $aliases) = @_;      my($class, $ssa, $fig, $active_subsetR, $focus, $show_clusters, $aliases) = @_;
13    
14      $ssa =~ s/ /_/g;      $ssa =~ s/ /_/g;
15    
# Line 102  Line 102 
102                  $pegH->{$i}->{$j} = [@pegs];                  $pegH->{$i}->{$j} = [@pegs];
103              }              }
104          }          }
105          my $colorsH  = $show_clusters  ? &set_colors($fig,$pegH)  : {};  
         my $aliasesH = $aliases ? &set_aliases($fig,$pegH) : {};  
         my $reactions = $subsystem->get_reactions;  
106          my $row_subsets = &row_subsets($fig,$genomeH,$genomes_info);          my $row_subsets = &row_subsets($fig,$genomeH,$genomes_info);
107            my $active_genomes = &active_genomes($row_subsets,$active_subsetR,$focus,$genomeH,$genomes_info);
108            my $colorsH  = $show_clusters  ? &set_colors($fig,$pegH,$active_genomes)  : {};
109            my $aliasesH = $aliases ? &set_aliases($fig,$pegH,$active_genomes) : {};
110            my $reactions = $subsystem->get_reactions;
111          my $self = { Roles => $role_info,          my $self = { Roles => $role_info,
112                       RoleIndex => $roleH,                       RoleIndex => $roleH,
113                       RoleSubsets => $subset_info,                       RoleSubsets => $subset_info,
# Line 181  Line 183 
183  }  }
184    
185  sub set_aliases {  sub set_aliases {
186      my($fig,$pegH) = @_;      my($fig,$pegH,$active_genomes) = @_;
187      my($genomeI,$roleI,$pegs,$peg,$roleH);      my($genomeI,$roleI,$pegs,$peg,$roleH);
188    
189      my $aliasesH = {};      my $aliasesH = {};
190    
191      foreach $genomeI (keys(%$pegH))      foreach $genomeI (grep { $active_genomes->{$_} } keys(%$pegH))
192      {      {
193          $roleH = $pegH->{$genomeI};          $roleH = $pegH->{$genomeI};
194          foreach $roleI (keys(%$roleH))          foreach $roleI (keys(%$roleH))
# Line 205  Line 207 
207  }  }
208    
209  sub set_colors {  sub set_colors {
210      my($fig,$pegH) = @_;      my($fig,$pegH,$active_genomes) = @_;
211      my($genomeI,$roleI,$pegs,$peg,$roleH,$peg,%pegs_in_genome);      my($genomeI,$roleI,$pegs,$peg,$roleH,$peg,%pegs_in_genome);
212    
213      my $colorsH = {};      my $colorsH = {};
214    
215      foreach $genomeI (keys(%$pegH))      foreach $genomeI (grep { $active_genomes->{$_} } keys(%$pegH))
216      {      {
217          undef %pegs_in_genome;          undef %pegs_in_genome;
218          $roleH = $pegH->{$genomeI};          $roleH = $pegH->{$genomeI};
# Line 454  Line 456 
456      return $self->{Colors}->{$peg};      return $self->{Colors}->{$peg};
457  }  }
458    
459    sub active_genomes {
460        my($row_subsets,$active_subsetR,$focus,$genomeH,$genomes_info) = @_;
461        my($i,@bestL);
462    
463        my $active_genomes = {};
464        if ($active_subsetR)
465        {
466            for ($i=0; ($i < @$row_subsets) && ($row_subsets->[$i]->[0] ne $active_subsetR); $i++) {}
467            if ($i < @$row_subsets)
468            {
469                @bestL = @{$row_subsets->[$i]->[1]};
470            }
471            else
472            {
473                $active_subsetR = 'All';
474                @bestL = keys(%$genomeH);
475            }
476        }
477        else
478        {
479            if (! $focus)
480            {
481                $active_subsetR = 'All';
482                @bestL = keys(%$genomeH);
483            }
484            else
485            {
486                my $bestN   = undef;
487                @bestL   = ();
488    
489                my $tuple;
490                foreach $tuple (@$row_subsets)
491                {
492                    my($id,$genomeIs) = @$tuple;
493                    for ($i=0; ($i < @$genomeIs) && ($genomes_info->[$genomeIs->[$i]]->[0] ne $focus); $i++) {}
494                    if ($i < @$genomeIs)
495                    {
496                        if ((! $bestN) || (@$genomeIs < @bestL))
497                        {
498                            $bestN  = $id;
499                            @bestL = @$genomeIs;
500                        }
501                    }
502                }
503                $active_subsetR = $bestN;
504            }
505        }
506    
507        my %active_genomes = map { $_ => 1 } @bestL;
508        return \%active_genomes;
509    }
510    
511  1;  1;
512    
513    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3