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

Diff of /FigKernelPackages/model.pm

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

revision 1.13, Wed May 30 16:10:24 2007 UTC revision 1.14, Tue Jul 17 15:58:27 2007 UTC
# Line 36  Line 36 
36  package model;  package model;
37    
38  use strict;  use strict;
39    use Scenario;
40  use FIG;  use FIG;
41  use Subsystem;  use Subsystem;
42  use File::Path;  use File::Path;
# Line 3711  Line 3712 
3712      close OUT_CONN;      close OUT_CONN;
3713  }  }
3714    
3715    sub predict_pegs_used
3716    {
3717        my ($genome_id) = @_;
3718        my @scenarios = @{Scenario->get_genome_scenarios("All",1)};
3719        unless(scalar(@scenarios))
3720        {
3721            return undef;
3722        }
3723        my %reaction_to_pegs;
3724        my $ss_file = "$FIG_Config::global/Models/hope_supersets.txt";
3725    
3726        my @ss_names;
3727        my %superset_to_ss = %{model::load_superset_file($ss_file)};
3728        foreach (keys %superset_to_ss)
3729        {
3730            foreach my $subsys (@{$superset_to_ss{$_}})
3731            {
3732                push @ss_names, $subsys;
3733            }
3734    
3735        }
3736        foreach my $subsystem_name(@ss_names)
3737        {
3738            my $subsystem = $fig->get_subsystem($subsystem_name);
3739            next if(!defined $subsystem);
3740            my $reactions_for_ss = $subsystem->get_hope_reactions_for_genome($genome_id);
3741            next if(!defined $reactions_for_ss);
3742            foreach my $reaction (keys %$reactions_for_ss)
3743            {
3744                if(defined $reaction_to_pegs{$reaction})
3745                {
3746                    push @{$reaction_to_pegs{$reaction}} , @{$reactions_for_ss->{$reaction}};
3747                }
3748                else
3749                {
3750                    $reaction_to_pegs{$reaction} = $reactions_for_ss->{$reaction};
3751                }
3752            }
3753        }
3754    
3755        my %peg_to_scenario;
3756        foreach my $scenario (@scenarios)
3757        {
3758            my @scenario_reactions = @{$scenario->get_reaction_ids};
3759            my $path_valid = 1;
3760            my %pegs;
3761            foreach my $reaction (@scenario_reactions)
3762            {
3763                if(!defined $reaction_to_pegs{$reaction})
3764                {
3765                    $path_valid = 0;
3766                    last;
3767                }
3768                else
3769                {
3770                    map {$pegs{$_} = 1} @{$reaction_to_pegs{$reaction}};
3771                }
3772            }
3773            if($path_valid)
3774            {
3775                foreach my $peg (keys %pegs)
3776                {
3777                    if(!defined $peg_to_scenario{$peg})
3778                    {
3779                        $peg_to_scenario{$peg} = [$scenario->get_id()];
3780                    }
3781                    else
3782                    {
3783                        push @{$peg_to_scenario{$peg}} , $scenario->get_id();
3784                    }
3785                }
3786            }
3787        }
3788    
3789        return \%peg_to_scenario;
3790    }
3791  1;  1;

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3