| 0 | 1 #!/bin/bash | 
|  | 2 #set -e | 
|  | 3 dir="$(cd "$(dirname "$0")" && pwd)" | 
|  | 4 input=$1 | 
|  | 5 method=$2 | 
|  | 6 log=$3 #becomes the main html page at the end | 
|  | 7 outdir=$4 | 
|  | 8 output="$outdir/index.html" #copied to $log location at the end | 
|  | 9 title=$5 | 
|  | 10 include_fr1=$6 | 
|  | 11 functionality=$7 | 
|  | 12 unique=$8 | 
| 28 | 13 naive_output=$9 | 
|  | 14 naive_output_ca=${10} | 
|  | 15 naive_output_cg=${11} | 
|  | 16 naive_output_cm=${12} | 
|  | 17 naive_output_ce=${13} | 
|  | 18 naive_output_all=${14} | 
|  | 19 filter_unique=${15} | 
|  | 20 class_filter=${16} | 
|  | 21 empty_region_filter=${17} | 
|  | 22 fast=${18} | 
| 0 | 23 mkdir $outdir | 
|  | 24 | 
|  | 25 tar -xzf $dir/style.tar.gz -C $outdir | 
|  | 26 | 
|  | 27 echo "---------------- read parameters ----------------" | 
|  | 28 echo "---------------- read parameters ----------------<br />" > $log | 
|  | 29 | 
|  | 30 echo "unpacking IMGT file" | 
|  | 31 | 
|  | 32 type="`file $input`" | 
|  | 33 if [[ "$type" == *"Zip archive"* ]] ; then | 
|  | 34 	echo "Zip archive" | 
|  | 35 	echo "unzip $input -d $PWD/files/" | 
|  | 36 	unzip $input -d $PWD/files/ | 
|  | 37 elif [[ "$type" == *"XZ compressed data"* ]] ; then | 
|  | 38 	echo "ZX archive" | 
|  | 39 	echo "tar -xJf $input -C $PWD/files/" | 
|  | 40 	mkdir -p $PWD/files/$title | 
|  | 41 	tar -xJf $input -C $PWD/files/$title | 
|  | 42 fi | 
|  | 43 | 
|  | 44 cat `find $PWD/files/ -name "1_*"` > $PWD/summary.txt | 
|  | 45 cat `find $PWD/files/ -name "3_*"` > $PWD/sequences.txt | 
|  | 46 cat `find $PWD/files/ -name "5_*"` > $PWD/aa.txt | 
|  | 47 cat `find $PWD/files/ -name "6_*"` > $PWD/junction.txt | 
|  | 48 cat `find $PWD/files/ -name "7_*"` > $PWD/mutationanalysis.txt | 
|  | 49 cat `find $PWD/files/ -name "8_*"` > $PWD/mutationstats.txt | 
|  | 50 cat `find $PWD/files/ -name "10_*"` > $PWD/hotspots.txt | 
|  | 51 | 
|  | 52 if [[ ${#BLASTN_DIR} -ge 5 ]] ; then | 
|  | 53 	echo "On server, using BLASTN_DIR env: ${BLASTN_DIR}" | 
|  | 54 else | 
|  | 55 	BLASTN_DIR="/home/galaxy/Downloads/ncbi-blast-2.4.0+/bin" | 
|  | 56 	echo "Dev Galaxy set BLASTN_DIR to: ${BLASTN_DIR}" | 
|  | 57 fi | 
|  | 58 | 
|  | 59 echo "---------------- class identification ----------------" | 
|  | 60 echo "---------------- class identification ----------------<br />" >> $log | 
|  | 61 | 
|  | 62 python $dir/gene_identification.py --input $PWD/summary.txt --output $outdir/identified_genes.txt | 
|  | 63 | 
|  | 64 echo "---------------- merge_and_filter.r ----------------" | 
|  | 65 echo "---------------- merge_and_filter.r ----------------<br />" >> $log | 
|  | 66 | 
| 14 | 67 Rscript $dir/merge_and_filter.r $PWD/summary.txt $PWD/sequences.txt $PWD/mutationanalysis.txt $PWD/mutationstats.txt $PWD/hotspots.txt $PWD/aa.txt $outdir/identified_genes.txt $outdir/merged.txt $outdir/before_unique_filter.txt $outdir/unmatched.txt $method $functionality $unique ${filter_unique} ${class_filter} ${empty_region_filter} 2>&1 | 
| 0 | 68 | 
| 5 | 69 if [[ "$fast" == "no" ]] ; then | 
| 0 | 70 | 
| 5 | 71 	echo "---------------- creating new IMGT zips ----------------" | 
|  | 72 	echo "---------------- creating new IMGT zips ----------------<br />" >> $log | 
|  | 73 | 
|  | 74 	mkdir $outdir/new_IMGT | 
| 0 | 75 | 
| 5 | 76 	cat `find $PWD/files/ -name "1_*"` > "$outdir/new_IMGT/1_Summary.txt" | 
|  | 77 	cat `find $PWD/files/ -name "2_*"` > "$outdir/new_IMGT/2_IMGT-gapped-nt-sequences.txt" | 
|  | 78 	cat `find $PWD/files/ -name "3_*"` > "$outdir/new_IMGT/3_Nt-sequences.txt" | 
|  | 79 	cat `find $PWD/files/ -name "4_*"` > "$outdir/new_IMGT/4_IMGT-gapped-AA-sequences.txt" | 
|  | 80 	cat `find $PWD/files/ -name "5_*"` > "$outdir/new_IMGT/5_AA-sequences.txt" | 
|  | 81 	cat `find $PWD/files/ -name "6_*"` > "$outdir/new_IMGT/6_Junction.txt" | 
|  | 82 	cat `find $PWD/files/ -name "7_*"` > "$outdir/new_IMGT/7_V-REGION-mutation-and-AA-change-table.txt" | 
|  | 83 	cat `find $PWD/files/ -name "8_*"` > "$outdir/new_IMGT/8_V-REGION-nt-mutation-statistics.txt" | 
|  | 84 	cat `find $PWD/files/ -name "9_*"` > "$outdir/new_IMGT/9_V-REGION-AA-change-statistics.txt" | 
|  | 85 	cat `find $PWD/files/ -name "10_*"` > "$outdir/new_IMGT/10_V-REGION-mutation-hotspots.txt" | 
| 0 | 86 | 
| 5 | 87 	mkdir $outdir/new_IMGT_IGA | 
|  | 88 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGA | 
| 0 | 89 | 
| 5 | 90 	mkdir $outdir/new_IMGT_IGA1 | 
|  | 91 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGA1 | 
| 0 | 92 | 
| 5 | 93 	mkdir $outdir/new_IMGT_IGA2 | 
|  | 94 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGA2 | 
| 0 | 95 | 
| 5 | 96 	mkdir $outdir/new_IMGT_IGG | 
|  | 97 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGG | 
| 0 | 98 | 
| 5 | 99 	mkdir $outdir/new_IMGT_IGG1 | 
|  | 100 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGG1 | 
| 0 | 101 | 
| 5 | 102 	mkdir $outdir/new_IMGT_IGG2 | 
|  | 103 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGG2 | 
| 0 | 104 | 
| 5 | 105 	mkdir $outdir/new_IMGT_IGG3 | 
|  | 106 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGG3 | 
| 0 | 107 | 
| 5 | 108 	mkdir $outdir/new_IMGT_IGG4 | 
|  | 109 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGG4 | 
|  | 110 | 
|  | 111 	mkdir $outdir/new_IMGT_IGM | 
|  | 112 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGM | 
| 0 | 113 | 
| 5 | 114 	mkdir $outdir/new_IMGT_IGE | 
|  | 115 	cp $outdir/new_IMGT/* $outdir/new_IMGT_IGE | 
| 0 | 116 | 
| 5 | 117 	Rscript $dir/new_imgt.r $outdir/new_IMGT/ $outdir/merged.txt "-" 2>&1 | 
|  | 118 | 
|  | 119 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGA/ $outdir/merged.txt "IGA" 2>&1 | 
|  | 120 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGA1/ $outdir/merged.txt "IGA1" 2>&1 | 
|  | 121 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGA2/ $outdir/merged.txt "IGA2" 2>&1 | 
| 0 | 122 | 
| 5 | 123 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGG/ $outdir/merged.txt "IGG" 2>&1 | 
|  | 124 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGG1/ $outdir/merged.txt "IGG1" 2>&1 | 
|  | 125 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGG2/ $outdir/merged.txt "IGG2" 2>&1 | 
|  | 126 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGG3/ $outdir/merged.txt "IGG3" 2>&1 | 
|  | 127 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGG4/ $outdir/merged.txt "IGG4" 2>&1 | 
| 0 | 128 | 
| 5 | 129 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGM/ $outdir/merged.txt "IGM" 2>&1 | 
| 0 | 130 | 
| 5 | 131 	Rscript $dir/new_imgt.r $outdir/new_IMGT_IGE/ $outdir/merged.txt "IGE" 2>&1 | 
| 0 | 132 | 
|  | 133 | 
| 5 | 134 	tmp="$PWD" | 
|  | 135 	cd $outdir/new_IMGT/ #tar weirdness... | 
|  | 136 	tar -cJf ../new_IMGT.txz * | 
| 0 | 137 | 
| 5 | 138 	cd $outdir/new_IMGT_IGA/ | 
|  | 139 	tar -cJf ../new_IMGT_IGA.txz * | 
| 0 | 140 | 
| 5 | 141 	cd $outdir/new_IMGT_IGA1/ | 
|  | 142 	tar -cJf ../new_IMGT_IGA1.txz * | 
| 0 | 143 | 
| 5 | 144 	cd $outdir/new_IMGT_IGA2/ | 
|  | 145 	tar -cJf ../new_IMGT_IGA2.txz * | 
| 0 | 146 | 
| 5 | 147 	cd $outdir/new_IMGT_IGG/ | 
|  | 148 	tar -cJf ../new_IMGT_IGG.txz * | 
| 0 | 149 | 
| 5 | 150 	cd $outdir/new_IMGT_IGG1/ | 
|  | 151 	tar -cJf ../new_IMGT_IGG1.txz * | 
| 0 | 152 | 
| 5 | 153 	cd $outdir/new_IMGT_IGG2/ | 
|  | 154 	tar -cJf ../new_IMGT_IGG2.txz * | 
|  | 155 | 
|  | 156 	cd $outdir/new_IMGT_IGG3/ | 
|  | 157 	tar -cJf ../new_IMGT_IGG3.txz * | 
| 0 | 158 | 
| 5 | 159 	cd $outdir/new_IMGT_IGG4/ | 
|  | 160 	tar -cJf ../new_IMGT_IGG4.txz * | 
|  | 161 | 
|  | 162 	cd $outdir/new_IMGT_IGM/ | 
|  | 163 	tar -cJf ../new_IMGT_IGM.txz * | 
| 0 | 164 | 
| 5 | 165 	cd $outdir/new_IMGT_IGE/ | 
|  | 166 	tar -cJf ../new_IMGT_IGE.txz * | 
| 0 | 167 | 
| 5 | 168 	cd $tmp | 
|  | 169 fi | 
| 0 | 170 | 
|  | 171 echo "---------------- shm_csr.r ----------------" | 
|  | 172 echo "---------------- shm_csr.r ----------------<br />" >> $log | 
|  | 173 | 
| 5 | 174 classes="IGA,IGA1,IGA2,IGG,IGG1,IGG2,IGG3,IGG4,IGM,IGE,unmatched" | 
| 0 | 175 echo "R mutation analysis" | 
| 1 | 176 Rscript $dir/shm_csr.r $outdir/merged.txt $classes $outdir ${empty_region_filter} 2>&1 | 
| 0 | 177 | 
|  | 178 echo "---------------- shm_csr.py ----------------" | 
|  | 179 echo "---------------- shm_csr.py ----------------<br />" >> $log | 
|  | 180 | 
| 1 | 181 python $dir/shm_csr.py --input $outdir/merged.txt --genes $classes --empty_region_filter "${empty_region_filter}" --output $outdir/hotspot_analysis.txt | 
| 0 | 182 | 
|  | 183 echo "---------------- aa_histogram.r ----------------" | 
|  | 184 echo "---------------- aa_histogram.r ----------------<br />" >> $log | 
|  | 185 | 
| 5 | 186 Rscript $dir/aa_histogram.r $outdir/aa_id_mutations.txt $outdir/absent_aa_id.txt "IGA,IGG,IGM,IGE" $outdir/ 2>&1 | 
| 0 | 187 if [ -e "$outdir/aa_histogram_.png" ]; then | 
|  | 188         mv $outdir/aa_histogram_.png $outdir/aa_histogram.png | 
|  | 189         mv $outdir/aa_histogram_.txt $outdir/aa_histogram.txt | 
|  | 190 fi | 
|  | 191 | 
| 5 | 192 genes=(IGA IGA1 IGA2 IGG IGG1 IGG2 IGG3 IGG4 IGM IGE) | 
| 0 | 193 | 
|  | 194 funcs=(sum mean median) | 
|  | 195 funcs=(sum) | 
|  | 196 | 
|  | 197 echo "---------------- sequence_overview.r ----------------" | 
|  | 198 echo "---------------- sequence_overview.r ----------------<br />" >> $log | 
|  | 199 | 
|  | 200 mkdir $outdir/sequence_overview | 
|  | 201 | 
| 7 | 202 Rscript $dir/sequence_overview.r $outdir/before_unique_filter.txt $outdir/merged.txt $outdir/sequence_overview $classes $outdir/hotspot_analysis_sum.txt ${empty_region_filter} 2>&1 | 
| 0 | 203 | 
|  | 204 echo "<table border='1'>" > $outdir/base_overview.html | 
|  | 205 | 
|  | 206 while IFS=$'\t' read ID class seq A C G T | 
|  | 207 do | 
|  | 208 	echo "<tr><td>$ID</td><td>$seq</td><td>$class</td><td>$A</td><td>$C</td><td>$G</td><td>$T</td></tr>" >> $outdir/base_overview.html | 
|  | 209 done < $outdir/sequence_overview/ntoverview.txt | 
|  | 210 | 
|  | 211 echo "<html><center><h1>$title</h1></center>" > $output | 
|  | 212 echo "<meta name='viewport' content='width=device-width, initial-scale=1'>" >> $output | 
|  | 213 echo "<script type='text/javascript' src='jquery-1.11.0.min.js'></script>" >> $output | 
|  | 214 echo "<script type='text/javascript' src='tabber.js'></script>" >> $output | 
|  | 215 echo "<script type='text/javascript' src='script.js'></script>" >> $output | 
|  | 216 echo "<link rel='stylesheet' type='text/css' href='style.css'>" >> $output | 
|  | 217 echo "<link rel='stylesheet' type='text/css' href='pure-min.css'>" >> $output | 
|  | 218 | 
|  | 219 matched_count="`cat $outdir/merged.txt | grep -v 'unmatched' | tail -n +2 | wc -l`" | 
|  | 220 unmatched_count="`cat $outdir/unmatched.txt | tail -n +2 | wc -l`" | 
|  | 221 total_count=$((matched_count + unmatched_count)) | 
|  | 222 perc_count=$((unmatched_count / total_count * 100)) | 
|  | 223 perc_count=`bc -l <<< "scale=2; ${unmatched_count} / ${total_count} * 100"` | 
|  | 224 perc_count=`bc -l <<< "scale=2; (${unmatched_count} / ${total_count} * 100 ) / 1"` | 
|  | 225 | 
|  | 226 echo "<center><h2>Total: ${total_count}</h2></center>" >> $output | 
|  | 227 echo "<center><h2>Matched: ${matched_count} Unmatched: ${unmatched_count}</h2></center>" >> $output | 
|  | 228 echo "<center><h2>Percentage unmatched: ${perc_count}</h2></center>" >> $output | 
|  | 229 | 
|  | 230 echo "---------------- main tables ----------------" | 
|  | 231 echo "---------------- main tables ----------------<br />" >> $log | 
|  | 232 | 
|  | 233 echo "<div class='tabber'>" >> $output | 
| 23 | 234 echo "<div class='tabbertab' title='SHM Overview' style='width: 3000px;'>" >> $output | 
| 0 | 235 | 
|  | 236 for func in ${funcs[@]} | 
|  | 237 do | 
|  | 238 | 
|  | 239 	echo "---------------- $func table ----------------" | 
|  | 240 	echo "---------------- $func table ----------------<br />" >> $log | 
|  | 241 | 
|  | 242 	cat $outdir/mutations_${func}.txt $outdir/hotspot_analysis_${func}.txt > $outdir/data_${func}.txt | 
|  | 243 | 
|  | 244 	echo "---------------- pattern_plots.r ----------------" | 
|  | 245 	echo "---------------- pattern_plots.r ----------------<br />" >> $log | 
|  | 246 | 
| 23 | 247 	Rscript $dir/pattern_plots.r $outdir/data_${func}.txt $outdir/plot1 $outdir/plot2 $outdir/plot3 $outdir/shm_overview.txt 2>&1 | 
| 0 | 248 | 
|  | 249 	echo "<table class='pure-table pure-table-striped'>" >> $output | 
|  | 250 	echo "<thead><tr><th>info</th>" >> $output | 
|  | 251 | 
|  | 252 	if [ "${class_filter}" != "101_101" ] ; then | 
|  | 253 | 
|  | 254 		for gene in ${genes[@]} | 
|  | 255 		do | 
|  | 256 			tmp=`cat $outdir/${gene}_${func}_n.txt` | 
|  | 257 			echo "<th><a href='matched_${gene}_${func}.txt'>${gene} (N = $tmp)</a></th>" >> $output | 
|  | 258 		done | 
|  | 259 | 
|  | 260 		tmp=`cat $outdir/all_${func}_n.txt` | 
|  | 261 		echo "<th><a href='matched_all_${func}.txt'>all (N = $tmp)</a></th>" >> $output | 
|  | 262 		tmp=`cat $outdir/unmatched_${func}_n.txt` | 
|  | 263 		echo "<th><a href='unmatched.txt'>unmatched (N = ${unmatched_count})</a></th><tr></thead>" >> $output | 
|  | 264 | 
| 5 | 265 		while IFS=, read name cax cay caz ca1x ca1y ca1z ca2x ca2y ca2z cgx cgy cgz cg1x cg1y cg1z cg2x cg2y cg2z cg3x cg3y cg3z cg4x cg4y cg4z cmx cmy cmz cex cey cez unx uny unz allx ally allz | 
| 0 | 266 		do | 
|  | 267 			if [ "$name" == "FR R/S (ratio)" ] || [ "$name" == "CDR R/S (ratio)" ] ; then #meh | 
| 5 | 268 				echo "<tr><td>$name</td><td>${cax}/${cay} (${caz})</td><td>${ca1x}/${ca1y} (${ca1z})</td><td>${ca2x}/${ca2y} (${ca2z})</td><td>${cgx}/${cgy} (${cgz})</td><td>${cg1x}/${cg1y} (${cg1z})</td><td>${cg2x}/${cg2y} (${cg2z})</td><td>${cg3x}/${cg3y} (${cg3z})</td><td>${cg4x}/${cg4y} (${cg4z})</td><td>${cmx}/${cmy} (${cmz})</td><td>${cex}/${cey} (${cez})</td><td>${allx}/${ally} (${allz})</td><td>${unx}/${uny} (${unz})</td></tr>" >> $output | 
| 0 | 269 			elif [ "$name" == "Median of Number of Mutations (%)" ] ; then | 
| 5 | 270 				echo "<tr><td>$name</td><td>${caz}%</td><td>${ca1z}%</td><td>${ca2z}%</td><td>${cgz}%</td><td>${cg1z}%</td><td>${cg2z}%</td><td>${cg3z}%</td><td>${cg4z}%</td><td>${cmz}%</td><td>${cez}%</td><td>${allz}%</td><td>${unz}%</td></tr>" >> $output | 
| 0 | 271 			else | 
| 5 | 272 				echo "<tr><td>$name</td><td>${cax}/${cay} (${caz}%)</td><td>${ca1x}/${ca1y} (${ca1z}%)</td><td>${ca2x}/${ca2y} (${ca2z}%)</td><td>${cgx}/${cgy} (${cgz}%)</td><td>${cg1x}/${cg1y} (${cg1z}%)</td><td>${cg2x}/${cg2y} (${cg2z}%)</td><td>${cg3x}/${cg3y} (${cg3z}%)</td><td>${cg4x}/${cg4y} (${cg4z}%)</td><td>${cmx}/${cmy} (${cmz}%)</td><td>${cex}/${cey} (${cez}%)</td><td>${allx}/${ally} (${allz}%)</td><td>${unx}/${uny} (${unz}%)</td></tr>" >> $output | 
| 0 | 273 			fi | 
|  | 274 		done < $outdir/data_${func}.txt | 
|  | 275 | 
|  | 276 	else | 
| 3 | 277 		tmp=`cat $outdir/all_${func}_n.txt` | 
| 0 | 278 		echo "<th><a href='matched_all_${func}.txt'>all (N = $tmp)</a></th>" >> $output | 
|  | 279 | 
| 5 | 280 		while IFS=, read name cax cay caz ca1x ca1y ca1z ca2x ca2y ca2z cgx cgy cgz cg1x cg1y cg1z cg2x cg2y cg2z cg3x cg3y cg3z cg4x cg4y cg4z cmx cmy cmz cex cey cez unx uny unz allx ally allz | 
| 0 | 281 		do | 
|  | 282 			if [ "$name" == "FR R/S (ratio)" ] || [ "$name" == "CDR R/S (ratio)" ] ; then #meh | 
| 3 | 283 				echo "<tr><td>$name</td><td>${allx}/${ally}</td></tr>" >> $output | 
| 0 | 284 			elif [ "$name" == "Median of Number of Mutations (%)" ] ; then | 
| 3 | 285 				echo "<tr><td>$name</td><td>${allz}%</td></tr>" >> $output | 
| 0 | 286 			else | 
| 3 | 287 				echo "<tr><td>$name</td><td>${allx}/${ally} (${allz}%)</td></tr>" >> $output | 
| 0 | 288 			fi | 
|  | 289 		done < $outdir/data_${func}.txt | 
|  | 290 | 
|  | 291 	fi | 
|  | 292 	echo "</table>" >> $output | 
|  | 293 	#echo "<a href='data_${func}.txt'>Download data</a>" >> $output | 
|  | 294 done | 
|  | 295 | 
|  | 296 echo "<img src='plot1.png' /><br />" >> $output | 
|  | 297 echo "<img src='plot2.png' /><br />" >> $output | 
|  | 298 echo "<img src='plot3.png' /><br />" >> $output | 
|  | 299 | 
|  | 300 echo "</div>" >> $output #SHM overview tab end | 
|  | 301 | 
|  | 302 echo "---------------- images ----------------" | 
|  | 303 echo "---------------- images ----------------<br />" >> $log | 
|  | 304 | 
| 23 | 305 echo "<div class='tabbertab' title='SHM Frequency' style='width: 3000px;'>" >> $output | 
| 0 | 306 | 
|  | 307 if [ -a $outdir/scatter.png ] | 
|  | 308 then | 
|  | 309 	echo "<img src='scatter.png'/><br />" >> $output | 
|  | 310 fi | 
|  | 311 if [ -a $outdir/frequency_ranges.png ] | 
|  | 312 then | 
|  | 313 	echo "<img src='frequency_ranges.png'/><br />" >> $output | 
|  | 314 fi | 
|  | 315 | 
|  | 316 echo "</div>" >> $output #SHM frequency tab end | 
|  | 317 | 
| 23 | 318 echo "<div class='tabbertab' title='Transition tables' style='width: 3000px;'>" >> $output | 
| 0 | 319 | 
|  | 320 echo "<table border='0'>" >> $output | 
|  | 321 | 
|  | 322 for gene in ${genes[@]} | 
|  | 323 do | 
|  | 324 	echo "<tr>" >> $output | 
|  | 325 	echo "<td><h1>${gene}</h1></td>" >> $output | 
| 23 | 326 | 
|  | 327 	if [ -e $outdir/transitions_heatmap_${gene}.png ] | 
|  | 328 	then | 
|  | 329 		echo "<td><img src='transitions_heatmap_${gene}.png' /></td>" >> $output | 
|  | 330 	else | 
|  | 331 		echo "<td></td>" >> $output | 
|  | 332 	fi | 
|  | 333 | 
|  | 334 	if [ -e $outdir/transitions_stacked_${gene}.png ] | 
|  | 335 	then | 
|  | 336 		echo "<td><img src='transitions_stacked_${gene}.png' /></td>" >> $output | 
|  | 337 	else | 
|  | 338 		echo "<td></td>" >> $output | 
|  | 339 	fi | 
|  | 340 | 
| 0 | 341 	echo "<td><table style='border-left-width: 1;' class='pure-table transition-table pure-table-bordered'>" >> $output | 
|  | 342 	echo "<tr><td></td><td colspan="5"><center>To</center></td></tr>" >> $output | 
|  | 343 	first="true" | 
|  | 344 	while IFS=, read from a c g t | 
|  | 345 		do | 
|  | 346 			if [ "$first" == "true" ] ; then | 
|  | 347 				echo "<tr><td rowspan='5'>From</td><td>$from</td><td>$a</td><td>$c</td><td>$g</td><td>$t</td></tr>" >> $output | 
|  | 348 				first="false" | 
|  | 349 			else | 
|  | 350 				echo "<tr><td>$from</td><td>$a</td><td>$c</td><td>$g</td><td>$t</td></tr>" >> $output | 
|  | 351 			fi | 
|  | 352 	done < $outdir/transitions_${gene}_sum.txt | 
|  | 353 	echo "</table></td>" >> $output | 
|  | 354 | 
|  | 355 	echo "</tr>" >> $output | 
|  | 356 done | 
|  | 357 | 
|  | 358 echo "<tr>" >> $output | 
|  | 359 echo "<td><h1>All</h1></td>" >> $output | 
|  | 360 echo "<td><img src='transitions_heatmap_all.png' /></td>" >> $output | 
|  | 361 echo "<td><img src='transitions_stacked_all.png' /></td>" >> $output | 
|  | 362 echo "<td><table style='border-left-width: 1;' class='pure-table transition-table pure-table-bordered'>" >> $output | 
|  | 363 echo "<tr><td></td><td colspan="5"><center>To</center></td></tr>" >> $output | 
|  | 364 first="true" | 
|  | 365 while IFS=, read from a c g t | 
|  | 366 	do | 
|  | 367 		if [ "$first" == "true" ] ; then | 
|  | 368 			echo "<tr><td rowspan='5'>From</td><td>$from</td><td>$a</td><td>$c</td><td>$g</td><td>$t</td></tr>" >> $output | 
|  | 369 			first="false" | 
|  | 370 		else | 
|  | 371 			echo "<tr><td>$from</td><td>$a</td><td>$c</td><td>$g</td><td>$t</td></tr>" >> $output | 
|  | 372 		fi | 
|  | 373 done < $outdir/transitions_all_sum.txt | 
|  | 374 echo "</table></td>" >> $output | 
|  | 375 | 
|  | 376 echo "</tr>" >> $output | 
|  | 377 | 
|  | 378 echo "</table>" >> $output | 
|  | 379 | 
|  | 380 echo "</div>" >> $output #transition tables tab end | 
|  | 381 | 
|  | 382 echo "<div class='tabbertab' title='Antigen Selection'>" >> $output | 
|  | 383 | 
| 23 | 384 if [ -e $outdir/aa_histogram.png ] | 
| 0 | 385 then | 
|  | 386 	echo "<img src='aa_histogram.png'/><br />" >> $output | 
| 23 | 387 fi | 
|  | 388 | 
|  | 389 if [ -e $outdir/aa_histogram_IGA.png ] | 
|  | 390 then | 
| 0 | 391 	echo "<img src='aa_histogram_IGA.png'/><br />" >> $output | 
| 23 | 392 fi | 
|  | 393 | 
|  | 394 if [ -e $outdir/aa_histogram_IGG.png ] | 
|  | 395 then | 
| 0 | 396 	echo "<img src='aa_histogram_IGG.png'/><br />" >> $output | 
| 23 | 397 fi | 
|  | 398 | 
|  | 399 if [ -e $outdir/aa_histogram_IGM.png ] | 
|  | 400 then | 
| 0 | 401 	echo "<img src='aa_histogram_IGM.png'/><br />" >> $output | 
| 23 | 402 fi | 
|  | 403 | 
|  | 404 if [ -e $outdir/aa_histogram_IGE.png ] | 
|  | 405 then | 
| 6 | 406 	echo "<img src='aa_histogram_IGE.png'/><br />" >> $output | 
| 0 | 407 fi | 
|  | 408 | 
| 23 | 409 | 
|  | 410 if [ -e $outdir/baseline.png ] | 
|  | 411 then | 
|  | 412 	echo "<embed src='baseline.pdf' width='700px' height='1000px'>" >> $output | 
|  | 413 fi | 
|  | 414 | 
|  | 415 if [ -e $outdir/baseline_IGA.png ] | 
|  | 416 then | 
|  | 417 	echo "<embed src='baseline_IGA.pdf' width='700px' height='1000px'>" >> $output | 
|  | 418 fi | 
|  | 419 | 
|  | 420 if [ -e $outdir/baseline_IGG.png ] | 
|  | 421 then | 
|  | 422 	echo "<embed src='baseline_IGG.pdf' width='700px' height='1000px'>" >> $output | 
|  | 423 fi | 
|  | 424 | 
|  | 425 if [ -e $outdir/baseline_IGM.png ] | 
|  | 426 then | 
|  | 427 	echo "<embed src='baseline_IGM.pdf' width='700px' height='1000px'>" >> $output | 
|  | 428 fi | 
|  | 429 | 
|  | 430 if [ -e $outdir/baseline_IGE.png ] | 
|  | 431 then | 
|  | 432 	echo "<embed src='baseline_IGE.pdf' width='700px' height='1000px'>" >> $output | 
|  | 433 fi | 
| 0 | 434 | 
|  | 435 echo "</div>" >> $output #antigen selection tab end | 
|  | 436 | 
|  | 437 echo "<div class='tabbertab' title='CSR'>" >> $output #CSR tab | 
|  | 438 | 
| 23 | 439 if [ -e $outdir/IGA.png ] | 
| 0 | 440 then | 
|  | 441 	echo "<img src='IGA.png'/><br />" >> $output | 
|  | 442 fi | 
| 23 | 443 if [ -e $outdir/IGG.png ] | 
| 0 | 444 then | 
|  | 445 	echo "<img src='IGG.png'/><br />" >> $output | 
|  | 446 fi | 
|  | 447 | 
|  | 448 echo "</div>" >> $output #CSR tab end | 
|  | 449 | 
| 5 | 450 if [[ "$fast" == "no" ]] ; then | 
|  | 451 | 
|  | 452 	echo "---------------- change-o MakeDB ----------------" | 
| 0 | 453 | 
| 5 | 454 	mkdir $outdir/change_o | 
| 0 | 455 | 
| 5 | 456 	tmp="$PWD" | 
| 0 | 457 | 
| 5 | 458 	cd $outdir/change_o | 
| 0 | 459 | 
| 5 | 460 	bash $dir/change_o/makedb.sh $outdir/new_IMGT.txz false false false $outdir/change_o/change-o-db.txt | 
|  | 461 	bash $dir/change_o/define_clones.sh bygroup $outdir/change_o/change-o-db.txt gene first ham none min complete 3.0 $outdir/change_o/change-o-db-defined_clones.txt $outdir/change_o/change-o-defined_clones-summary.txt | 
| 0 | 462 | 
| 5 | 463 	Rscript $dir/merge.r $outdir/change_o/change-o-db-defined_clones.txt $outdir/merged.txt "all" "Sequence.ID,best_match" "SEQUENCE_ID" "Sequence.ID" $outdir/change_o/change-o-db-defined_clones.txt 2>&1 | 
| 0 | 464 | 
| 5 | 465 	echo "Rscript $dir/merge.r $outdir/change_o/change-o-db-defined_clones.txt $outdir/$outdir/merged.txt 'all' 'Sequence.ID,best_match' 'Sequence.ID' 'Sequence.ID' '\t' $outdir/change_o/change-o-db-defined_clones.txt 2>&1" | 
| 0 | 466 | 
| 5 | 467 	if [[ $(wc -l < $outdir/new_IMGT_IGA/1_Summary.txt) -gt "1" ]]; then | 
|  | 468 		bash $dir/change_o/makedb.sh $outdir/new_IMGT_IGA.txz false false false $outdir/change_o/change-o-db-IGA.txt | 
|  | 469 		bash $dir/change_o/define_clones.sh bygroup $outdir/change_o/change-o-db-IGA.txt gene first ham none min complete 3.0 $outdir/change_o/change-o-db-defined_clones-IGA.txt $outdir/change_o/change-o-defined_clones-summary-IGA.txt | 
|  | 470 	else | 
|  | 471 		echo "No IGA sequences" > "$outdir/change_o/change-o-db-defined_clones-IGA.txt" | 
|  | 472 		echo "No IGA sequences" > "$outdir/change_o/change-o-defined_clones-summary-IGA.txt" | 
|  | 473 	fi | 
| 0 | 474 | 
| 5 | 475 	if [[ $(wc -l < $outdir/new_IMGT_IGG/1_Summary.txt) -gt "1" ]]; then | 
|  | 476 		bash $dir/change_o/makedb.sh $outdir/new_IMGT_IGG.txz false false false $outdir/change_o/change-o-db-IGG.txt | 
|  | 477 		bash $dir/change_o/define_clones.sh bygroup $outdir/change_o/change-o-db-IGG.txt gene first ham none min complete 3.0 $outdir/change_o/change-o-db-defined_clones-IGG.txt $outdir/change_o/change-o-defined_clones-summary-IGG.txt | 
|  | 478 	else | 
|  | 479 		echo "No IGG sequences" > "$outdir/change_o/change-o-db-defined_clones-IGG.txt" | 
|  | 480 		echo "No IGG sequences" > "$outdir/change_o/change-o-defined_clones-summary-IGG.txt" | 
|  | 481 	fi | 
| 0 | 482 | 
| 5 | 483 	if [[ $(wc -l < $outdir/new_IMGT_IGM/1_Summary.txt) -gt "1" ]]; then | 
|  | 484 		bash $dir/change_o/makedb.sh $outdir/new_IMGT_IGM.txz false false false $outdir/change_o/change-o-db-IGM.txt | 
|  | 485 		bash $dir/change_o/define_clones.sh bygroup $outdir/change_o/change-o-db-IGM.txt gene first ham none min complete 3.0 $outdir/change_o/change-o-db-defined_clones-IGM.txt $outdir/change_o/change-o-defined_clones-summary-IGM.txt | 
|  | 486 	else | 
|  | 487 		echo "No IGM sequences" > "$outdir/change_o/change-o-db-defined_clones-IGM.txt" | 
|  | 488 		echo "No IGM sequences" > "$outdir/change_o/change-o-defined_clones-summary-IGM.txt" | 
|  | 489 	fi | 
| 0 | 490 | 
| 6 | 491 	if [[ $(wc -l < $outdir/new_IMGT_IGE/1_Summary.txt) -gt "1" ]]; then | 
|  | 492 		bash $dir/change_o/makedb.sh $outdir/new_IMGT_IGE.txz false false false $outdir/change_o/change-o-db-IGE.txt | 
|  | 493 		bash $dir/change_o/define_clones.sh bygroup $outdir/change_o/change-o-db-IGE.txt gene first ham none min complete 3.0 $outdir/change_o/change-o-db-defined_clones-IGE.txt $outdir/change_o/change-o-defined_clones-summary-IGE.txt | 
|  | 494 	else | 
|  | 495 		echo "No IGE sequences" > "$outdir/change_o/change-o-db-defined_clones-IGE.txt" | 
|  | 496 		echo "No IGE sequences" > "$outdir/change_o/change-o-defined_clones-summary-IGE.txt" | 
|  | 497 	fi | 
|  | 498 | 
| 5 | 499 	PWD="$tmp" | 
| 0 | 500 | 
| 16 | 501 	echo "<div class='tabbertab' title='Clonality'>" >> $output #clonality tab | 
| 0 | 502 | 
| 16 | 503 	function clonality_table { | 
|  | 504 		local infile=$1 | 
|  | 505 		local outfile=$2 | 
|  | 506 | 
|  | 507 		echo "<table class='pure-table pure-table-striped'>" >> $outfile | 
|  | 508 		echo "<thead><tr><th>Clone size</th><th>Nr of clones</th><th>Nr of sequences</th></tr></thead>" >> $outfile | 
|  | 509 | 
|  | 510 		first='true' | 
|  | 511 | 
|  | 512 		while read size clones seqs | 
|  | 513 		do | 
|  | 514 			if [[ "$first" == "true" ]]; then | 
|  | 515 				first="false" | 
|  | 516 				continue | 
|  | 517 			fi | 
|  | 518 			echo "<tr><td>$size</td><td>$clones</td><td>$seqs</td></tr>" >> $outfile | 
|  | 519 		done < $infile | 
|  | 520 | 
|  | 521 		echo "</table>" >> $outfile | 
|  | 522 	} | 
|  | 523 	echo "<div class='tabber'>" >> $output | 
| 0 | 524 | 
| 16 | 525 	echo "<div class='tabbertab' title='All'>" >> $output | 
|  | 526 	clonality_table $outdir/change_o/change-o-defined_clones-summary.txt $output | 
|  | 527 	echo "</div>" >> $output | 
| 0 | 528 | 
| 16 | 529 	echo "<div class='tabbertab' title='IGA'>" >> $output | 
|  | 530 	clonality_table $outdir/change_o/change-o-defined_clones-summary-IGA.txt $output | 
|  | 531 	echo "</div>" >> $output | 
| 0 | 532 | 
| 16 | 533 	echo "<div class='tabbertab' title='IGG'>" >> $output | 
|  | 534 	clonality_table $outdir/change_o/change-o-defined_clones-summary-IGG.txt $output | 
|  | 535 	echo "</div>" >> $output | 
| 0 | 536 | 
| 16 | 537 	echo "<div class='tabbertab' title='IGM'>" >> $output | 
|  | 538 	clonality_table $outdir/change_o/change-o-defined_clones-summary-IGM.txt $output | 
|  | 539 	echo "</div>" >> $output | 
| 6 | 540 | 
| 16 | 541 	echo "<div class='tabbertab' title='IGE'>" >> $output | 
|  | 542 	clonality_table $outdir/change_o/change-o-defined_clones-summary-IGM.txt $output | 
|  | 543 	echo "</div>" >> $output | 
| 0 | 544 | 
| 23 | 545 	echo "<div class='tabbertab' title='Overlap'>" >> $output | 
| 16 | 546 	cat "$outdir/sequence_overview/index.html" >> $output | 
|  | 547 	echo "</div>" >> $output | 
| 0 | 548 | 
|  | 549 | 
| 16 | 550 	echo "</div>" >> $output #clonality tabber end | 
| 0 | 551 | 
| 16 | 552 	echo "</div>" >> $output #clonality tab end | 
| 0 | 553 | 
| 5 | 554 fi | 
|  | 555 | 
| 0 | 556 echo "<div class='tabbertab' title='Downloads'>" >> $output | 
|  | 557 | 
|  | 558 echo "<table class='pure-table pure-table-striped'>" >> $output | 
|  | 559 echo "<thead><tr><th>info</th><th>link</th></tr></thead>" >> $output | 
|  | 560 echo "<tr><td>The complete dataset</td><td><a href='merged.txt' download='merged.txt' >Download</a></td></tr>" >> $output | 
|  | 561 echo "<tr><td>The filtered dataset</td><td><a href='filtered.txt' download='filtered.txt' >Download</a></td></tr>" >> $output | 
|  | 562 echo "<tr><td>The alignment info on the unmatched sequences</td><td><a href='unmatched.txt' download='unmatched.txt' >Download</a></td></tr>" >> $output | 
|  | 563 | 
| 2 | 564 echo "<tr><td colspan='2' style='background-color:#E0E0E0;'>SHM Overview</td></tr>" >> $output | 
| 23 | 565 echo "<tr><td>The SHM Overview table as a dataset</td><td><a href='shm_overview.txt' download='shm_overview.txt' >Download</a></td></tr>" >> $output | 
| 2 | 566 echo "<tr><td>Motif data per sequence ID</td><td><a href='motif_per_seq.txt' download='motif_per_seq.txt' >Download</a></td></tr>" >> $output | 
|  | 567 echo "<tr><td>Mutation data per sequence ID</td><td><a href='mutation_by_id.txt' download='mutation_by_id.txt' >Download</a></td></tr>" >> $output | 
|  | 568 echo "<tr><td>Base count for every sequence</td><td><a href='base_overview.html'>View</a></td></tr>" >> $output | 
|  | 569 echo "<tr><td>The data used to generate the RGYW/WRCY and TW/WA plot</td><td><a href='plot1.txt' download='plot1.txt' >Download</a></td></tr>" >> $output | 
|  | 570 echo "<tr><td>The data used to generate the relative transition and transversion plot</td><td><a href='plot2.txt' download='plot2.txt' >Download</a></td></tr>" >> $output | 
|  | 571 echo "<tr><td>The data used to generate the absolute transition and transversion plot</td><td><a href='plot3.txt' download='plot3.txt' >Download</a></td></tr>" >> $output | 
|  | 572 | 
|  | 573 echo "<tr><td colspan='2' style='background-color:#E0E0E0;'>SHM Frequency</td></tr>" >> $output | 
| 0 | 574 echo "<tr><td>The data  generate the frequency scatter plot</td><td><a href='scatter.txt' download='scatter.txt' >Download</a></td></tr>" >> $output | 
|  | 575 echo "<tr><td>The data used to generate the frequency by class plot</td><td><a href='frequency_ranges_classes.txt' download='frequency_ranges_classes.txt' >Download</a></td></tr>" >> $output | 
|  | 576 echo "<tr><td>The data for frequency by subclass</td><td><a href='frequency_ranges_subclasses.txt' download='frequency_ranges_subclasses.txt' >Download</a></td></tr>" >> $output | 
|  | 577 | 
| 2 | 578 echo "<tr><td colspan='2' style='background-color:#E0E0E0;'>Transition Tables</td></tr>" >> $output | 
| 23 | 579 echo "<tr><td>The data for the 'all' transition plot</td><td><a href='transitions_all_sum.txt' download='transitions_all_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 580 echo "<tr><td>The data for the 'IGA' transition plot</td><td><a href='transitions_IGA_sum.txt' download='transitions_all_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 581 echo "<tr><td>The data for the 'IGA1' transition plot</td><td><a href='transitions_IGA1_sum.txt' download='transitions_IGA1_sum.txt' >Download</a></td></tr>" >> $output | 
| 26 | 582 echo "<tr><td>The data for the 'IGA1' transition plot</td><td><a href='transitions_IGA2_sum.txt' download='transitions_IGA2_sum.txt' >Download</a></td></tr>" >> $output | 
| 23 | 583 echo "<tr><td>The data for the 'IGG' transition plot</td><td><a href='transitions_IGG_sum.txt' download='transitions_IGG_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 584 echo "<tr><td>The data for the 'IGG1' transition plot</td><td><a href='transitions_IGG1_sum.txt' download='transitions_IGG1_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 585 echo "<tr><td>The data for the 'IGG2' transition plot</td><td><a href='transitions_IGG2_sum.txt' download='transitions_IGG2_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 586 echo "<tr><td>The data for the 'IGG3' transition plot</td><td><a href='transitions_IGG3_sum.txt' download='transitions_IGG3_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 587 echo "<tr><td>The data for the 'IGG4' transition plot</td><td><a href='transitions_IGG4_sum.txt' download='transitions_IGG4_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 588 echo "<tr><td>The data for the 'IGM' transition plot</td><td><a href='transitions_IGM_sum.txt' download='transitions_IGM_sum.txt' >Download</a></td></tr>" >> $output | 
|  | 589 echo "<tr><td>The data for the 'IGE' transition plot</td><td><a href='transitions_IGE_sum.txt' download='transitions_IGE_sum.txt' >Download</a></td></tr>" >> $output | 
| 0 | 590 | 
| 2 | 591 echo "<tr><td colspan='2' style='background-color:#E0E0E0;'>Antigen Selection</td></tr>" >> $output | 
| 0 | 592 echo "<tr><td>AA mutation data per sequence ID</td><td><a href='aa_id_mutations.txt' download='aa_id_mutations.txt' >Download</a></td></tr>" >> $output | 
|  | 593 echo "<tr><td>Absent AA location data per sequence ID</td><td><a href='absent_aa_id.txt' download='absent_aa_id.txt' >Download</a></td></tr>" >> $output | 
|  | 594 | 
|  | 595 echo "<tr><td>Baseline PDF (<a href='http://selection.med.yale.edu/baseline/'>http://selection.med.yale.edu/baseline/</a>)</td><td><a href='baseline.pdf' download='baseline.pdf' >Download</a></td></tr>" >> $output | 
|  | 596 echo "<tr><td>Baseline data</td><td><a href='baseline.txt' download='baseline.txt' >Download</a></td></tr>" >> $output | 
|  | 597 echo "<tr><td>Baseline IGA PDF</td><td><a href='baseline_IGA.pdf' download='baseline_IGA.pdf' >Download</a></td></tr>" >> $output | 
|  | 598 echo "<tr><td>Baseline IGA data</td><td><a href='baseline_IGA.txt' download='baseline_IGA.txt' >Download</a></td></tr>" >> $output | 
|  | 599 echo "<tr><td>Baseline IGG PDF</td><td><a href='baseline_IGG.pdf' download='baseline_IGG.pdf' >Download</a></td></tr>" >> $output | 
|  | 600 echo "<tr><td>Baseline IGG data</td><td><a href='baseline_IGG.txt' download='baseline_IGG.txt' >Download</a></td></tr>" >> $output | 
|  | 601 echo "<tr><td>Baseline IGM PDF</td><td><a href='baseline_IGM.pdf' download='baseline_IGM.pdf' >Download</a></td></tr>" >> $output | 
|  | 602 echo "<tr><td>Baseline IGM data</td><td><a href='baseline_IGM.txt' download='baseline_IGM.txt' >Download</a></td></tr>" >> $output | 
| 6 | 603 echo "<tr><td>Baseline IGE data</td><td><a href='baseline_IGE.txt' download='baseline_IGE.txt' >Download</a></td></tr>" >> $output | 
| 0 | 604 | 
| 2 | 605 echo "<tr><td colspan='2' style='background-color:#E0E0E0;'>CSR</td></tr>" >> $output | 
|  | 606 echo "<tr><td>The data for the CSR IGA pie plot</td><td><a href='IGA_pie.txt' download='IGA_pie.txt' >Download</a></td></tr>" >> $output | 
|  | 607 echo "<tr><td>The data for the CSR IGG pie plot</td><td><a href='IGG_pie.txt' download='IGG_pie.txt' >Download</a></td></tr>" >> $output | 
|  | 608 | 
|  | 609 echo "<tr><td colspan='2' style='background-color:#E0E0E0;'>Clonality</td></tr>" >> $output | 
|  | 610 echo "<tr><td>Sequence overlap between subclasses</td><td><a href='sequence_overview/index.html'>View</a></td></tr>" >> $output | 
|  | 611 echo "<tr><td>The Change-O DB file with defined clones and subclass annotation</td><td><a href='change_o/change-o-db-defined_clones.txt' download='change_o/change-o-db-defined_clones.txt' >Download</a></td></tr>" >> $output | 
|  | 612 echo "<tr><td>The Change-O DB defined clones summary file</td><td><a href='change_o/change-o-defined_clones-summary.txt' download='change_o/change-o-defined_clones-summary.txt' >Download</a></td></tr>" >> $output | 
|  | 613 echo "<tr><td>The Change-O DB file with defined clones of IGA</td><td><a href='change_o/change-o-db-defined_clones-IGA.txt' download='change_o/change-o-db-defined_clones-IGA.txt' >Download</a></td></tr>" >> $output | 
|  | 614 echo "<tr><td>The Change-O DB defined clones summary file of IGA</td><td><a href='change_o/change-o-defined_clones-summary-IGA.txt' download='change_o/change-o-defined_clones-summary-IGA.txt' >Download</a></td></tr>" >> $output | 
|  | 615 echo "<tr><td>The Change-O DB file with defined clones of IGG</td><td><a href='change_o/change-o-db-defined_clones-IGG.txt' download='change_o/change-o-db-defined_clones-IGG.txt' >Download</a></td></tr>" >> $output | 
|  | 616 echo "<tr><td>The Change-O DB defined clones summary file of IGG</td><td><a href='change_o/change-o-defined_clones-summary-IGG.txt' download='change_o/change-o-defined_clones-summary-IGG.txt' >Download</a></td></tr>" >> $output | 
|  | 617 echo "<tr><td>The Change-O DB file with defined clones of IGM</td><td><a href='change_o/change-o-db-defined_clones-IGM.txt' download='change_o/change-o-db-defined_clones-IGM.txt' >Download</a></td></tr>" >> $output | 
|  | 618 echo "<tr><td>The Change-O DB defined clones summary file of IGM</td><td><a href='change_o/change-o-defined_clones-summary-IGM.txt' download='change_o/change-o-defined_clones-summary-IGM.txt' >Download</a></td></tr>" >> $output | 
| 6 | 619 echo "<tr><td>The Change-O DB file with defined clones of IGE</td><td><a href='change_o/change-o-db-defined_clones-IGE.txt' download='change_o/change-o-db-defined_clones-IGE.txt' >Download</a></td></tr>" >> $output | 
|  | 620 echo "<tr><td>The Change-O DB defined clones summary file of IGE</td><td><a href='change_o/change-o-defined_clones-summary-IGE.txt' download='change_o/change-o-defined_clones-summary-IGE.txt' >Download</a></td></tr>" >> $output | 
| 2 | 621 | 
|  | 622 echo "<tr><td colspan='2' style='background-color:#E0E0E0;'>Filtered IMGT output files</td></tr>" >> $output | 
| 0 | 623 echo "<tr><td>An IMGT archive with just the matched and filtered sequences</td><td><a href='new_IMGT.txz' download='new_IMGT.txz' >Download</a></td></tr>" >> $output | 
|  | 624 echo "<tr><td>An IMGT archive with just the matched and filtered IGA sequences</td><td><a href='new_IMGT_IGA.txz' download='new_IMGT_IGA.txz' >Download</a></td></tr>" >> $output | 
|  | 625 echo "<tr><td>An IMGT archive with just the matched and filtered IGA1 sequences</td><td><a href='new_IMGT_IGA1.txz' download='new_IMGT_IGA1.txz' >Download</a></td></tr>" >> $output | 
|  | 626 echo "<tr><td>An IMGT archive with just the matched and filtered IGA2 sequences</td><td><a href='new_IMGT_IGA2.txz' download='new_IMGT_IGA2.txz' >Download</a></td></tr>" >> $output | 
|  | 627 echo "<tr><td>An IMGT archive with just the matched and filtered IGG sequences</td><td><a href='new_IMGT_IGG.txz' download='new_IMGT_IGG.txz' >Download</a></td></tr>" >> $output | 
|  | 628 echo "<tr><td>An IMGT archive with just the matched and filtered IGG1 sequences</td><td><a href='new_IMGT_IGG1.txz' download='new_IMGT_IGG1.txz' >Download</a></td></tr>" >> $output | 
|  | 629 echo "<tr><td>An IMGT archive with just the matched and filtered IGG2 sequences</td><td><a href='new_IMGT_IGG2.txz' download='new_IMGT_IGG2.txz' >Download</a></td></tr>" >> $output | 
|  | 630 echo "<tr><td>An IMGT archive with just the matched and filtered IGG3 sequences</td><td><a href='new_IMGT_IGG3.txz' download='new_IMGT_IGG3.txz' >Download</a></td></tr>" >> $output | 
|  | 631 echo "<tr><td>An IMGT archive with just the matched and filtered IGG4 sequences</td><td><a href='new_IMGT_IGG4.txz' download='new_IMGT_IGG4.txz' >Download</a></td></tr>" >> $output | 
|  | 632 echo "<tr><td>An IMGT archive with just the matched and filtered IGM sequences</td><td><a href='new_IMGT_IGM.txz' download='new_IMGT_IGM.txz' >Download</a></td></tr>" >> $output | 
| 6 | 633 echo "<tr><td>An IMGT archive with just the matched and filtered IGE sequences</td><td><a href='new_IMGT_IGE.txz' download='new_IMGT_IGM.txz' >Download</a></td></tr>" >> $output | 
| 0 | 634 | 
|  | 635 echo "</table>" >> $output | 
|  | 636 | 
|  | 637 echo "</div>" >> $output #downloads tab end | 
|  | 638 | 
|  | 639 echo "</div>" >> $output #tabs end | 
|  | 640 | 
|  | 641 echo "</html>" >> $output | 
|  | 642 | 
| 5 | 643 | 
|  | 644 if [[ "$fast" == "no" ]] ; then | 
| 0 | 645 | 
| 5 | 646 	echo "---------------- baseline ----------------" | 
|  | 647 	echo "---------------- baseline ----------------<br />" >> $log | 
|  | 648 	tmp="$PWD" | 
|  | 649 | 
|  | 650 	mkdir $outdir/baseline | 
| 0 | 651 | 
|  | 652 | 
| 5 | 653 	mkdir $outdir/baseline/IGA_IGG_IGM | 
|  | 654 	if [[ $(wc -l < $outdir/new_IMGT/1_Summary.txt) -gt "1" ]]; then | 
|  | 655 		cd $outdir/baseline/IGA_IGG_IGM | 
|  | 656 		bash $dir/baseline/wrapper.sh 1 1 1 1 0 0 "25:26:38:55:65:104:-" $outdir/new_IMGT.txz "IGA_IGG_IGM" "$dir/baseline/IMGT-reference-seqs-IGHV-2015-11-05.fa" "$outdir/baseline.pdf" "Sequence.ID" "$outdir/baseline.txt" | 
|  | 657 	else | 
|  | 658 		echo "No sequences" > "$outdir/baseline.txt" | 
|  | 659 	fi | 
| 0 | 660 | 
| 5 | 661 	mkdir $outdir/baseline/IGA | 
|  | 662 	if [[ $(wc -l < $outdir/new_IMGT_IGA/1_Summary.txt) -gt "1" ]]; then | 
|  | 663 		cd $outdir/baseline/IGA | 
|  | 664 		bash $dir/baseline/wrapper.sh 1 1 1 1 0 0 "25:26:38:55:65:104:-" $outdir/new_IMGT_IGA.txz "IGA" "$dir/baseline/IMGT-reference-seqs-IGHV-2015-11-05.fa" "$outdir/baseline_IGA.pdf" "Sequence.ID" "$outdir/baseline_IGA.txt" | 
|  | 665 	else | 
|  | 666 		echo "No IGA sequences" > "$outdir/baseline_IGA.txt" | 
|  | 667 	fi | 
| 0 | 668 | 
| 5 | 669 	mkdir $outdir/baseline/IGG | 
|  | 670 	if [[ $(wc -l < $outdir/new_IMGT_IGG/1_Summary.txt) -gt "1" ]]; then | 
|  | 671 		cd $outdir/baseline/IGG | 
|  | 672 		bash $dir/baseline/wrapper.sh 1 1 1 1 0 0 "25:26:38:55:65:104:-" $outdir/new_IMGT_IGG.txz "cg" "$dir/baseline/IMGT-reference-seqs-IGHV-2015-11-05.fa" "$outdir/baseline_IGG.pdf" "Sequence.ID" "$outdir/baseline_IGG.txt" | 
|  | 673 	else | 
|  | 674 		echo "No IGG sequences" > "$outdir/baseline_IGG.txt" | 
|  | 675 	fi | 
| 0 | 676 | 
| 5 | 677 	mkdir $outdir/baseline/IGM | 
|  | 678 	if [[ $(wc -l < $outdir/new_IMGT_IGM/1_Summary.txt) -gt "1" ]]; then | 
|  | 679 		cd $outdir/baseline/IGM | 
|  | 680 		bash $dir/baseline/wrapper.sh 1 1 1 1 0 0 "25:26:38:55:65:104:-" $outdir/new_IMGT_IGM.txz "IGM" "$dir/baseline/IMGT-reference-seqs-IGHV-2015-11-05.fa" "$outdir/baseline_IGM.pdf" "Sequence.ID" "$outdir/baseline_IGM.txt" | 
|  | 681 	else | 
|  | 682 		echo "No IGM sequences" > "$outdir/baseline_IGM.txt" | 
|  | 683 	fi | 
|  | 684 | 
| 6 | 685 	mkdir $outdir/baseline/IGE | 
|  | 686 	if [[ $(wc -l < $outdir/new_IMGT_IGE/1_Summary.txt) -gt "1" ]]; then | 
|  | 687 		cd $outdir/baseline/IGE | 
|  | 688 		bash $dir/baseline/wrapper.sh 1 1 1 1 0 0 "25:26:38:55:65:104:-" $outdir/new_IMGT_IGE.txz "IGE" "$dir/baseline/IMGT-reference-seqs-IGHV-2015-11-05.fa" "$outdir/baseline_IGE.pdf" "Sequence.ID" "$outdir/baseline_IGE.txt" | 
|  | 689 	else | 
|  | 690 		echo "No IGE sequences" > "$outdir/baseline_IGE.txt" | 
|  | 691 	fi | 
|  | 692 | 
| 5 | 693 	cd $tmp | 
|  | 694 | 
|  | 695 	echo "Cleaning up *.RData files" | 
|  | 696 	find $outdir/baseline -name "*.RData" -type f -delete | 
|  | 697 | 
| 0 | 698 fi | 
|  | 699 | 
|  | 700 echo "---------------- naive_output.r ----------------" | 
|  | 701 echo "---------------- naive_output.r ----------------<br />" >> $log | 
|  | 702 | 
| 5 | 703 if [[ "$naive_output" == "yes" ]] | 
| 0 | 704 then | 
| 28 | 705 	echo "output naive output" | 
| 18 | 706 	if [[ "${class_filter}" == "101_101" ]] | 
|  | 707 	then | 
| 28 | 708 		echo "copy new_IMGT.txz to ${naive_output_all}" | 
| 21 | 709 		cp $outdir/new_IMGT.txz ${naive_output_all} | 
| 18 | 710 	else | 
| 28 | 711 		echo "copy for classes" | 
| 18 | 712 		cp $outdir/new_IMGT_IGA.txz ${naive_output_ca} | 
|  | 713 		cp $outdir/new_IMGT_IGG.txz ${naive_output_cg} | 
|  | 714 		cp $outdir/new_IMGT_IGM.txz ${naive_output_cm} | 
|  | 715 		cp $outdir/new_IMGT_IGE.txz ${naive_output_ce} | 
|  | 716 	fi | 
| 0 | 717 fi | 
|  | 718 | 
|  | 719 echo "</table>" >> $outdir/base_overview.html | 
|  | 720 | 
|  | 721 mv $log $outdir/log.html | 
|  | 722 | 
|  | 723 echo "<html><center><h1><a href='index.html'>Click here for the results</a></h1>Tip: Open it in a new tab (middle mouse button or right mouse button -> 'open in new tab' on the link above)<br />" > $log | 
|  | 724 echo "<table border = 1>" >> $log | 
|  | 725 echo "<thead><tr><th>Info</th><th>Sequences</th><th>Percentage</th></tr></thead>" >> $log | 
|  | 726 tIFS="$TMP" | 
|  | 727 IFS=$'\t' | 
|  | 728 while read step seq perc | 
|  | 729 	do | 
|  | 730 		echo "<tr>" >> $log | 
|  | 731 		echo "<td>$step</td>" >> $log | 
|  | 732 		echo "<td>$seq</td>" >> $log | 
|  | 733 		echo "<td>${perc}%</td>" >> $log | 
|  | 734 		echo "</tr>" >> $log | 
|  | 735 done < $outdir/filtering_steps.txt | 
|  | 736 echo "</table border></center></html>" >> $log | 
|  | 737 | 
|  | 738 IFS="$tIFS" | 
|  | 739 | 
|  | 740 | 
|  | 741 echo "---------------- Done! ----------------" | 
|  | 742 echo "---------------- Done! ----------------<br />" >> $outdir/log.html | 
|  | 743 | 
|  | 744 | 
|  | 745 | 
|  | 746 | 
|  | 747 | 
|  | 748 | 
|  | 749 | 
|  | 750 | 
|  | 751 | 
|  | 752 | 
|  | 753 | 
|  | 754 | 
|  | 755 | 
|  | 756 | 
|  | 757 | 
|  | 758 | 
|  | 759 | 
|  | 760 | 
|  | 761 | 
|  | 762 | 
|  | 763 |