PageRenderTime 25ms CodeModel.GetById 10ms app.highlight 9ms RepoModel.GetById 1ms app.codeStats 0ms

/tools/fastx_toolkit/fastx_barcode_splitter_galaxy_wrapper.sh

https://bitbucket.org/cistrome/cistrome-harvard/
Shell | 80 lines | 41 code | 9 blank | 30 comment | 7 complexity | 8a923b8288c6cffc061819f0defa6aad MD5 | raw file
 1#!/bin/bash
 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
28BARCODE_FILE="$1"
29FASTQ_FILE="$2"
30LIBNAME="$3"
31OUTPUT_PATH="$4"
32shift 4
33# The rest of the parameters are passed to the split program
34
35if [ "$OUTPUT_PATH" == "" ]; then
36	echo "Usage: $0 [BARCODE FILE] [FASTQ FILE] [LIBRARY_NAME] [OUTPUT_PATH]" >&2
37	exit 1
38fi
39
40#Sanitize library name, make sure we can create a file with this name
41LIBNAME=${LIBNAME//\.gz/}
42LIBNAME=${LIBNAME//\.txt/}
43LIBNAME=${LIBNAME//[^[:alnum:]]/_}
44
45if [ ! -r "$FASTQ_FILE" ]; then
46	echo "Error: Input file ($FASTQ_FILE) not found!" >&2
47	exit 1
48fi
49if [ ! -r "$BARCODE_FILE" ]; then
50	echo "Error: barcode file ($BARCODE_FILE) not found!" >&2
51	exit 1
52fi
53mkdir -p "$OUTPUT_PATH"
54if [ ! -d "$OUTPUT_PATH" ]; then
55	echo "Error: failed to create output path '$OUTPUT_PATH'" >&2
56	exit 1
57fi
58
59PUBLICURL=""
60BASEPATH="$OUTPUT_PATH/"
61#PREFIX="$BASEPATH"`date "+%Y-%m-%d_%H%M__"`"${LIBNAME}__"
62PREFIX="$BASEPATH""${LIBNAME}__"
63SUFFIX=".txt"
64
65RESULTS=`zcat -f "$FASTQ_FILE" | fastx_barcode_splitter.pl --bcfile "$BARCODE_FILE" --prefix "$PREFIX" --suffix "$SUFFIX" "$@"`
66if [ $? != 0 ]; then
67	echo "error"
68fi
69
70#
71# Convert the textual tab-separated table into simple HTML table,
72# with the local path replaces with a valid URL
73echo "<html><body><table border=1>"
74echo "$RESULTS" | sed -r "s|$BASEPATH(.*)|<a href=\"\\1\">\\1</a>|" | sed '
75i<tr><td>
76s|\t|</td><td>|g
77a<\/td><\/tr>
78'
79echo "<p>"
80echo "</table></body></html>"