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

Diff of /FigKernelPackages/FIGMODELmodel.pm

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

revision 1.11, Thu Apr 15 21:51:15 2010 UTC revision 1.13, Mon May 10 21:45:44 2010 UTC
# Line 526  Line 526 
526                  my $Row = $rxnTable->get_row($i);                  my $Row = $rxnTable->get_row($i);
527                  if (defined($Row) && defined($Row->{"ASSOCIATED PEG"})) {                  if (defined($Row) && defined($Row->{"ASSOCIATED PEG"})) {
528                          foreach my $GeneSet (@{$Row->{"ASSOCIATED PEG"}}) {                          foreach my $GeneSet (@{$Row->{"ASSOCIATED PEG"}}) {
529                                  $GeneSet =~ s/\+/|/g;                                  my $temp = $GeneSet;
530                                  $GeneSet =~ s/\sAND\s/|/gi;                                  $temp =~ s/\+/|/g;
531                                  $GeneSet =~ s/\sOR\s/|/gi;                                  $temp =~ s/\sAND\s/|/gi;
532                                  $GeneSet =~ s/[\(\)\s]//g;                                  $temp =~ s/\sOR\s/|/gi;
533                                  my @GeneList = split(/\|/,$GeneSet);                                  $temp =~ s/[\(\)\s]//g;
534                                    my @GeneList = split(/\|/,$temp);
535                                  foreach my $Gene (@GeneList) {                                  foreach my $Gene (@GeneList) {
536                                  my $FeatureRow = $self->{_feature_data}->get_row_by_key("fig|".$self->genome().".".$Gene,"ID");                                  my $FeatureRow = $self->{_feature_data}->get_row_by_key("fig|".$self->genome().".".$Gene,"ID");
537                                                  if (!defined($FeatureRow)) {                                                  if (!defined($FeatureRow)) {
# Line 1940  Line 1941 
1941          }          }
1942    
1943          #Checking if a biomass reaction already exists          #Checking if a biomass reaction already exists
1944          my $BiomassReactionRow = $self->figmodel()->database()->get_row_by_key("BIOMASS TABLE",$self->id(),"MODELS");          my $BiomassReactionRow = $self->BuildSpecificBiomassReaction();
         if (!defined($BiomassReactionRow)) {  
                 $BiomassReactionRow = $self->BuildSpecificBiomassReaction();  
1945                  if (!defined($BiomassReactionRow)) {                  if (!defined($BiomassReactionRow)) {
1946                          $self->set_status(-2,"Preliminary reconstruction failed: could not generate biomass reaction");                          $self->set_status(-2,"Preliminary reconstruction failed: could not generate biomass reaction");
1947                          $self->figmodel()->error_message("FIGMODEL:CreateModelReactionList: Could not generate biomass function for ".$self->id()."!");                          $self->figmodel()->error_message("FIGMODEL:CreateModelReactionList: Could not generate biomass function for ".$self->id()."!");
1948                          return $self->fail();                          return $self->fail();
1949                  }                  }
         }  
1950          my $ReactionList = $BiomassReactionRow->{"ESSENTIAL REACTIONS"};          my $ReactionList = $BiomassReactionRow->{"ESSENTIAL REACTIONS"};
1951          push(@{$ReactionList},$BiomassReactionRow->{DATABASE}->[0]);          push(@{$ReactionList},$BiomassReactionRow->{DATABASE}->[0]);
1952    
# Line 3588  Line 3586 
3586          my $OrganismID = $self->genome();          my $OrganismID = $self->genome();
3587          #Checking for a biomass override          #Checking for a biomass override
3588          if (defined($self->config("biomass reaction override")->{$OrganismID})) {          if (defined($self->config("biomass reaction override")->{$OrganismID})) {
3589                  $biomassrxn = $self->config("biomass reaction override")->{$OrganismID};                  my $biomassID = $self->config("biomass reaction override")->{$OrganismID};
3590                  print "Overriding biomass template and selecting ".$biomassrxn." for ".$OrganismID.".\n";                  my $tbl = $self->database()->get_table("BIOMASS",1);
3591                    $biomassrxn = $tbl->get_row_by_key($biomassID,"DATABASE");
3592                    print "Overriding biomass template and selecting ".$biomassID." for ".$OrganismID.".\n";
3593          } else {#Creating biomass reaction from the template          } else {#Creating biomass reaction from the template
3594                  #Getting the genome stats                  #Getting the genome stats
3595                  my $genomestats = $self->figmodel()->get_genome_stats($self->genome());                  my $genomestats = $self->figmodel()->get_genome_stats($self->genome());
# Line 3880  Line 3880 
3880    
3881                  #Adding the biomass equation to the biomass table                  #Adding the biomass equation to the biomass table
3882                  my $NewRow = $self->figmodel()->add_biomass_reaction($Equation,$self->id(),"Template:".$self->genome());                  my $NewRow = $self->figmodel()->add_biomass_reaction($Equation,$self->id(),"Template:".$self->genome());
3883                  $biomassrxn = $NewRow->{DATABASE}->[0];                  $biomassrxn = $NewRow;
                 print $biomassrxn."\n";  
3884          }          }
3885          print $biomassrxn."\n";          return $biomassrxn;
         my $BiomassRow = $self->figmodel()->add_model_to_biomass_reaction($biomassrxn,$self->id());  
         return $BiomassRow;  
3886  }  }
3887    
3888  =head3 PrintSBMLFile  =head3 PrintSBMLFile
# Line 4447  Line 4444 
4444          return join("<br>",@{$output});          return join("<br>",@{$output});
4445  }  }
4446    
4447    =head3 remove_obsolete_reactions
4448    Definition:
4449            void FIGMODELmodel->remove_obsolete_reactions();
4450    Description:
4451    =cut
4452    sub remove_obsolete_reactions {
4453            my ($self) = @_;
4454    
4455            (my $dummy,my $translation) = $self->figmodel()->put_two_column_array_in_hash($self->figmodel()->database()->load_multiple_column_file($self->figmodel()->config("Translation directory")->[0]."ObsoleteRxnIDs.txt","\t"));
4456            my $rxnTbl = $self->reaction_table();
4457            if (defined($rxnTbl)) {
4458                    for (my $i=0; $i < $rxnTbl->size(); $i++) {
4459                            my $row = $rxnTbl->get_row($i);
4460                            if (defined($translation->{$row->{LOAD}->[0]}) || defined($translation->{$row->{LOAD}->[0]."r"})) {
4461                                    my $direction = $row->{DIRECTION}->[0];
4462                                    my $newRxn;
4463                                    if (defined($translation->{$row->{LOAD}->[0]."r"})) {
4464                                            $newRxn = $translation->{$row->{LOAD}->[0]."r"};
4465                                            if ($direction eq "<=") {
4466                                                    $direction = "=>";
4467                                            } elsif ($direction eq "=>") {
4468                                                    $direction = "<=";
4469                                            }
4470                                    } else {
4471                                            $newRxn = $translation->{$row->{LOAD}->[0]};
4472                                    }
4473                                    #Checking if the new reaction is already in the model
4474                                    my $newRow = $rxnTbl->get_row_by_key($newRxn,"LOAD");
4475                                    if (defined($newRow)) {
4476                                            #Handling direction
4477                                            if ($newRow->{DIRECTION}->[0] ne $direction) {
4478                                                    $newRow->{DIRECTION}->[0] = "<=>";
4479                                            }
4480                                            push(@{$row->{"ASSOCIATED PEG"}},@{$rxnTbl->get_row($i)->{"ASSOCIATED PEG"}});
4481                                    } else {
4482                                            $rxnTbl->get_row($i)->{LOAD}->[0] = $newRxn;
4483                                            $rxnTbl->get_row($i)->{DIRECTION}->[0] = $direction;
4484                                    }
4485                            }
4486                    }
4487                    $rxnTbl->save();
4488            }
4489    }
4490    
4491  1;  1;

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.13

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3