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

Annotation of /FortyEight/batch_rast.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : olson 1.1
2 :     use strict;
3 :     use Carp;
4 :     use Job48;
5 :     use FIG_Config;
6 :     use FIG;
7 :    
8 :     #
9 :     # Run a jobdirectory in one shot. For batch offload to a remote cluster that
10 :     # doesn't have our scheduler, etc available.
11 :     #
12 :    
13 :     #
14 :     # Stages are as follows; for now this is a copy and paste exercise from
15 :     # FortyEight/check_jobs.pl. Use caution, don't run with scissors.
16 :     #
17 :    
18 :     #
19 :     # upload
20 :     # rp
21 :     # Check status of keep_genecalls, then qc
22 :     # Check status of correction, then correction
23 :     # preprocess_sims
24 :     # sims
25 :     # bbhs
26 :     # auto_assign
27 :     # glue_contigs
28 :     # pchs
29 :     # scenario
30 :     # export
31 :     #
32 :    
33 : olson 1.2
34 : olson 1.1 @ARGV == 1 or die "Usage: $0 jobdir\n";
35 :    
36 :     my $job_dir = shift;
37 :    
38 :     my $job = new Job48($job_dir);
39 :    
40 : olson 1.2 my $sims_data_dir = $FIG_Config::rast_sims_data;
41 :    
42 :     if (!defined($sims_data_dir))
43 :     {
44 :     $sims_data_dir = $FIG_Config::fortyeight_data;
45 :     }
46 :    
47 :     my $sims_nr = "$sims_data_dir/nr";
48 :     my $sims_peg_synonyms = "$sims_data_dir/peg.synonyms";
49 :     my $sims_keep_count = 300;
50 :    
51 :    
52 : olson 1.1 &do_upload($job);
53 :     &do_rp($job);
54 :     &do_qc($job);
55 :     &do_correction($job);
56 :     &do_sims_preprocess($job);
57 :     &do_sims($job);
58 :     &do_bbhs($job);
59 :     &do_auto_assign($job);
60 :     &do_glue_contigs($job);
61 :     &do_pchs($job);
62 :     &do_scenario($job);
63 :     &do_export($job);
64 :    
65 :     sub do_upload
66 :     {
67 :     my($job) = @_;
68 :     return;
69 :     }
70 :    
71 :     sub do_rp
72 :     {
73 :     my($job) = @_;
74 :     &run("$FIG_Config::bin/rp_rapid_propagation", $job->dir);
75 :     }
76 :    
77 :     sub do_qc
78 :     {
79 :     my($job) = @_;
80 :    
81 :     if ($job->meta->get_metadata("keep_genecalls"))
82 :     {
83 :     $job->meta->add_log_entry($0, "keep_genecalls is enabled: marking qc as complete");
84 :     $job->meta->set_metadata("status.qc", "complete");
85 :     return;
86 :     }
87 :    
88 :     &run("$FIG_Config::bin/rp_quality_check", $job->dir);
89 :     }
90 :    
91 :     sub do_correction
92 :     {
93 :     my($job) = @_;
94 :    
95 :     if ($job->meta->get_metadata("keep_genecalls"))
96 :     {
97 :     $job->meta->add_log_entry($0, "keep_genecalls is enabled: marking correction as complete");
98 :     $job->meta->set_metadata("status.correction", "complete");
99 :     return;
100 :     }
101 :    
102 :     my $correction_list = $job->meta->get_metadata("correction.request");
103 :    
104 :     my $correction_str = join(",", @$correction_list);
105 :     &run("$FIG_Config::bin/rp_correction", $job->dir, $correction_str);
106 :     }
107 :    
108 :     sub do_sims_preprocess
109 :     {
110 :     my($job) = @_;
111 : olson 1.2
112 :     &run("$FIG_Config::bin/rp_preprocess_sims", $job->dir, $sims_nr, $sims_peg_synonyms);
113 :    
114 : olson 1.1 }
115 :    
116 :     sub do_sims
117 :     {
118 :     my($job) = @_;
119 : olson 1.2
120 :     if (!open(CHUNK, "<", $job->dir. "/sims.job/chunk.out"))
121 :     {
122 :     die "Error opening $job_dir/sims.job/chunk.out: $!";
123 :     }
124 :    
125 :     #
126 :     # Extract created task ids
127 :     #
128 :    
129 :     my($task_start, $task_end);
130 :     while (<CHUNK>)
131 :     {
132 :     print;
133 :     chomp;
134 :     if (/^tasks\s+(\d+)\s+(\d+)/)
135 :     {
136 :     $task_start = $1;
137 :     $task_end = $2;
138 :     }
139 :     }
140 :     close(CHUNK);
141 :    
142 :     if (!defined($task_start))
143 :     {
144 :     die "Tasks not found";
145 :     }
146 :    
147 :     my $sims_nr_len = $sims_nr;
148 :     if (-f "$sims_nr-len.btree")
149 :     {
150 :     $sims_nr_len = "$sims_nr-len.btree";
151 :     }
152 :    
153 :     for my $task ($task_start .. $task_end)
154 :     {
155 :     $ENV{SGE_TASK_ID} = $task;
156 :     &run("$FIG_Config::bin/rp_compute_sims", $job->dir);
157 :     }
158 :     &run("$FIG_Config::bin/rp_postproc_sims", $job->dir, $sims_nr_len, $sims_peg_synonyms, $sims_keep_count);
159 : olson 1.1 }
160 :    
161 :     sub do_bbhs
162 :     {
163 :     my($job) = @_;
164 : olson 1.2 &run("$FIG_Config::bin/rp_compute_bbhs", $job->dir);
165 : olson 1.1 }
166 :    
167 :     sub do_auto_assign
168 :     {
169 :     my($job) = @_;
170 : olson 1.2 &run("$FIG_Config::bin/rp_auto_assign", $job->dir);
171 : olson 1.1 }
172 :    
173 :     sub do_glue_contigs
174 :     {
175 :     my($job) = @_;
176 : olson 1.2 &run("$FIG_Config::bin/rp_glue_contigs", $job->dir);
177 : olson 1.1 }
178 :    
179 :     sub do_pchs
180 :     {
181 :     my($job) = @_;
182 : olson 1.2 &run("$FIG_Config::bin/rp_compute_pchs", $job->dir);
183 : olson 1.1 }
184 :    
185 :     sub do_scenario
186 :     {
187 :     my($job) = @_;
188 : olson 1.2 &run("$FIG_Config::bin/rp_scenarios", $job->dir);
189 : olson 1.1 }
190 :    
191 :     sub do_export
192 :     {
193 :     my($job) = @_;
194 : olson 1.2 &run("$FIG_Config::bin/rp_write_exports", $job->dir);
195 : olson 1.1 }
196 :    
197 :    
198 :     sub run
199 :     {
200 :     my(@cmd) = @_;
201 :    
202 :     print "Start: @cmd\n";
203 :     my $rc = system(@cmd);
204 :     if ($rc != 0)
205 :     {
206 :     confess "Cmd failed with rc=$rc: @cmd\n";
207 :     }
208 :     print "Done: @cmd\n";
209 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3