annotate fastx_barcode_splitter_galaxy_wrapper.sh @ 0:78a7d28f2a15 draft

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