Repository 'bundle_collections'
hg clone https://toolshed.g2.bx.psu.edu/repos/nml/bundle_collections

Changeset 0:bae199dc511f (2015-11-20)
Next changeset 1:cd6da887a5f4 (2017-08-04)
Commit message:
planemo upload commit 75c510cf71217015f3f83baf61a4a54a3a1f4bfd
added:
bundle_collection.pl
bundle_collection.xml
b
diff -r 000000000000 -r bae199dc511f bundle_collection.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bundle_collection.pl Fri Nov 20 10:23:17 2015 -0500
b
@@ -0,0 +1,120 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use File::Copy;
+use File::Basename;
+use Getopt::Long;
+use Pod::Usage;
+
+my ($html_file, $html_path, @args, %information, $folder);
+
+Getopt::Long::Configure('bundling');
+GetOptions(
+ 'i|input=s' => \@args,
+ 'h|html=s' => \$html_file,
+ 'p|path=s' => \$html_path
+ );
+
+pod2usage(1) unless @args && $html_file && $html_path;
+
+#At this point, the output directory does not exist yet. So we have to make it
+mkdir $html_path or die "Could not make directory $!";
+
+#Now make a folder for all our files
+my $data_folder = $html_path."/Bundled_Collection";
+mkdir $data_folder or die "Could not make directory $!";
+
+#Go through each list item
+foreach my $entry (@args)
+{
+ #Get key and value. Remove any spaces
+ my ($info, $file) = split /=/, $entry;
+ my ($name, $ext) = split /,/, $info;
+ $name=~s/ /_/g;
+ my $full_name = $name.".".$ext;
+
+ #We store this for later to make the html file
+ $information{$name}{$ext}=1;
+
+ #copy each file to its directory
+
+ my $file_path = $data_folder."/".$full_name;
+
+ copy($file,$file_path) or die "Could not copy $file to $file_path: $!";
+}
+
+#Write out the html file
+open my $out, ">", $html_file or die "Could not open html file: $!";
+
+my $num_keys = scalar(keys %information);
+my $num_vals = scalar(@args);
+
+printf $out "<!DOCTYPE html>
+<html>
+<style type=\"text/css\">
+
+body {
+        font-family: sans-serif;
+        color: #000;
+        }
+
+table {
+        margin-left: 3em;
+        text-align: center;
+        }
+th {
+        text-align:center;
+        background-color: #000080;
+        color: #FFF;
+        padding: 0.4em;
+        }
+td {
+        font-family: monospace;
+        text-align: left;
+        background-color: #EEE;
+        color: #000;
+        padding: 0.4em;
+        }
+h2 {
+        color: #800000;
+        padding-bottom: 0;
+        margin-bottom: 0;
+        clear: left;
+        }
+</style></head>
+
+  <body>
+
+<h2 id=\"M0\">Bundle Collection Summary</h2><br><br>
+
+Number of keys: $num_keys<br>
+Number of values: $num_vals<br><br> 
+
+<table border=\"1\"><tr><th>File name</th><th>File type</th></tr>";
+
+foreach my $key (sort(keys %information))
+{
+
+ foreach my $val (keys %{$information{$key}} )
+ {
+ printf $out "<tr><td>$key</td><td>$val</td></tr>";
+ }
+}
+
+printf $out "</table></body></html>";
+
+close $out;
+
+__END__
+
+=head1 name
+
+ bundle_collection.pl - Downloads a collection from Galaxy
+
+=head1 SYNOPSIS
+
+ bundle_collection.pl -h html_file -p output_path -o "key=value"
+
+=back
+=cut
\ No newline at end of file
b
diff -r 000000000000 -r bae199dc511f bundle_collection.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bundle_collection.xml Fri Nov 20 10:23:17 2015 -0500
[
@@ -0,0 +1,28 @@
+<tool id="bundle_collection" name="Bundle Collection" version="1.0.1">
+ <description>Download a collection of files</description>
+ <command interpreter="perl">bundle_collection.pl -h $html_file -p $html_file.files_path
+ #for $f in $input.keys
+ -i "$f,$input[$f].ext=$input[$f]" 
+ #if $input[$f].metadata.bam_index and $input[$f].metadata.bam_index != "None"
+ #set $bamind = $f+","+$input[$f].ext+".bai="+$input[$f].metadata.bam_index
+ -i "$bamind"
+ #end if
+ #end for
+ </command>
+
+ <inputs>
+ <param name="input" type="data_collection" label="Data Collection" collection_type="list"/>
+ </inputs>
+
+ <outputs>
+ <data name="html_file" format="html" label="Bundled Collection" />
+ </outputs>
+ <help>
+ ***What it does**
+
+ This tool will bundle up files in a list collection into a downloadable zip file
+
+ Author: Mariam Iskander and Jen Cabral
+ </help>
+
+</tool>