annotate fastx_barcode_splitter_galaxy_wrapper.sh @ 1:1daaf4774a43 draft

Uploaded
author lparsons
date Thu, 07 Nov 2013 16:34:52 -0500
parents 8dc0438702c7
children e958c1e00122
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
1 #!/bin/bash
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
2
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
3 # FASTX-toolkit - FASTA/FASTQ preprocessing tools.
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
4 # Copyright (C) 2009 A. Gordon (gordon@cshl.edu)
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
5 #
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
6 # This program is free software: you can redistribute it and/or modify
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
7 # it under the terms of the GNU Affero General Public License as
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
8 # published by the Free Software Foundation, either version 3 of the
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
9 # License, or (at your option) any later version.
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
10 #
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
11 # This program is distributed in the hope that it will be useful,
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
14 # GNU Affero General Public License for more details.
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
15 #
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
16 # You should have received a copy of the GNU Affero General Public License
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
18
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
19 # Modified by Lance Parsons (lparsons@princeton.edu)
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
20 # 2011-03-15 Adapted to allow galaxy to determine filetype
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
21 #
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
22 #This is a shell script wrapper for 'fastx_barcode_splitter.pl'
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
23 #
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
24 # 1. Output files are saved at the dataset's files_path directory.
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
25 #
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
26 # 2. 'fastx_barcode_splitter.pl' outputs a textual table.
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
27 # This script turns it into pretty HTML with working URL
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
28 # (so lazy users can just click on the URLs and get their files)
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
29
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
30 if [ "$1x" = "x" ]; then
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
31 echo "Usage: $0 [BARCODE FILE] [FASTQ FILE] [LIBRARY_NAME] [OUTPUT_PATH] [FILETYPE]" >&2
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
32 exit 1
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
33 fi
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
34
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
35 BARCODE_FILE="$1"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
36 FASTQ_FILE="$2"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
37 LIBNAME="$3"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
38 OUTPUT_PATH="$4"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
39 FILETYPE="$5"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
40 shift 5
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
41 # The rest of the parameters are passed to the split program
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
42
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
43 if [ "${OUTPUT_PATH}x" = "x" ]; then
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
44 echo "Usage: $0 [BARCODE FILE] [FASTQ FILE] [LIBRARY_NAME] [OUTPUT_PATH] [FILETYPE]" >&2
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
45 exit 1
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
46 fi
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
47
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
48 #Sanitize library name, make sure we can create a file with this name
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
49 LIBNAME=${LIBNAME%.gz}
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
50 LIBNAME=${LIBNAME%.txt}
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
51 LIBNAME=$(echo "$LIBNAME" | tr -cd '[:alnum:]_')
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
52
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
53 if [ ! -r "$FASTQ_FILE" ]; then
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
54 echo "Error: Input file ($FASTQ_FILE) not found!" >&2
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
55 exit 1
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
56 fi
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
57 if [ ! -r "$BARCODE_FILE" ]; then
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
58 echo "Error: barcode file ($BARCODE_FILE) not found!" >&2
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
59 exit 1
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
60 fi
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
61 mkdir -p "$OUTPUT_PATH"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
62 if [ ! -d "$OUTPUT_PATH" ]; then
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
63 echo "Error: failed to create output path '$OUTPUT_PATH'" >&2
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
64 exit 1
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
65 fi
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
66
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
67 PUBLICURL=""
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
68 BASEPATH="$OUTPUT_PATH/"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
69 #PREFIX="$BASEPATH"`date "+%Y-%m-%d_%H%M__"`"${LIBNAME}__"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
70 PREFIX="$BASEPATH""${LIBNAME}_"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
71 SUFFIX="_visible_$FILETYPE"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
72
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
73 RESULTS=`gzip -cdf "$FASTQ_FILE" | fastx_barcode_splitter.pl --bcfile "$BARCODE_FILE" --prefix "$PREFIX" --suffix "$SUFFIX" "$@"`
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
74 if [ $? != 0 ]; then
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
75 echo "error"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
76 fi
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
77
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
78 #
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
79 # Convert the textual tab-separated table into simple HTML table,
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
80 # with the local path replaces with a valid URL
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
81 #HTMLSUMMARY=${PREFIX}stats_visible_html
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
82 echo "<html><body><table border=1>"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
83 echo "$RESULTS" | sed -r "s|$BASEPATH(.*)|\\1|" | sed '
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
84 i<tr><td>
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
85 s|\t|</td><td>|g
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
86 a<\/td><\/tr>
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
87 '
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
88 echo "<p>"
8dc0438702c7 Uploaded
lparsons
parents:
diff changeset
89 echo "</table></body></html>"