14
|
1 #!/usr/bin/env perl
|
|
2
|
|
3 # Flexbar wrapper for Galaxy tool definition, version 2.5
|
|
4 # Author: Johannes Roehr
|
|
5 # modified by Daniel Maticzka to include additional user-choosable output prefix
|
|
6
|
|
7 use warnings;
|
|
8 use strict;
|
|
9
|
|
10 # this parses the last 4 arguments
|
|
11 # what is id -> xml $output.id
|
|
12 # what is folder -> xml $__new_file_path__
|
|
13 # what is format? -> xml $reads.ext
|
|
14 my ($outFile, $id, $folder, $format, $output_prefix) = @ARGV[($#ARGV - 4) .. $#ARGV];
|
|
15
|
|
16 # this parses all but the last four arguments
|
|
17 # contains the call to the flexbar actual
|
|
18 my $call = join " ", @ARGV[0..($#ARGV - 5)];
|
|
19
|
|
20 # this calls flexbar and
|
|
21 # prefix for output files will be "FlexbarTargetFile"
|
|
22 system $call .' --target FlexbarTargetFile > '. $outFile and exit 1;
|
|
23
|
|
24 # now we parse all output files
|
|
25 foreach(<FlexbarTargetFile*>){
|
|
26
|
|
27 # determine filetype
|
|
28 my $fileType;
|
|
29
|
|
30 $fileType = $1 if /\.(\w+)$/;
|
|
31 $fileType = $format if /\.\w*fast\w$/;
|
|
32 $fileType = 'fasta' if /\.fasta$/;
|
|
33 $fileType = 'csfasta' if /\.csfasta$/;
|
|
34 $fileType = 'tabular' if /\.lengthdist$/;
|
|
35
|
|
36 # this is just the filename from the for loop
|
|
37 my $file = $_;
|
|
38
|
|
39 # replace underscores by minus in $_
|
|
40 s/_/-/g;
|
|
41
|
|
42 # set new name for output files
|
|
43 my $name = "primary_". $id ."_". $_ ."_visible_". $fileType;
|
|
44
|
|
45 # rename output file to a pattern recognized by flexbar?
|
|
46 rename $file, $name;
|
|
47 # best guess: this seems to move the file into a folder
|
|
48 # rename behavious is not specified by perl... or implementation differs.
|
|
49 rename $name, $folder;
|
|
50 }
|