annotate flexbar.pl @ 19:885602df4554 draft

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