diff fastx_barcode_splitter_galaxy_wrapper.sh @ 0:84bbf4fd24c3 draft

Initial toolshed version with support for separate index reads and automatic loading of results into Galaxy history.
author lparsons
date Fri, 08 Nov 2013 09:53:39 -0500
parents
children b7b3d008e2d3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fastx_barcode_splitter_galaxy_wrapper.sh	Fri Nov 08 09:53:39 2013 -0500
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+#    FASTX-toolkit - FASTA/FASTQ preprocessing tools.
+#    Copyright (C) 2009  A. Gordon (gordon@cshl.edu)
+#
+#   This program is free software: you can redistribute it and/or modify
+#   it under the terms of the GNU Affero General Public License as
+#   published by the Free Software Foundation, either version 3 of the
+#   License, or (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#  Modified by Lance Parsons (lparsons@princeton.edu)
+#	2011-03-15	Adapted to allow galaxy to determine filetype
+#
+#This is a shell script wrapper for 'fastx_barcode_splitter.pl'
+#
+# 1. Output files are saved at the dataset's files_path directory.
+#    
+# 2. 'fastx_barcode_splitter.pl' outputs a textual table.
+#    This script turns it into pretty HTML with working URL
+#    (so lazy users can just click on the URLs and get their files)
+
+if [ "$1x" = "x" ]; then
+	echo "Usage: $0 [BARCODE FILE] [FASTQ FILE] [LIBRARY_NAME] [OUTPUT_PATH] [FILETYPE]" >&2
+	exit 1
+fi
+
+BARCODE_FILE="$1"
+FASTQ_FILE="$2"
+LIBNAME="$3"
+OUTPUT_PATH="$4"
+FILETYPE="$5"
+shift 5
+# The rest of the parameters are passed to the split program
+
+if [ "${OUTPUT_PATH}x" = "x" ]; then
+	echo "Usage: $0 [BARCODE FILE] [FASTQ FILE] [LIBRARY_NAME] [OUTPUT_PATH] [FILETYPE]" >&2
+	exit 1
+fi
+
+#Sanitize library name, make sure we can create a file with this name
+LIBNAME=${LIBNAME%.gz}
+LIBNAME=${LIBNAME%.txt}
+LIBNAME=$(echo "$LIBNAME" | tr -cd '[:alnum:]_')
+
+if [ ! -r "$FASTQ_FILE" ]; then
+	echo "Error: Input file ($FASTQ_FILE) not found!" >&2
+	exit 1
+fi
+if [ ! -r "$BARCODE_FILE" ]; then
+	echo "Error: barcode file ($BARCODE_FILE) not found!" >&2
+	exit 1
+fi
+mkdir -p "$OUTPUT_PATH"
+if [ ! -d "$OUTPUT_PATH" ]; then
+	echo "Error: failed to create output path '$OUTPUT_PATH'" >&2
+	exit 1
+fi
+
+PUBLICURL=""
+BASEPATH="$OUTPUT_PATH/"
+#PREFIX="$BASEPATH"`date "+%Y-%m-%d_%H%M__"`"${LIBNAME}__"
+PREFIX="$BASEPATH""${LIBNAME}_"
+SUFFIX="_visible_$FILETYPE"
+DIRECTORY=$(cd `dirname $0` && pwd)
+
+RESULTS=`gzip -cdf "$FASTQ_FILE" | $DIRECTORY/fastx_barcode_splitter.pl --bcfile "$BARCODE_FILE" --prefix "$PREFIX" --suffix "$SUFFIX" "$@"`
+if [ $? != 0 ]; then
+	echo "error"
+fi
+
+#
+# Convert the textual tab-separated table into simple HTML table,
+# with the local path replaces with a valid URL
+#HTMLSUMMARY=${PREFIX}stats_visible_html
+echo "<html><body><table border=1>" 
+echo "$RESULTS" | sed -r "s|$BASEPATH(.*)|\\1|" | sed '
+i<tr><td>
+s|\t|</td><td>|g
+a<\/td><\/tr>
+'
+echo "<p>"
+echo "</table></body></html>"