annotate snippy_core_wrapper.pl @ 1:d4e6df2bc5e8 draft

planemo upload commit c295a06009ccafd0c1dc8aba5dd87239795d2b61
author iuc
date Sat, 26 Jan 2019 14:36:18 -0500
parents ff177a01b5ca
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
1 #!/usr/bin/env perl
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
2
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
3 #--------------------------------------
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
4 #
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
5 # snippy_core_wrapper.pl
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
6 #
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
7 # This is an intermediary script between snippy-core.xml and snippy-core
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
8 # It:
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
9 # - Copys the supplied zipped snippy output files to the working dir
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
10 # - Untars them to their datafile name
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
11 # - Builds the snippy-core command
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
12 # - Runs the snippy-core command
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
13 #
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
14 #--------------------------------------
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
15
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
16 use warnings;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
17 use strict;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
18 use File::Copy;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
19 use File::Basename;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
20
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
21 my(@Options, $indirs, $noref);
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
22 setOptions();
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
23
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
24 my @list_of_dirs = split /\s+/, $indirs;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
25
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
26 #The list of final directories to be passed to snippy-core will be stored here.
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
27 my @snippy_outs;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
28
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
29 foreach my $d (@list_of_dirs){
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
30 print STDERR "$d\n";
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
31 my $bn = basename($d);
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
32 my ($name, $dir, $ext) = fileparse($d, '\..*');
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
33 copy($d, $bn);
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
34 print STDERR "$d, $bn, $name, $dir, $ext\n";
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
35 `tar -xf $bn`;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
36 }
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
37
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
38 my $test_list = `ls -d */`;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
39 $test_list =~ s/\///g;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
40 print STDERR "$test_list\n";
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
41
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
42 @snippy_outs = split /\s+/, $test_list;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
43
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
44
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
45 my $commandline = "snippy-core ";
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
46
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
47 $commandline .= "--noref " if $noref;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
48 $commandline .= join(" ", @snippy_outs);
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
49 print STDERR "snippy-core commandline: $commandline\n";
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
50
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
51 my $ok = system($commandline);
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
52
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
53 #----------------------------------------------------------------------
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
54 # Option setting routines
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
55
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
56 sub setOptions {
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
57 use Getopt::Long;
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
58
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
59 @Options = (
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
60 {OPT=>"help", VAR=>\&usage, DESC=>"This help"},
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
61 {OPT=>"noref!", VAR=>\$noref, DEFAULT=>0, DESC=>"Don't include the reference in the alignment."},
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
62 {OPT=>"indirs=s", VAR=>\$indirs, DEFAULT=>"", DESC=>"A whitespace delimited list of the snippy output zipped dirs."},
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
63 );
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
64
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
65 &GetOptions(map {$_->{OPT}, $_->{VAR}} @Options) || usage();
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
66
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
67 # Now setup default values.
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
68 foreach (@Options) {
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
69 if (defined($_->{DEFAULT}) && !defined(${$_->{VAR}})) {
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
70 ${$_->{VAR}} = $_->{DEFAULT};
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
71 }
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
72 }
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
73 }
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
74
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
75 sub usage {
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
76 print "Usage: $0 [options] -i inputfile > ... \n";
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
77 foreach (@Options) {
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
78 printf " --%-13s %s%s.\n",$_->{OPT},$_->{DESC},
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
79 defined($_->{DEFAULT}) ? " (default '$_->{DEFAULT}')" : "";
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
80 }
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
81 exit(1);
ff177a01b5ca planemo upload commit b288d4f48e58e291bda17c5945c281348ee072c7
iuc
parents:
diff changeset
82 }