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

Diff of /FigWebServices/subsystem_server_sapling.cgi

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

revision 1.1, Fri Jun 19 17:29:06 2009 UTC revision 1.7, Thu Jul 23 18:17:37 2009 UTC
# Line 81  Line 81 
81          print &YAML::Dump($result);          print &YAML::Dump($result);
82    
83      } elsif  ($function eq "all_subsystems") {      } elsif  ($function eq "all_subsystems") {
84          print $cgi->header();          #print $cgi->header();
85    
86          my @resultRows = $sapling->GetAll("Subsystem Includes Role",          my @resultRows = $sapling->GetAll("Subsystem Includes Role",
87                                        'ORDER BY Subsystem(id)', [], [qw(Subsystem(id) Subsystem(curator)                                        'ORDER BY Subsystem(id)', [], [qw(Subsystem(id) Subsystem(curator)
# Line 102  Line 102 
102          }          }
103          print &YAML::Dump($result);          print &YAML::Dump($result);
104    
105        } elsif ($function eq "pegs_in_subsystems") {
106            my $result = [];
107            my (@args)  = &YAML::Load($cgi->param('args'));
108            my $genomes = $args[0];
109            my $subs = $args[1];
110            foreach my $sub (@{$subs}) {
111                    my $ss = SaplingSubsys->new($sub, $sapling);
112                    foreach my $g (@{$genomes}) {
113                            my @roles = $ss->get_roles_for_genome($g, 1);
114                            foreach my $role (@roles) {
115                                    push (@$result, [$sub, $role]);
116                            }
117                    }
118            }
119            print &YAML::Dump($result);
120    
121       } elsif ($function eq "pegs_implementing_roles") {
122            my $result = [];
123            my (@args)  = &YAML::Load($cgi->param('args'));
124            my $subsys = $args[0];
125            my @roles = @{$args[1]};
126            my $ss = SaplingSubsys->new($subsys, $sapling);
127            foreach my $role (@roles) {
128                    my @pegs = $ss->pegs_for_role($role);
129                    push (@$result, [$role, \@pegs]);
130            }
131    
132            print &YAML::Dump($result);
133    
134      } elsif ($function eq "metabolic_reconstruction") {      } elsif ($function eq "metabolic_reconstruction") {
135    
136          #print $cgi->header();          #print $cgi->header();
137          my %big;          my %big;
138          my $id_display = 0;          my $id_display = 1;
139          my $result = [];          my $result = [];
140    
141          my @id_roles = &YAML::Load($cgi->param('args'));          my @id_roles = &YAML::Load($cgi->param('args'));
142          map {push(@{$big{$_}}, 1)} @id_roles;          #map {push(@{$big{$_}}, 1)} @id_roles;
143          #map {push(@{$big{$_->[0]}}, 1)} @id_roles;          #map {push(@{$big{$_->[0]}}, 1)} @id_roles;
144          #map {push(@{$big{$_->[1]}}, $_->[0])} @id_roles;          map {push(@{$big{$_->[0]}}, $_->[1])} @id_roles;
145          my @resultRows = $sapling->GetFlat("Subsystem", '', [], 'Subsystem(id)');          #my @resultRows = $sapling->GetFlat("Subsystem", '', [], 'Subsystem(id)');
146          foreach my $sub (@resultRows) {  
147    
148    
149    
150            my @resultRows = $sapling->GetAll("Subsystem Includes Role",
151                                    'ORDER BY Subsystem(id), Includes(sequence)', [],
152                                    [qw(Subsystem(id) Role(id) Includes(abbreviation))]);
153    
154                  my %ss_roles;                  my %ss_roles;
155                  my $ss = SaplingSubsys->new($sub, $sapling);          foreach my $row (@resultRows) {
156                  if ($ss) {                  my ($sub, $role, $abbr) = @$row;
157                          foreach my $role ($ss->get_roles) {                  $ss_roles{$sub}->{$role} = $abbr;
                                 $ss_roles{$role} = $ss->get_abbr_for_role($role);  
                         }  
                 } else {  
                         die "bad subsys\n";  
158                  }                  }
159                  my @abbr = map{$ss_roles{$_}} grep { $big{$_}} keys %ss_roles;  
160            foreach my $sub (keys %ss_roles) {
161                    my $roles = $ss_roles{$sub};
162    
163                    my @abbr = map{$roles->{$_}} grep { $big{$_}} keys %$roles;
164                  my $set =  join(" ",  @abbr);                  my $set =  join(" ",  @abbr);
165                  if (@abbr > 0) {                  if (@abbr > 0) {
166                          my ($variant, $size) = get_max_subset($sub, $set);                          my ($variant, $size) = get_max_subset($sub, $set);
167                          if ($variant) {                          if ($variant) {
168                                  foreach my $role ($ss->get_roles()) {                                  foreach my $role (keys %$roles) {
169                                          if ($id_display) {                                          if ($id_display) {
170                                                  foreach my $id (@{$big{$role}}) {                                                  foreach my $id (@{$big{$role}}) {
171                                                          push (@$result, [$variant, $id, $role]);                                                          push (@$result, [$variant, $role, $id]);
172                                                  }                                                  }
173                                          } else {                                          } else {
174                                                  push (@$result, [$variant, $role]);                                                  push (@$result, [$variant, $role]);
# Line 166  Line 202 
202          my $qh = $sapling->Get("Subsystem Describes Variant", 'Subsystem(id) = ? AND Variant(type) = ?', [$sub, 'normal']);          my $qh = $sapling->Get("Subsystem Describes Variant", 'Subsystem(id) = ? AND Variant(type) = ?', [$sub, 'normal']);
203          while (my $resultRow = $qh->Fetch()) {          while (my $resultRow = $qh->Fetch()) {
204              my @variantRoleRule = $resultRow->Value('Variant(role-rule)');              my @variantRoleRule = $resultRow->Value('Variant(role-rule)');
205              my $variantCode = $resultRow->Value('Variant(code)');              my ($variantCode) = $resultRow->Value('Variant(code)');
206              my $variantId = $sub.":".$variantCode;              my $variantId = $sub.":".$variantCode;
207              foreach my $setB (@variantRoleRule) {              foreach my $setB (@variantRoleRule) {
208                          my $size = is_A_a_superset_of_B($setA, $setB);                          my $size = is_A_a_superset_of_B($setA, $setB);

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3