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

Annotation of /FigKernelPackages/UnvSubsys.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : overbeek 1.1 package UnvSubsys;
2 :    
3 :     use Carp;
4 :     use FIG;
5 :    
6 :     use Data::Dumper;
7 :     use strict;
8 :    
9 :     sub new
10 :     {
11 :     my($class, $ssa, $fig, $colors, $aliases) = @_;
12 :    
13 :     $ssa =~ s/ /_/g;
14 :    
15 :    
16 :     ### format for one_sub = [Roles,ToRoleIndexHash,ColSubsets,Genomes,ToGenomeIndexHash,PegHash,ColorHash,AliasHash]
17 :     ###
18 :     ### Roles = pointer to a list of [Role,Abbrev,[ReactionURLs]]
19 :     ###
20 :     ### ToRoleIndexHash = a pointer to a hash: key=Role Value=RoleIndex
21 :     ###
22 :     ### ColSubsets = pointer to a list of [SubsetName,[RoleIndexesFrom0]]
23 :     ###
24 :     ### Genomes is a pointer to a list of [Genome,Variant]
25 :     ###
26 :     ### ToGenomeIndexHash = a pointer to a hash: key=Genome value=GenomeIndex
27 :     ###
28 :     ### PegHash = a pointer to a hash of hashes such that $peg_hash->{$genome_index}->{$role_index} = a
29 :     ### pointer to a list of PEGs
30 :     ###
31 :     ### ColorHash is a hash: key=PEG value=color
32 :     ###
33 :     ### AliasHash is a hash: key=PEG value=aliases
34 :     ###
35 :    
36 :     if (ref($fig) eq "FIG")
37 :     {
38 :     my $subsystem = new Subsystem($ssa,$fig,0);
39 :    
40 :     my @roles = $subsystem->get_roles;
41 :     my $reactions = $subsystem->get_reactions;
42 :     my @genomes = $subsystem->get_genomes;
43 :     my @col_subsets = $subsystem->get_subset_namesC;
44 :    
45 :     my $role_info = [];
46 :     my $roleH = {};
47 :    
48 :     my($i,$j,$subset,$peg);
49 :     for ($i=0; ($i < @roles); $i++)
50 :     {
51 :     my $role = $roles[$i];
52 :     my $abbrev = $subsystem->get_role_abbr( $subsystem->get_role_index( $role ) );
53 :     my $react = $reactions ? join(",", map { &HTML::reaction_link($_) } @{$reactions->{$role}}) : [];
54 :     push(@$role_info,[$role,$abbrev,$react]);
55 :     $roleH->{$role} = $i;
56 :     }
57 :    
58 :     my $subset_info = [];
59 :     foreach $subset (@col_subsets)
60 :     {
61 :     if ($subset ne 'All')
62 :     {
63 :     push(@$subset_info,[$subset,[$subsystem->get_subsetC_roles($subset)]]);
64 :     }
65 :     }
66 :    
67 :     my $genomes_info = [];
68 :     my $genomeH = {};
69 :     for ($i=0; ($i < @genomes); $i++)
70 :     {
71 :     my $genome = $genomes[$i];
72 :     my $variant = $subsystem->get_variant_code( $subsystem->get_genome_index( $genome ) );
73 :     push(@$genomes_info,[$genome,$variant]);
74 :     $genomeH->{$genome} = $i;
75 :     }
76 :    
77 :     my $pegH = {};
78 :     for ($i=0; ($i < @genomes); $i++)
79 :     {
80 :     my $genome = $genomes[$i];
81 :     for ($j=0; ($j < @roles); $j++)
82 :     {
83 :     my $role = $roles[$j];
84 :     my @pegs = $subsystem->get_pegs_from_cell($genome,$role);
85 :     $pegH->{$i}->{$j} = [@pegs];
86 :     }
87 :     }
88 :    
89 :     my $colorsH = $colors ? &set_colors($fig,$pegH) : {};
90 :     my $aliasesH = $aliases ? &set_aliases($fig,$pegH) : {};
91 :    
92 :     my $self = [$role_info,$roleH,$subset_info,$genomes_info,$genomeH,$pegH,$colorsH,$aliasesH];
93 :     bless($self, $class);
94 :     return $self;
95 :     }
96 :     else
97 :     {
98 :     return undef;
99 :     }
100 :     }
101 :    
102 :     1;
103 :    
104 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3