0
|
1 #!/usr/bin/env bash
|
|
2 DIR=$1
|
|
3 COV=$2
|
|
4 SIM=$3
|
|
5 THR=$4
|
|
6 EXT=$5
|
|
7 OUT=$6
|
|
8
|
|
9
|
|
10 BINDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
11
|
|
12 array=()
|
|
13 x=0
|
|
14
|
|
15 echo "WARNING: FULL COMPARISON IS ENABLED"
|
|
16
|
|
17 if [ $# != 6 ]; then
|
|
18 echo "***ERROR*** Use: $0 metagenomes_directory coverage similarity threads file_extension outpath"
|
|
19 exit -1
|
|
20 fi
|
|
21
|
|
22 for elem in $(ls -d $DIR/*.$EXT | awk -F "/" '{print $NF}' | awk -F ".$EXT" '{print $1}')
|
|
23 do
|
|
24 array[$x]=$elem
|
|
25 x=`expr $x + 1`
|
|
26 #echo "X: $elem"
|
|
27 done
|
|
28
|
|
29 for ((i=0 ; i < ${#array[@]} ; i++))
|
|
30 do
|
|
31 for ((j=i ; j < ${#array[@]} ; j++))
|
|
32 do
|
|
33 if [ $i != $j ]; then
|
|
34 seqX=${array[$i]}
|
|
35 seqY=${array[$j]}
|
|
36 #echo "----------${seqX}-${seqY}-----------"
|
|
37 if [[ ! -f $6/${seqX}-${seqY}.align ]]; then #if the file does not exist
|
|
38
|
|
39
|
|
40 ${BINDIR}/IMSAME -query $DIR/${seqX}.$EXT -db $DIR/${seqY}.$EXT -n_threads $THR --full -coverage $COV -identity $SIM -out $6/${seqX}-${seqY}.align
|
|
41 grep "(" $6/${seqX}-${seqY}.align | awk '{print $4, $5, $6}' | sed 's/%//g' > $6/${seqX}-${seqY}.align.filtered
|
|
42
|
|
43 ${BINDIR}/covident $6/${seqX}-${seqY}.align.filtered $6/${seqX}-${seqY}.align.filtered.mat
|
|
44
|
|
45 fi
|
|
46
|
|
47
|
|
48
|
|
49
|
|
50
|
|
51 if [[ ! -f $6/${seqX}-${seqY}.r.align ]]; then #if the reversed alignment does not exist
|
|
52 # Compute reverse complement
|
|
53 ${BINDIR}/revComp $DIR/${seqY}.$EXT $DIR/${seqY}.r.${EXT}
|
|
54 ${BINDIR}/IMSAME -query $DIR/${seqX}.$EXT -db $DIR/${seqY}.r.$EXT -n_threads $THR --full -coverage $COV -identity $SIM -out $6/${seqX}-${seqY}.r.align
|
|
55 grep "(" $6/${seqX}-${seqY}.r.align | awk '{print $4, $5, $6}' | sed 's/%//g' > $6/${seqX}-${seqY}.r.align.filtered
|
|
56
|
|
57 ${BINDIR}/covident $6/${seqX}-${seqY}.r.align.filtered $6/${seqX}-${seqY}.align.filtered.mat
|
|
58
|
|
59 fi
|
|
60
|
|
61
|
|
62
|
|
63 fi
|
|
64 rm $DIR/${seqY}.r.${EXT}
|
|
65 done
|
|
66
|
|
67 done
|