annotate mnt/c/Users/lelwala/HTS/myTools/HTS_script/run_VSD_report_20210604.sh @ 0:03e20b2ddead draft default tip

Uploaded
author lelwala
date Wed, 11 Aug 2021 00:23:59 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
1 #!/bin/bash
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
2
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
3 ## eResearch Office, QUT
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
4 ## Created: 31 March 2021
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
5 ## Last modified: 24 May 2021
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
6 ## Script: Processes Galaxy Australia generated blastN outputs to summarise and report hits to REGULATED and ENDEMIC viruses/viroids.
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
7 ## Usage: ./run_VSD_report.sh
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
8
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
9 dataPath=${PWD}
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
10
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
11 # Requirement: One or more GA-VSD .tabular outputs need to be in the folder where the command above (Usage)is executed.
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
12 # The script will Look for all files with the suffix *.tabular
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
13
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
14 # Help information to user (i.e., script_name -h or script_name --help)
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
15
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
16 #Required file in the same folder of tabular outputs
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
17 ICTV='ICTV_taxonomy_MinIdentity_Species_20210514.tsv'
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
18
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
19
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
20 if [ "$1" == "-h" ]; then
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
21 echo "Usage: "./`basename ./$0`" "
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
22 exit 0
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
23
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
24 elif [ "$1" == "--help" ]
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
25 then
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
26 echo "Usage: "./`basename $0`" "
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
27 exit 1
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
28 fi
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
29
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
30 #Processing tabular files
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
31
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
32 for file in *.tabular
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
33 do
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
34 var=$(basename $file)
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
35
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
36 #STEP0: fetch Top 1 Hits
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
37 cat $file | awk '{print $1}' | sort | uniq > ${var}.top1.ids
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
38 for i in `cat ${var}.top1.ids`; do echo "fetching top hits..." $i; grep $i $file | head -1 >> ${var}.top1Hits.txt ; done
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
39
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
40 #STEP1: modify the columns of Galaxy Australia (GA) blast output to the expected format by the BlastTools.jar tool
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
41 ###### namely: qseqid sgi sacc length pident mismatch gapopen qstart qend qlen sstart send slen sstrand evalue bitscore qcovhsp stitle staxids qseq sseq sseqid qcovs qframe sframe
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
42 cat ${var}.top1Hits.txt |csvtk cut -H -t -f 1,19,20,4,3,5,6,7,8,17,9,10,18,22,11,12,24,21,25,15,16,2,23,13,14 | sed 's/ /_/g' > ${var}.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
43
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
44 #STEP2: summarise the GA blastN files
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
45 java -jar /mnt/c/Users/lelwala/HTS/BlastTools.jar -t blastn ${var}.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
46
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
47 #filter regulated/edemic/LandPlant
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
48 cat summary_${var}.txt | grep "regulated" >> summary_${var}_filtered.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
49 cat summary_${var}.txt | grep "endemic" >> summary_${var}_filtered.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
50 cat summary_${var}.txt | grep "LandPlant" >> summary_${var}_filtered.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
51
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
52 #STEP3: fetch unique names from Blast summary reports
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
53 cat summary_${var}_filtered.txt | awk '{print $7}' | awk -F "|" '{print $3}'| sort | uniq | sed 's/Species://' > ${var}_uniq.ids
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
54
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
55 #STEP4: retrieve the best hit for each virus/viroid
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
56 echo "processing top hits ..."
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
57 for id in `cat ${var}_uniq.ids`
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
58 do
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
59 #print on the screen the name of the virus/viroids to search
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
60 #echo "fetching species matches ..." $id
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
61
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
62 #fetch the virus name on the summary_blastn file by selecteing longest alignment (column 3) and highest genome coverage (column 5)
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
63 grep $id summary_${var}.txt | sort -k3,3nr -k5,5nr | head -1 >> ${var}_filtered.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
64
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
65 #print the header of the inital summary_blastn file
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
66 cat summary_${var}.txt | head -1 > header
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
67
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
68 #fetch hits to REGULATED and ENDEMIC viruses
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
69 grep "regulated" ${var}_filtered.txt > summary_${var}_REGULATED_viruses_viroids
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
70
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
71 grep "endemic" ${var}_filtered.txt > summary_${var}_ENDEMIC_viruses_viroids
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
72
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
73 ##### REPORT1 ##### add header to columns
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
74 cat header summary_${var}_REGULATED_viruses_viroids > summary_${var}_REGULATED_viruses_viroids.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
75
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
76 cat header summary_${var}_ENDEMIC_viruses_viroids > summary_${var}_ENDEMIC_viruses_viroids.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
77
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
78 #fetch genus names of identified hits
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
79 awk '{print $7}' summary_${var}_REGULATED_viruses_viroids.txt | awk -F "|" '{print $3}' | sed 's/Species://' | sed 1d > wanted_regulated.names
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
80
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
81 awk '{print $7}' summary_${var}_ENDEMIC_viruses_viroids.txt | awk -F "|" '{print $3}' | sed 's/Species://' | sed 1d > wanted_endemic.names
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
82
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
83 #add species to report
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
84 paste wanted_regulated.names summary_${var}_REGULATED_viruses_viroids > summary_${var}_REGULATED_viruses_viroids.MOD
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
85
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
86 paste wanted_endemic.names summary_${var}_ENDEMIC_viruses_viroids > summary_${var}_ENDEMIC_viruses_viroids.MOD
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
87
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
88 #STEP5: fecth ICTV information
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
89 grep -w -F -f wanted_regulated.names $ICTV > wanted_regulated.ICTV
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
90
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
91 grep -w -F -f wanted_endemic.names $ICTV > wanted_endemic.ICTV
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
92
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
93 #join reports with ICTV information
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
94 join -a 1 -1 1 -2 1 summary_${var}_REGULATED_viruses_viroids.MOD wanted_regulated.ICTV | tr ' ' '\t' | awk '$4>=70' > summary_${var}_REGULATED_viruses_viroids_ICTV
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
95
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
96 #print name of virus/viroid being processed
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
97 echo "$id"
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
98
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
99 join -a 1 -1 1 -2 1 summary_${var}_ENDEMIC_viruses_viroids.MOD wanted_endemic.ICTV | tr ' ' '\t' | awk '$4>=70' > summary_${var}_ENDEMIC_viruses_viroids_ICTV
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
100
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
101 #modify header
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
102 awk '{print "Species" "\t" $0 "\t" "ICTV_information"}' header > header2
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
103
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
104 ##### REPORT2 ##### add header2 to identified hits
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
105 cat header2 summary_${var}_REGULATED_viruses_viroids_ICTV > summary_${var}_REGULATED_viruses_viroids_ICTV.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
106
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
107 cat header2 summary_${var}_ENDEMIC_viruses_viroids_ICTV | awk -F"\t" '$1!=""&&$2!=""&&$3!=""' > summary_${var}_ENDEMIC_viruses_viroids_ICTV.txt
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
108
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
109 done
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
110
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
111 echo "completed!"
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
112
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
113 #removing intermediate files
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
114 rm ${var}.txt ${var}_uniq.ids summary_${var}_filtered.txt *top1Hits.txt *viruses_viroids.txt header* *.MOD *ENDEMIC_viruses_viroids *_ICTV wanted* ${var}_filtered.txt ${var}.top1.ids summary_${var}_REGULATED_viruses_viroids
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
115
03e20b2ddead Uploaded
lelwala
parents:
diff changeset
116 done