[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.3, Tue Jun 30 19:39:00 2009 UTC revision 1.7, Thu Jul 23 18:17:37 2009 UTC
# Line 105  Line 105 
105      } elsif ($function eq "pegs_in_subsystems") {      } elsif ($function eq "pegs_in_subsystems") {
106          my $result = [];          my $result = [];
107          my (@args)  = &YAML::Load($cgi->param('args'));          my (@args)  = &YAML::Load($cgi->param('args'));
108          my @genomes = $args[0];          my $genomes = $args[0];
109          my @subs = $args[1];          my $subs = $args[1];
110          foreach my $sub (@subs) {          foreach my $sub (@{$subs}) {
111  #print STDERR "SUB,", Dumper $sub;                  my $ss = SaplingSubsys->new($sub, $sapling);
112                  my $ss = SaplingSubsys->new($sub->[0], $sapling);                  foreach my $g (@{$genomes}) {
113                  foreach my $g (@genomes) {                          my @roles = $ss->get_roles_for_genome($g, 1);
                         my @roles = $ss->get_roles_for_genome($g->[0], 1);  
 #print STDERR "ROLES", Dumper @roles;  
114                          foreach my $role (@roles) {                          foreach my $role (@roles) {
115                                  push (@$result, [$sub->[0], $role]);                                  push (@$result, [$sub, $role]);
116                          }                          }
117                  }                  }
118          }          }
# Line 124  Line 122 
122          my $result = [];          my $result = [];
123          my (@args)  = &YAML::Load($cgi->param('args'));          my (@args)  = &YAML::Load($cgi->param('args'));
124          my $subsys = $args[0];          my $subsys = $args[0];
125          my @roles = $args[1];          my @roles = @{$args[1]};
126          my $ss = SaplingSubsys->new($subsys, $sapling);          my $ss = SaplingSubsys->new($subsys, $sapling);
   
127          foreach my $role (@roles) {          foreach my $role (@roles) {
128                  my @pegs = $ss->pegs_for_role($role);                  my @pegs = $ss->pegs_for_role($role);
129                  push (@$result, [$role, \@pegs]);                  push (@$result, [$role, \@pegs]);
# Line 145  Line 142 
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{$_->[0]}}, $_->[1])} @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, $role, $id]);                                                          push (@$result, [$variant, $role, $id]);
# Line 198  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.3  
changed lines
  Added in v.1.7

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3