annotate SignalGenerator.sh @ 1:243f75d0ed6e draft default tip

Uploaded. Includes new release 1.0.7 with fixed optional controls.
author messersc
date Thu, 19 Feb 2015 05:39:45 -0500
parents d42f4d78c85e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
1 ########################################################################
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
2 # JAMMv1.0.7rev1 is a peak finder for joint analysis of NGS replicates.
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
3 # Copyright (C) 2014-2015 Mahmoud Ibrahim
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
4 #
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
5 # This program is free software: you can redistribute it and/or modify
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
6 # it under the terms of the GNU General Public License as published by
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
7 # the Free Software Foundation, either version 3 of the License, or
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
8 # (at your option) any later version.
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
9 #
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
10 # This program is distributed in the hope that it will be useful,
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
13 # GNU General Public License for more details.
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
14 #
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
15 # You should have received a copy of the GNU General Public License
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
17 #
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
18 # Contact: mahmoud.ibrahim@mdc-berlin.de
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
19 ########################################################################
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
20
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
21 ##Finding out the path
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
22 sPath="`dirname \"$0\"`"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
23 sPath="`( cd \"$sPath\" && pwd )`"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
24
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
25
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
26
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
27 usage()
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
28 {
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
29 cat << EOF
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
30 Welcome to JAMM v1.0.7rev1 Signal Generator Script (GNU GPLv3). Copyright (C) 2014-2015 Mahmoud Ibrahim.
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
31
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
32 This program comes with ABSOLUTELY NO WARRANTY; for details visit http://www.gnu.org/licenses/gpl.html. This is free software, and you are welcome to redistribute it under certain conditions; visit http://www.gnu.org/licenses/gpl.html for details.
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
33
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
34 OPTIONS:
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
35 -s Directory containing sample files (required)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
36 -g Genome size file (required)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
37 -o Output Directory (required)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
38 -c directory containing input or Control files
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
39 -r file with Regions to get signal for (required)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
40 -b Bin size for signal generation (default: 10)
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
41 -f Fragment lengths (required if -t is "single")
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
42 -p Number of processors used by R scripts (default: 1)
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
43 -t Alignment type, paired or single (default: single)
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
44
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
45 EOF
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
46 }
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
47
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
48
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
49 # =========================
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
50 # Process Input parameters
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
51 # =========================
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
52
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
53
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
54 sdir=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
55 gsize=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
56 out=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
57 signal="10"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
58 regs=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
59 fraglen=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
60 wdir=$(mktemp -d)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
61 ran=$RANDOM
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
62 cores="1"
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
63 type="single"
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
64
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
65 while getopts "s:o:c:r:b:f:g:p:t:" OPTION
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
66 do
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
67 case $OPTION in
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
68 s) sdir=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
69 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
70 g) gsize=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
71 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
72 o) out=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
73 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
74 c) bdir=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
75 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
76 r) regs=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
77 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
78 b) signal=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
79 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
80 f) fraglen=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
81 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
82 p) cores=$OPTARG
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
83 ;;
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
84 t) type=$OPTARG
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
85 ;;
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
86 ?)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
87 usage
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
88 exit
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
89 ;;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
90 esac
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
91 done
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
92
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
93
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
94 if [[ -z $sdir ]] || [[ -z $regs ]] || [[ -z $out ]]
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
95 then
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
96 usage
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
97 exit 1
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
98 fi
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
99
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
100 if [[ -z $fraglen ]]
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
101 then
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
102 if [ $type == "single" ]
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
103 then
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
104 usage
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
105 exit 1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
106 fi
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
107 fi
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
108 if [[ -d "$out/signal" ]]; then
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
109 printf "\n\nOutput directory $out/signal already exists. I can't override existing results!\n\n"
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
110 exit 0
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
111 fi
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
112 #=======================> DONE!
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
113
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
114
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
115
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
116 # =============================
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
117 # Step One: Initial Processing
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
118 # =============================
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
119 printf "\n\n=======================================================\nStarted JAMM1.0.7rev1 Signal Generator Pipeline...Hang on!\n=======================================================\n\n"
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
120
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
121 if [ ! -d "$wdir" ]; then
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
122 mkdir $wdir #make working directory
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
123 fi
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
124 if [ ! -d "$out" ]; then
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
125 mkdir $out #make working directory
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
126 fi
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
127 mkdir $wdir/bkgd.$ran/ #directory to store background files
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
128 mkdir $wdir/sizes.$ran/ #chromosomes and sizes
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
129 mkdir $wdir/samples.$ran/ #store sample files
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
130
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
131 dupnum=$(ls -1 $sdir | wc -l) #count how many sample files
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
132
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
133
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
134 #separate chromosome sizes
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
135 printf "Loading genome size file..."
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
136 ext="$wdir/sizes.$ran/"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
137 awk -v ext="$ext" '{ print >> ext"/size." $1 ".bed" }' $gsize
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
138 printf "Done!\n"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
139
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
140
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
141 printf "Processing sample files..."
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
142 #load each chromosome from each sample file
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
143 for i in $sdir/*.bed; do
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
144 samplefile=$(basename $i)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
145 for f in $wdir/sizes.$ran/*; do
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
146 sizefile=$(basename $f)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
147 chr=$(echo $sizefile | awk -F"." '{print $2}' | awk -F"." '{print $1}');
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
148 awk -v chr="$chr" -v ext="$wdir/samples.$ran/" -v samplefile="$samplefile" -F"\t" '$1 == chr { print $2"\t"$6 >> ext"sample."chr"."samplefile }' "$i"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
149 done
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
150 done
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
151 printf "Done!\n"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
152
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
153
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
154 if [ ! -z $bdir ]; then
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
155 #concatenate all background files into one file
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
156 printf "Processing control files..."
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
157 cat $bdir/*.bed > $wdir/bkgd.$ran/ctrl.bed
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
158
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
159 for f in $wdir/sizes.$ran/*; do
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
160 sizefile=$(basename $f)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
161 chr=$(echo $sizefile | awk -F"." '{print $2}' | awk -F"." '{print $1}');
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
162 awk -v chr="$chr" -v ext="$wdir/bkgd.$ran/" -F"\t" '$1 == chr { print $2"\t"$6 >> ext"bkgd."chr".ctrl.bed" }' "$wdir/bkgd.$ran/ctrl.bed"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
163 done
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
164
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
165
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
166 printf "Done!\n"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
167 fi
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
168
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
169
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
170 #determine average read lengths
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
171 if [ $type == "single" ]; then
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
172 printf "Getting average read lengths..."
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
173 if [ ! -z $bdir ]; then
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
174 readC=$(awk '{a=$3-$2;print a;}' "$wdir/bkgd.$ran/ctrl.bed" | perl -lane '$a+=$_;END{print $a/$.}' | awk '{print int($1)}')
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
175 fi
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
176 readL=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
177 for s in $sdir/*.bed; do #and for each sample file
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
178 read=$(awk '{a=$3-$2;print a;}' "$s" | perl -lane '$a+=$_;END{print $a/$.}' | awk '{print int($1)}')
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
179 readL="$readL,$read"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
180 done
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
181 readL=${readL#","}
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
182 printf "Done!\n"
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
183 fi
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
184 #=======================> DONE!
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
185
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
186
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
187
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
188
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
189
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
190
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
191 # ===========================
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
192 # Step Three: Getting Signal
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
193 # ===========================
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
194 mkdir $wdir/signal.$ran/
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
195 mkdir $out/signal #store signal
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
196
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
197
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
198 printf "Generating Signal...(bin size: $signal)\n"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
199
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
200 if [ $type == "single" ]; then
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
201 counting=1;
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
202 for f in $wdir/sizes.$ran/*; do #for each chromosome
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
203 samplelist=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
204 frag=""
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
205 frag=$fraglen
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
206 k=1
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
207
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
208 sizefile=$(basename $f)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
209 chr=$(echo $sizefile | awk -F"." '{print $2}' | awk -F"." '{print $1}');
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
210 chrSize=$(cat $f | cut -f2);
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
211 printf "Chromosome $chr: "
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
212
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
213 #list of sample bed files and fragment lengths
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
214 for s in $wdir/samples.$ran/*.bed; do #and for each sample file
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
215 samplefile=$(basename $s)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
216 chr2=$(echo $samplefile | awk -F"." '{print $2}');
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
217 if [ $chr == $chr2 ] #belonging to this chromosome
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
218 then
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
219 samplelist="$samplelist,$wdir/samples.$ran/ext.$samplefile"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
220 samplename=$(echo $samplefile | awk -F"." '{ print $3 }')
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
221 samplefilename=$(echo $samplefile | cut -d'.' -f 3-)
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
222 shift=$(echo "$frag" | cut -f "$k" -d ",")
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
223 read=$(echo "$readL" | cut -f "$k" -d ",")
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
224 k=$(($k+1))
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
225 perl "$sPath/readshifter.pl" "$wdir/samples.$ran/$samplefile" $shift $read > "$wdir/samples.$ran/ext.$samplefile"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
226 fi
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
227 done
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
228
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
229 #control file
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
230 bkgdfile="None"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
231 if [ ! -z $bdir ]; then
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
232 l=$(($dupnum+1))
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
233 bshift=$(echo $frag | cut -f "$l" -d ",")
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
234 perl "$sPath/readshifter.pl" "$wdir/bkgd.$ran/bkgd.$chr.ctrl.bed" $bshift $readC > "$wdir/bkgd.$ran/ext.bkgd.$chr.ctrl.bed"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
235 bkgdfile="$wdir/bkgd.$ran/ext.bkgd.$chr.ctrl.bed"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
236 fi
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
237
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
238 #remove leading comma
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
239 samplelist=${samplelist#","}
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
240 frag=${frag#","}
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
241
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
242 #call the peak calling R script
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
243 Rscript "$sPath/signalmaker.r" -chromoS="$chrSize" -chromo="$chr" -bednames=$samplelist -frag=$frag -bkgd=$bkgdfile -out="$wdir/signal.$ran/" -sig="$signal" -regions="$regs" -p="$cores" -chrcount="$counting" -t="$type"
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
244 cat $wdir/signal.$ran/*.bedSignal | awk -F"\t" -v j=0 '$4 > j' > "$out/signal/$chr.bedGraph"
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
245 rm $wdir/signal.$ran/*.bedSignal
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
246 counting=$(($counting+1));
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
247 done
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
248 counting=1;
1
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
249 fi
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
250
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
251
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
252
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
253 if [ $type == "paired" ]; then
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
254 counting=1;
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
255 for f in $wdir/sizes.$ran/*; do #for each chromosome
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
256 samplelist=""
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
257
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
258 sizefile=$(basename $f)
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
259 chr=$(echo $sizefile | awk -F"." '{print $2}' | awk -F"." '{print $1}');
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
260 chrSize=$(cat $f | cut -f2);
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
261 printf "Chromosome $chr: "
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
262
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
263 #list of sample bed files and fragment lengths
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
264 for s in $wdir/samples.$ran/*.bed; do #and for each sample file
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
265 samplefile=$(basename $s)
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
266 chr2=$(echo $samplefile | awk -F"." '{print $2}');
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
267 if [ $chr == $chr2 ] #belonging to this chromosome
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
268 then
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
269 samplelist="$samplelist,$wdir/samples.$ran/$samplefile"
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
270 samplename=$(echo $samplefile | awk -F"." '{ print $3 }')
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
271 samplefilename=$(echo $samplefile | cut -d'.' -f 3-)
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
272 x="$sdir/$samplefilename"
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
273 fi
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
274 done
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
275
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
276 #control file
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
277 bkgdfile="None"
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
278 if [ ! -z $bdir ]; then
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
279 bkgdfile="$wdir/bkgd.$ran/bkgd.$chr.ctrl.bed"
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
280 fi
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
281
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
282 #remove leading comma
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
283 samplelist=${samplelist#","}
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
284 frag=${frag#","}
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
285
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
286 #call the peak calling R script
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
287 Rscript "$sPath/signalmaker.r" -chromoS="$chrSize" -chromo="$chr" -bednames=$samplelist -frag=$frag -bkgd=$bkgdfile -out="$wdir/signal.$ran/" -sig="$signal" -regions="$regs" -p="$cores" -chrcount="$counting" -t="$type"
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
288 cat $wdir/signal.$ran/*.bedSignal | awk -F"\t" -v j=0 '$4 > j' > "$out/signal/$chr.bedGraph"
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
289 rm $wdir/signal.$ran/*.bedSignal
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
290 counting=$(($counting+1));
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
291 done
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
292 counting=1;
243f75d0ed6e Uploaded.
messersc
parents: 0
diff changeset
293 fi
0
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
294 #=======================> DONE!
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
295
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
296 rm -rf $wdir
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
297
d42f4d78c85e Uploaded
messersc
parents:
diff changeset
298 printf "\n\n========================================\nWe're done...Congratulations!\n========================================\n\n"