[Bio] / FigKernelScripts / accumulate_pegs_to_scenario_paths.pl Repository:
ViewVC logotype

Annotation of /FigKernelScripts/accumulate_pegs_to_scenario_paths.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : dejongh 1.1 use strict;
2 :     use FIG;
3 :    
4 :     unless (scalar @ARGV == 1)
5 :     {
6 :     print "usage: accumulate_pegs_to_scenario_paths <genome_id>\n";
7 :     exit(-1);
8 :     }
9 :    
10 :     my ($genome_id) = @ARGV;
11 :    
12 :     open(HS, "<$FIG_Config::global/Models/hope_supersets.txt")
13 :     or die("Couldn't open hope_supersets.txt");
14 :    
15 :     my $fig = new FIG;
16 :     my $model_dir = $fig->scenario_directory("All");
17 :    
18 :     while (<HS>)
19 :     {
20 :     chomp;
21 :     my ($superset, $ss_name) = split "\t";
22 :    
23 :     $superset =~ s/\s+$//g;
24 :     $superset =~ s/\s+/_/g;
25 :     $ss_name =~ s/\s+$//g;
26 :     my $inner_ss_name = $ss_name;
27 :     $inner_ss_name =~ s/\(/\\\(/g;
28 :     $inner_ss_name =~ s/\)/\\\)/g;
29 :    
30 :     my $ss = $fig->get_subsystem($ss_name);
31 :    
32 :     if (! defined $ss) {
33 :     print STDERR "$ss_name does not exist, skipping\n";
34 :     next;
35 :     }
36 :     else {
37 :     print STDERR "Processing $ss_name\n";
38 :     }
39 :    
40 :     my %roles = map { $_ => 1 } $ss->get_roles;
41 :    
42 :     my %reactions = $ss->get_hope_reactions;
43 :    
44 :     foreach my $role (keys %reactions)
45 :     {
46 :     if (! exists $roles{$role}) {
47 :     print STDERR "In $ss_name, missing role: $role\n";
48 :     next;
49 :     }
50 :    
51 :     my @pegs = $fig->seqs_with_role($role, "", $genome_id);
52 :    
53 :     if (scalar @pegs > 0)
54 :     {
55 :     my %scenarios;
56 :    
57 :     foreach my $reaction (@{$reactions{$role}})
58 :     {
59 :     my @stuff = `find -L $model_dir/PathInfo/$superset/$inner_ss_name -name path_info -exec grep -l $reaction {} \\\;`;
60 :    
61 :     foreach my $path (@stuff)
62 :     {
63 :     my @path_guts = split "/", $path;
64 :     $scenarios{$path_guts[-3]}->{$path_guts[-2]}->{$reaction} = 1;
65 :     }
66 :     }
67 :    
68 :     foreach my $peg (@pegs)
69 :     {
70 :     foreach my $scenario (keys %scenarios)
71 :     {
72 :     foreach my $path (keys %{$scenarios{$scenario}})
73 :     {
74 :     foreach my $reaction (keys %{$scenarios{$scenario}->{$path}})
75 :     {
76 :     print $peg, "\t", $reaction, "\t", $role, "\t", $path, "\t", $scenario, "\t", $ss_name, "\t", $superset, "\n";
77 :     }
78 :     }
79 :     }
80 :     }
81 :    
82 :     }
83 :     }
84 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3