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