annotate snippy_core_wrapper.pl @ 0:c9a8ef2aa380 draft

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