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

Annotation of /FigKernelScripts/get_evaluation_check_rast_new_vs_old.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : bartels 1.1 #!/usr/bin/env /home/bartels/FIGdisk/env/cee/bin/perl
2 :    
3 :     use Data::Dumper;
4 :     use Carp;
5 :     use FIG_Config;
6 :     use FIGV;
7 :     use Getopt::Std;
8 :     use strict;
9 :     use warnings;
10 :    
11 :     $ENV{'BLASTMAT'} = "/home/bartels/FIGdisk/BLASTMAT";
12 :     $ENV{'FIG_HOME'} = "/home/bartels/FIGdisk";
13 :    
14 :     getopts ( 'j:r:s:hcnt:zk:' );
15 :    
16 :     our ( $opt_j, $opt_k, $opt_r, $opt_s, $opt_h, $opt_c, $opt_n, $opt_t, $opt_z );
17 :    
18 :     if ( defined( $opt_h ) ) {
19 :     &usage;
20 :     exit( 0 );
21 :     }
22 :    
23 :     if ( !defined( $opt_j ) || !defined( $opt_r ) || !defined( $opt_s ) || !defined( $opt_t ) || !defined( $opt_z ) ) {
24 :     &usage;
25 :     exit( 0 );
26 :     }
27 :    
28 :     # Edit login in shebang too!
29 :     my $job = $opt_j;
30 :     my $job2 = $opt_k;
31 :     my $rast_org_id = $opt_r;
32 :     my $seed_org_id = $opt_s;
33 :     my $base_dir = $opt_t;
34 :    
35 :     # static
36 :     my $result_dir = $base_dir . "/results";
37 :     my $input_orgs_file = $base_dir. "/orgs";
38 :     my $input_file = $result_dir . "/$rast_org_id-$seed_org_id";
39 :     my $result_file = $result_dir . "/comparison";
40 :     my $org_dir_1 = "/vol/48-hour/Jobs/$job/rp/";
41 :     my $rast_org_dir = "/vol/48-hour/Jobs/$job/rp/$rast_org_id";
42 :    
43 :     if ( $opt_n ) {
44 :     $org_dir_1 = "/vol/48-hour/Jobs.dev/$job/rp/";
45 :     $rast_org_dir = "/vol/48-hour/Jobs.dev/$job/rp/$rast_org_id";
46 :     }
47 :    
48 :     my $org_dir_2 = "/vol/48-hour/Jobs.dev/$job2/rp/";
49 :     my $rast_org_dir2 = "/vol/48-hour/Jobs.dev/$job2/rp/$seed_org_id";
50 :    
51 :     open ( ORGFILE, ">$input_orgs_file" ) or die $!;
52 :     print ORGFILE "$rast_org_id\t$seed_org_id";
53 :     close ORGFILE;
54 :    
55 :     print $FIG_Config::bin."/make_peg_maps $org_dir_1 $org_dir_2 $result_dir < $input_orgs_file\n";
56 :     system( $FIG_Config::bin."/make_peg_maps $org_dir_1 $org_dir_2 $result_dir < $input_orgs_file" );
57 :    
58 :     my $fig = new FIGV($rast_org_dir);
59 :     my $fig2 = new FIGV($rast_org_dir2);
60 :    
61 :     open(IN, $input_file) or die "could not open $input_file\n";
62 :     open(OUT, ">$result_file") or die "could not open $result_file\n";
63 :     while (<IN>) {
64 :     $_ =~ /(.+)\t(.+)/;
65 :     my $id1 = $1;
66 :     my $id2 = $2;
67 :     chomp($id2);
68 :    
69 :     my $f1 = $fig->function_of($id1, "master");
70 :     my $f2 = $fig2->function_of($id2, "master");
71 :    
72 :     print OUT $id1;
73 :    
74 :     if ( !$opt_c ) {
75 :     print OUT "\t" .$f1;
76 :     }
77 :    
78 :     my @subsystems_id1 = $fig->subsystems_for_peg( $id1 );
79 :     my $unisubsystems_id1 = uniquify( \@subsystems_id1 );
80 :     @subsystems_id1 = @$unisubsystems_id1;
81 :    
82 :     if ( $opt_z ) {
83 :     my $in = 0;
84 :     print OUT "\t";
85 :     foreach my $ss ( @subsystems_id1 ) {
86 :     if ( $in ) {
87 :     print OUT '~';
88 :     }
89 :     print OUT $ss;
90 :     $in = 1;
91 :     }
92 :     if ( !$in ) {
93 :     print OUT "0";
94 :     }
95 :     }
96 :     else {
97 :     print OUT "\t".scalar( @subsystems_id1 );
98 :     }
99 :    
100 :     print OUT "\t" . $id2;
101 :    
102 :     if ( !$opt_c ) {
103 :     print OUT "\t" . $f2;
104 :     }
105 :    
106 :     my @subsystems_id2 = $fig2->subsystems_for_peg( $id2 );
107 :     my $unisubsystems_id2 = uniquify( \@subsystems_id2 );
108 :     @subsystems_id2 = @$unisubsystems_id2;
109 :     if ( $opt_z ) {
110 :     my $in = 0;
111 :     print OUT "\t";
112 :     foreach my $ss ( @subsystems_id2 ) {
113 :     if ( $in ) {
114 :     print OUT '~';
115 :     }
116 :     print OUT $ss;
117 :     $in = 1;
118 :     }
119 :     if ( !$in ) {
120 :     print OUT "0";
121 :     }
122 :     }
123 :     else {
124 :     print OUT "\t".scalar( @subsystems_id2 );
125 :     }
126 :    
127 :    
128 :     my $issame = "different";
129 :     if ( $f1 eq $f2 ) {
130 :     $issame = "same";
131 :     }
132 :     else {
133 :     my ( $sfs ) = SameFunc::same_func_why( $f1, $f2 );
134 :     if ( $sfs ) {
135 :     $issame = "samefunc";
136 :     }
137 :     }
138 :     print OUT "\t$issame\n";
139 :     }
140 :     close OUT;
141 :     close IN;
142 :    
143 :     sub usage {
144 :    
145 :     print STDERR "get_evaluation_check.pl\n";
146 :     print STDERR "\t-r <Genome id on the RAST server>\n";
147 :     print STDERR "\t-j <Job id on the RAST server>\n";
148 :     print STDERR "\t-s <Genome id in the SEED>\n";
149 :     print STDERR "\t-t <output target directory>\n";
150 :     print STDERR "\t-z <prints out subsystems names divided by ~ instead of the number of subsystems>\n";
151 :     print STDERR "\t-c flag if you want a 5-column table not including the functions\n";
152 :     print STDERR "\t-n flag if you want to use the development version of the RAST server\n\n";
153 :    
154 :     }
155 :    
156 :     sub uniquify {
157 :     my ( $arr ) = @_;
158 :    
159 :     my $hash;
160 :     foreach my $e ( @$arr ) {
161 :     $hash->{ $e->[0] } = 1;
162 :     }
163 :    
164 :     my @back = keys %$hash;
165 :     return \@back;
166 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3