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