[Bio] / FortyEight / rp_auto_assign.pl Repository:
ViewVC logotype

Annotation of /FortyEight/rp_auto_assign.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : olson 1.1
2 :     #
3 :     # Perform auto-assignment on unassigned pegs.
4 :     #
5 :    
6 :     use strict;
7 :     use FIG;
8 :     use FIG_Config;
9 :     use File::Basename;
10 :     use GenomeMeta;
11 :    
12 :     @ARGV == 1 or die "Usage: $0 job-dir\n";
13 :    
14 :     my $jobdir = shift;
15 :    
16 :     -d $jobdir or die "$0: job dir $jobdir does not exist\n";
17 :    
18 :     my $genome = &FIG::file_head("$jobdir/GENOME_ID");
19 :     chomp $genome;
20 :     $genome =~ /^\d+\.\d+/ or die "$0: Cannnot find genome ID for jobdir $jobdir\n";
21 :    
22 :     my $meta = new GenomeMeta($genome, "$jobdir/meta.xml");
23 :    
24 :     my $tbl = "$jobdir/rp/$genome/Features/peg/tbl";
25 :     -f $tbl or die "$0: Cannot find tbl file $tbl\n";
26 :    
27 :     my $proposed = "$jobdir/rp/$genome/proposed_functions";
28 :    
29 :     my %done;
30 :    
31 :     if (!open(PROP, "<$proposed"))
32 :     {
33 :     warn "could not open proposed functions $proposed: $!";
34 :     $meta->add_log_entry($0, "could not open proposed fucntions $proposed");
35 :     }
36 :     else
37 :     {
38 :     while (<PROP>)
39 :     {
40 :     chomp;
41 :     my($peg, $assign) = split;
42 :     $done{$peg} = $assign;
43 :     }
44 :     close(PROP);
45 :     }
46 :    
47 : olson 1.4 my $simfile = "$jobdir/rp/$genome/expanded_similarities";
48 : olson 1.1
49 :     open(TBL, "<$tbl") or &fatal("Cannot open tbl file $tbl: $!");
50 :    
51 : olson 1.2 my $cmd = "$FIG_Config::bin/auto_assign sims=$simfile > $jobdir/rp/$genome/proposed_non_ff_functions";
52 : olson 1.1 print "running $cmd\n";
53 :     open(AA, "| $cmd")
54 :     or &fatal("aa failed: $!");
55 :    
56 :     my $peg_count = 0;
57 :     while (<TBL>)
58 :     {
59 :     chomp;
60 :     my($peg, @rest) = split(/\t/);
61 :     if (!$done{$peg})
62 :     {
63 :     $peg_count++;
64 :     print AA "$peg\n";
65 :     }
66 :     }
67 :     close(TBL);
68 :    
69 :     $meta->add_log_entry($0, "computing auto_assign on $peg_count pegs");
70 :    
71 :     if (!close(AA))
72 :     {
73 :     &fatal("error on close \$?=$? \$!=$!");
74 :     }
75 :    
76 :     $meta->add_log_entry($0, "auto_assign completed\n");
77 :     $meta->set_metadata("status.auto_assign", "complete");
78 :    
79 :     sub fatal
80 :     {
81 :     my($msg) = @_;
82 :    
83 :     $meta->add_log_entry($0, ['fatal error', $msg]);
84 :     $meta->set_metadata("status.auto_assign", "error");
85 :    
86 :     croak "$0: $msg";
87 :     }
88 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3