[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.1 - (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 :     my %outputs;
32 :     open(OUTPUTS,$filebase."outputs.txt") or
33 :     die("Failed to open $filebase.outputs.txt");
34 :     while(<OUTPUTS>)
35 :     {
36 :     my @tmp = split "\t" , $_;
37 :     chomp @tmp;
38 :     $outputs{$tmp[0]} = 1;
39 :     }
40 :     close(OUTPUTS);
41 :    
42 :     system(("/vol/biotools/bin/glpsol","--max",$filebase.$genome_id.".mps","-o",$filebase."flux.output"));
43 :    
44 :     #lets analyze the flux output
45 :     my $flux = 0;
46 :     my %sinks_used;
47 :     my %inputs_notused;
48 :     open(FLUX,$filebase."flux.output")
49 :     or die("Failed to open flux file ".$filebase."flux.output");
50 :     while(<FLUX>)
51 :     {
52 :     if($_ =~ /^Objective/)
53 :     {
54 :     my @temp = split " ",$_;
55 :     chomp @temp;
56 :     if($temp[3] > 0)
57 :     {
58 :     $flux = $temp[3];
59 :     }
60 :     }
61 :     if($_ =~ /S(\d{5})/) #Sink rxn
62 :     {
63 :     my @temp = split " ",$_;
64 :     chomp @temp;
65 :     if($temp[3] != 0 && $outputs{"C".$1} != 1)
66 :     {
67 :     $sinks_used{"C".$1} = $temp[3];
68 :     }
69 :     }
70 :     if($_ =~ /U(\d{5})/) #Uptake rxn
71 :     {
72 :     my @temp = split " ",$_;
73 :     chomp @temp;
74 :     if($temp[3] == 0)
75 :     {
76 :     $inputs_notused{"C".$1} = 1;
77 :     }
78 :     }
79 :     }
80 :     close(FLUX);
81 :    
82 :     open(OUT,">".$filebase."info_flux.txt");
83 :    
84 :     print OUT "Generated $flux biomass with compound uptake limit of 1000\n\n#######\n\n";
85 :     map { print OUT "Sink $_ excreted $sinks_used{$_}\n";} keys %sinks_used;
86 :     print OUT "\n#########\n\n";
87 :     map { print OUT "Input $_ not used\n";} keys %inputs_notused;
88 :    
89 :     close(OUT);

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3