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