Mercurial > repos > iuc > snippy
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 |
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 } |