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

Annotation of /FigKernelScripts/run_flux_optimization.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : formsma 1.1 # _*_ Perl _*_
2 :     #
3 :     #
4 :     #
5 :    
6 :     use strict;
7 :     use FIGV;
8 :    
9 :    
10 :     my ($genome_id,$orgdir) = @ARGV;
11 :    
12 :     my $fig;
13 :     if($orgdir)
14 :     {
15 :     $fig = new FIGV($orgdir);
16 :     }
17 :     else
18 :     {
19 :     $fig = new FIGV;
20 :     }
21 :    
22 :     chomp $genome_id;
23 :    
24 :     unless (defined $genome_id)
25 :     {
26 :     print STDERR "\nusage: run_flux_optimization <genome_id>\n";
27 :     exit -1;
28 :     }
29 :    
30 :     my $filebase = $fig->model_directory($genome_id)."/Analysis/";
31 : mkubal 1.3 print STDERR "FO:$filebase\n";
32 : formsma 1.1 my %outputs;
33 :     open(OUTPUTS,$filebase."outputs.txt") or
34 : formsma 1.2 die("Failed to open $filebase\.outputs.txt");
35 : formsma 1.1 while(<OUTPUTS>)
36 :     {
37 :     my @tmp = split "\t" , $_;
38 :     chomp @tmp;
39 :     $outputs{$tmp[0]} = 1;
40 :     }
41 :     close(OUTPUTS);
42 :    
43 :     system(("/vol/biotools/bin/glpsol","--max",$filebase.$genome_id.".mps","-o",$filebase."flux.output"));
44 :    
45 :     #lets analyze the flux output
46 :     my $flux = 0;
47 :     my %sinks_used;
48 :     my %inputs_notused;
49 :     open(FLUX,$filebase."flux.output")
50 :     or die("Failed to open flux file ".$filebase."flux.output");
51 :     while(<FLUX>)
52 :     {
53 :     if($_ =~ /^Objective/)
54 :     {
55 :     my @temp = split " ",$_;
56 :     chomp @temp;
57 :     if($temp[3] > 0)
58 :     {
59 :     $flux = $temp[3];
60 :     }
61 :     }
62 :     if($_ =~ /S(\d{5})/) #Sink rxn
63 :     {
64 :     my @temp = split " ",$_;
65 :     chomp @temp;
66 :     if($temp[3] != 0 && $outputs{"C".$1} != 1)
67 :     {
68 :     $sinks_used{"C".$1} = $temp[3];
69 :     }
70 :     }
71 :     if($_ =~ /U(\d{5})/) #Uptake rxn
72 :     {
73 :     my @temp = split " ",$_;
74 :     chomp @temp;
75 :     if($temp[3] == 0)
76 :     {
77 :     $inputs_notused{"C".$1} = 1;
78 :     }
79 :     }
80 :     }
81 :     close(FLUX);
82 :    
83 : mkubal 1.3 open(OUT,">".$filebase."flux_info.txt");
84 : formsma 1.1
85 :     print OUT "Generated $flux biomass with compound uptake limit of 1000\n\n#######\n\n";
86 :     map { print OUT "Sink $_ excreted $sinks_used{$_}\n";} keys %sinks_used;
87 :     print OUT "\n#########\n\n";
88 :     map { print OUT "Input $_ not used\n";} keys %inputs_notused;
89 :    
90 :     close(OUT);

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3