Mercurial > repos > youngkim > ezbamqc
comparison ezBAMQC.sh @ 18:494b5cd02238
bash script
author | youngkim |
---|---|
date | Wed, 30 Mar 2016 13:39:05 -0400 |
parents | BAMqc.sh@b4ff32b63fcd |
children |
comparison
equal
deleted
inserted
replaced
17:161866cee2a2 | 18:494b5cd02238 |
---|---|
1 #!/bin/sh | |
2 | |
3 ### Galaxy Wrapper for ezBAMQC ### | |
4 | |
5 alignment_files="" | |
6 refgene="" | |
7 attrID="" | |
8 rRNA="" | |
9 outputHTML="" | |
10 stranded="" | |
11 mapq="30" | |
12 lowBound="-250" | |
13 upperBound="250" | |
14 stepSize="5" | |
15 labels="" | |
16 cores="1" | |
17 | |
18 ARGS=$(getopt -o "r:f:R:o:s:p:q:" -- "$@") | |
19 | |
20 if [ $? -ne 0 ]; then | |
21 echo "Invalid command-line parameters. Do not use this script outside of Galaxy" >&2 | |
22 exit 1 | |
23 fi | |
24 | |
25 eval set -- "$ARGS" | |
26 | |
27 while [ $# -gt 0 ]; do | |
28 case "$1" in | |
29 -r) | |
30 refgene="$2" | |
31 shift 2 | |
32 ;; | |
33 -f) | |
34 attrID="$2" | |
35 shift 2 | |
36 ;; | |
37 -R) | |
38 rRNA="$2" | |
39 shift 2 | |
40 ;; | |
41 -o) | |
42 outputHTML=$2 | |
43 shift 2 | |
44 ;; | |
45 -s) | |
46 stranded=$2 | |
47 shift 2 | |
48 ;; | |
49 -q) | |
50 mapq=$2 | |
51 shift 2 | |
52 ;; | |
53 | |
54 -p) | |
55 cores=$2 | |
56 shift 2 | |
57 ;; | |
58 --) | |
59 shift | |
60 break | |
61 ;; | |
62 esac | |
63 done | |
64 | |
65 if [ "$cores" -gt 10 ];then | |
66 cores="10" | |
67 fi | |
68 | |
69 outputDir=`echo $outputHTML | sed 's/\.dat$/_files/'` | |
70 if [ ! -d "$outputDir" ]; then | |
71 mkdir $outputDir | |
72 fi | |
73 | |
74 touch ezbamqc.log | |
75 | |
76 while [ "$#" -ne 0 ]; | |
77 do | |
78 FILE="$1" | |
79 LABEL=`echo $2 | sed 's/ /-/g; s/\[//; s/\]//;'` | |
80 shift 2 | |
81 QNAME_SORTED=`samtools view -H ${FILE} | grep "SO:queryname"` | |
82 if [ $? -ne 0 ]; then | |
83 BASE=`basename ${FILE} \.dat` | |
84 echo "Sorting BAM file (${LABEL}." >>samtools.log | |
85 samtools sort -@ 5 -n ${FILE} ${BASE} 2>>samtools.log | |
86 if [ $? -ne 0 ]; then | |
87 echo "Error with samtools sorting for BAM file (${LABEL})." >&2 | |
88 cat samtools.log >&2 | |
89 exit 1 | |
90 fi | |
91 echo "BAM file (${LABEL}) was re-sorted by query name." >>ezbamqc.log | |
92 FILELIST="$FILELIST ${BASE}.bam" | |
93 else | |
94 FILELIST="$FILELIST $FILE" | |
95 fi | |
96 LABELLIST="$LABELLIST $LABEL" | |
97 done | |
98 | |
99 CMD="ezBAMQC -i $FILELIST -l $LABELLIST -f $attrID -r $refgene -o Galaxy_ezBAMQC_output --stranded $stranded -q $mapq --rRNA $rRNA -t $cores" | |
100 | |
101 echo "ezBAMQC command: $CMD" >> ezbamqc.log | |
102 echo >> ezbamqc.log | |
103 | |
104 $CMD 2>> ezbamqc.log | |
105 | |
106 if [ $? -ne 0 ]; then | |
107 echo "ezBAMQC ran with errors" >&2 | |
108 cat ezbamqc.log >&2 | |
109 exit 1 | |
110 fi | |
111 | |
112 sed -i "s/\.\.\/Galaxy_ezBAMQC_output\///g;" Galaxy_ezBAMQC_output/bamqc_output.html | |
113 | |
114 cp -r Galaxy_ezBAMQC_output/data "$outputDir" | |
115 cp -r Galaxy_ezBAMQC_output/figs "$outputDir" | |
116 cp Galaxy_ezBAMQC_output/bamqc_output.html "$outputHTML" | |
117 | |
118 if [ $? -ne 0 ]; then | |
119 echo "Copying ezBAMQC results failed" >&2 | |
120 fi | |
121 | |
122 echo "ezBAMQC results copied to $outputDir" >>ezbamqc.log |