first commit
This commit is contained in:
67
utils/create_job.pl
Normal file
67
utils/create_job.pl
Normal file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use 5.010;
|
||||
use utf8;
|
||||
|
||||
use Getopt::Long;
|
||||
use File::Spec;
|
||||
|
||||
sub _main {
|
||||
GetOptions( \ my %opts,
|
||||
'i=s',
|
||||
'o=s',
|
||||
'j=s',
|
||||
's=s',
|
||||
't=s',
|
||||
'trans',
|
||||
);
|
||||
|
||||
_create_job_file(
|
||||
File::Spec->rel2abs($opts{i}),
|
||||
File::Spec->rel2abs($opts{o}),
|
||||
File::Spec->rel2abs($opts{j}),
|
||||
$opts{s},
|
||||
$opts{t},
|
||||
$opts{trans}
|
||||
);
|
||||
}
|
||||
|
||||
sub _create_job_file {
|
||||
my ($data_dir, $auto_dir, $job_fn, $src, $tgt, $trans) = @_;
|
||||
my ($src_fns, $tgt_fns) = _get_src_tgt_fns($data_dir, $src, $tgt);
|
||||
my @align_fns = map { my ($id) = $_ =~ /(\d+)\./; $id . '.align'; } @{$src_fns};
|
||||
my @table = map { join "\t", File::Spec->catfile($data_dir, $src_fns->[$_]),
|
||||
File::Spec->catfile($data_dir, $tgt_fns->[$_]),
|
||||
File::Spec->catfile($auto_dir, $align_fns[$_]) } ( 0 .. scalar @{$src_fns} - 1 );
|
||||
if ( $trans ) {
|
||||
my @trans_fns = map { my ($id) = $_ =~ /(\d+)\./; $id . '.trans'; } @{$src_fns};
|
||||
@table = map { join "\t", (File::Spec->catfile($data_dir, $trans_fns[$_]), $table[$_]) } ( 0 .. scalar @table - 1 );
|
||||
}
|
||||
|
||||
#my $job_fn = File::Spec->catfile($job_dir, $aligner . '.job');
|
||||
open my $OUT, '>:utf8', $job_fn;
|
||||
binmode $OUT; # output unix-like LF(\n) instead of CRLF(\r\n)
|
||||
print $OUT join "\n", @table;
|
||||
}
|
||||
|
||||
sub _get_src_tgt_fns {
|
||||
my ($dir, $src, $tgt) = @_;
|
||||
my ($src_fns, $tgt_fns);
|
||||
opendir(my $DH, $dir);
|
||||
foreach my $fn ( sort readdir $DH ) {
|
||||
next if $fn =~ /^\./;
|
||||
push @{$src_fns}, $fn if $fn =~ /\.$src\z/;
|
||||
push @{$tgt_fns}, $fn if $fn =~ /\.$tgt\z/;
|
||||
}
|
||||
return ($src_fns, $tgt_fns);
|
||||
}
|
||||
|
||||
|
||||
unless ( caller ) {
|
||||
_main();
|
||||
}
|
||||
|
||||
__END__
|
||||
Reference in New Issue
Block a user