-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsegment_bedgraph.sh
More file actions
58 lines (53 loc) · 1.27 KB
/
segment_bedgraph.sh
File metadata and controls
58 lines (53 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
INBG=$1 # input bedgraph
cat ${INBG} | \
awk 'BEGIN{OFS="\t"; chr="";minHeight=10; minRun=14; minFoldChange=2}
{
val = $4;
if (chr!=$1 || ($2>prev_end))
{
if (inPeak==1)
{
b = prev_end;
if ((b-a+1) >= minRun)
print chr, a, b;
}
inPeak=-1;
chr = $1;
}
fc = 1;
if (val_prev>0)
fc = val/val_prev;
if ( (val < minHeight) || (fc <= 1/minFoldChange))
#if ( val < minHeight )
{
if (inPeak==1)
{
b= prev_end; #$2;
if ((b-a+1) >= minRun)
print chr,a,b
}
inPeak = -1;
prev_end = $3;
val_prev = $4;
next;
}
if (val >= minHeight)
{
if (inPeak<0)
{
# fold-change
fc = minFoldChange;
if (val_prev > 0)
fc = val/val_prev;
if (fc >= minFoldChange)
{
a=$2;
inPeak = 1;
}
#a=$2;
}
#inPeak = 1;
}
prev_end = $3;
val_prev = $4;
}'