0
|
1 #!/bin/bash
|
|
2
|
|
3 FL=1000 # frequency limit
|
|
4
|
10
|
5 if [ $# != 8 ]; then
|
0
|
6 echo " ==== ERROR ... you called this script inappropriately."
|
|
7 echo ""
|
10
|
8 echo " usage: $0 seqXName seqYName lenght similarity WL fixedL output.frags output.csv"
|
0
|
9 echo ""
|
|
10 exit -1
|
|
11 fi
|
|
12
|
10
|
13
|
2
|
14 {
|
0
|
15
|
10
|
16
|
|
17 MYRAND=$((( RANDOM % 10000000) +1))
|
|
18 MGDIR=${PWD}/${MYRAND}
|
|
19 echo "MGDIR $MGDIR"
|
|
20 mkdir -p ${MGDIR}
|
|
21
|
|
22 genoXname=$(basename "$1")
|
|
23 genoYname=$(basename "$2")
|
|
24 genoXname="${genoXname%.*}"
|
|
25 genoYname="${genoYname%.*}"
|
0
|
26
|
|
27
|
10
|
28 cp $1 $MGDIR/${genoXname}.fasta
|
|
29 cp $2 $MGDIR/${genoYname}.fasta
|
|
30 mkdir -p ${MGDIR}/dictionaries
|
|
31 mkdir -p ${MGDIR}/fragments
|
|
32
|
|
33 genoXExt="fasta"
|
|
34 genoYExt="fasta"
|
|
35
|
|
36
|
0
|
37
|
|
38 BINDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
39
|
|
40 length=${3}
|
|
41 similarity=${4}
|
|
42 WL=${5} # wordSize
|
|
43 fixedL=${6}
|
10
|
44 output=${7}
|
|
45 csv=${8}
|
0
|
46
|
10
|
47 mkdir ${MGDIR}/intermediateFiles
|
0
|
48
|
10
|
49 mkdir ${MGDIR}/intermediateFiles/${genoXname}-${genoYname}
|
|
50 mkdir ${MGDIR}/results
|
|
51 mkdir ${MGDIR}/intermediateFiles/dictionaries
|
|
52 mkdir ${MGDIR}/intermediateFiles/hits
|
0
|
53
|
|
54 # Copiamos los fastas
|
10
|
55 ln -s ${MGDIR}/${genoXname}.${genoXname} ${MGDIR}/intermediateFiles/${genoXname}-${genoYname}
|
|
56 ln -s ${MGDIR}/${genoYname}.${genoYname} ${MGDIR}/intermediateFiles/${genoYname}-${genoXname}
|
0
|
57
|
10
|
58 cd ${MGDIR}/intermediateFiles/${genoXname}-${genoYname}
|
0
|
59
|
|
60 ###############
|
|
61
|
|
62
|
10
|
63
|
|
64 echo "${BINDIR}/reverseComplement ${MGDIR}/${genoYname}.${genoXExt} ${genoYname}-revercomp.${genoYExt}"
|
|
65 ${BINDIR}/reverseComplement ${MGDIR}/${genoYname}.${genoYExt} ${MGDIR}/${genoYname}-revercomp.${genoYExt}
|
0
|
66
|
10
|
67 if [[ ! -f ../dictionaries/${genoXname}.d2hP ]]; then
|
|
68 echo "${BINDIR}/dictionary.sh ${MGDIR}/${genoXname}.${genoXExt} &"
|
|
69 ${BINDIR}/dictionary.sh ${MGDIR}/${genoXname}.${genoXExt} &
|
|
70 fi
|
|
71
|
|
72 if [[ ! -f ../dictionaries/${seqYName}.d2hP ]]; then
|
|
73 echo "${BINDIR}/dictionary.sh ${MGDIR}/${genoYname}.${genoYExt} &"
|
|
74 ${BINDIR}/dictionary.sh ${MGDIR}/${genoYname}.${genoYExt} &
|
0
|
75 fi
|
|
76
|
10
|
77 if [[ ! -f ../dictionaries/${genoYname}-revercomp.d2hP ]]; then
|
|
78 echo "${BINDIR}/dictionary.sh ${MGDIR}/${genoYname}-revercomp.${genoYExt} &"
|
|
79 ${BINDIR}/dictionary.sh ${MGDIR}/${genoYname}-revercomp.${genoYExt} &
|
0
|
80 fi
|
|
81
|
|
82 echo "Waiting for the calculation of the dictionaries"
|
|
83
|
|
84 for job in `jobs -p`
|
|
85 do
|
|
86 #echo $job
|
|
87 wait $job
|
|
88 done
|
|
89
|
|
90
|
10
|
91
|
|
92 mv ${genoXname}.d2hP ../dictionaries/
|
|
93 mv ${genoXname}.d2hW ../dictionaries/
|
|
94 mv ${genoYname}.d2hP ../dictionaries/
|
|
95 mv ${genoYname}.d2hW ../dictionaries/
|
|
96 mv ${genoYname}-revercomp.d2hP ../dictionaries/
|
|
97 mv ${genoYname}-revercomp.d2hW ../dictionaries/
|
|
98
|
|
99
|
0
|
100
|
|
101 # Hacemos enlace simbolico
|
10
|
102 ln -s ../dictionaries/${genoXname}.d2hP .
|
|
103 ln -s ../dictionaries/${genoXname}.d2hW .
|
0
|
104
|
10
|
105 ln -s ../dictionaries/${genoYname}.d2hP .
|
|
106 ln -s ../dictionaries/${genoYname}.d2hW .
|
0
|
107
|
10
|
108 ln -s ../dictionaries/${genoYname}-revercomp.d2hP .
|
|
109 ln -s ../dictionaries/${genoYname}-revercomp.d2hW .
|
0
|
110
|
10
|
111 echo "${BINDIR}/comparison.sh ${MGDIR}/${genoXname}.${genoXExt} ${MGDIR}/${genoYname}.${genoYExt} ${length} ${similarity} ${WL} ${fixedL} f &"
|
|
112 ${BINDIR}/comparison.sh ${MGDIR}/${genoXname}.${genoXExt} ${MGDIR}/${genoYname}.${genoYExt} ${length} ${similarity} ${WL} ${fixedL} f &
|
0
|
113
|
10
|
114 echo "${BINDIR}/comparison.sh ${MGDIR}/${genoXname}.${genoXExt} ${MGDIR}/${genoYname}-revercomp.${genoYExt} ${length} ${similarity} ${WL} ${fixedL} r &"
|
|
115 ${BINDIR}/comparison.sh ${MGDIR}/${genoXname}.${genoXExt} ${MGDIR}/${genoYname}-revercomp.${genoYExt} ${length} ${similarity} ${WL} ${fixedL} r &
|
0
|
116
|
|
117 echo "Waiting for the comparisons"
|
|
118
|
|
119 for job in `jobs -p`
|
|
120 do
|
|
121 #echo $job
|
|
122 wait $job
|
|
123 done
|
|
124
|
10
|
125
|
0
|
126 #echo "rm ${seqYName}-revercomp.${extensionY}"
|
|
127 #rm ${seqYName}-revercomp.${extensionY}
|
|
128
|
|
129
|
10
|
130 echo "${BINDIR}/combineFrags ${genoXname}-${genoYname}-sf.frags ${genoXname}-${genoYname}-revercomp-sr.frags ${genoXname}-${genoYname}.frags"
|
|
131 ${BINDIR}/combineFrags ${genoXname}-${genoYname}-sf.frags ${genoXname}-${genoYname}-revercomp-sr.frags ${genoXname}-${genoYname}.frags
|
0
|
132
|
|
133 #Borramos todo menos los frags y los diccionarios
|
|
134
|
|
135 # Get Info from frags
|
10
|
136 echo "${BINDIR}/getInfo ${genoXname}-${genoYname}.frags > ${genoXname}-${genoYname}.csv"
|
|
137 ${BINDIR}/getInfo ${genoXname}-${genoYname}.frags > ${genoXname}-${genoYname}.csv.tmp
|
|
138 cat ${genoXname}-${genoYname}.frags.INF ${genoXname}-${genoYname}.csv.tmp > ${genoXname}-${genoYname}.csv
|
|
139 rm -rf ${genoXname}-${genoYname}.csv.tmp
|
0
|
140
|
10
|
141 if [[ -L "../../${genoXname}.fasta" ]]
|
0
|
142 then
|
10
|
143 rm ../../${genoYname}.fasta
|
0
|
144 fi
|
|
145
|
10
|
146 if [[ -L "../../${genoXname}.fasta" ]]
|
0
|
147 then
|
10
|
148 rm ../../${genoYname}.fasta
|
0
|
149 fi
|
|
150
|
|
151 #Movemos los frags y los info
|
10
|
152 mv ${genoXname}-${genoYname}.frags $output
|
|
153 mv ${genoXname}-${genoYname}.csv $csv
|
|
154
|
|
155
|
0
|
156
|
|
157 #echo "Borrando ${seqXName}-${seqYName}"
|
|
158 cd ..
|
10
|
159
|
0
|
160 #rm -rf ${seqXName}-${seqYName}
|
|
161
|
10
|
162 cd ..
|
|
163
|
|
164
|
|
165 rm -r ${MGDIR}
|
|
166
|
2
|
167 } &> /dev/null
|
10
|
168
|