-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCalcSkew.py
39 lines (29 loc) · 889 Bytes
/
CalcSkew.py
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
__author__ = 'Cullin'
def calc_skew(genome,length):
current_skew = 0
# Initialize first index with 0 for some reason
skew_list = [0]
for i in range(0,length):
if genome[i] is 'G':
current_skew += 1
elif genome[i] is 'C':
current_skew -=1
skew_list.append(current_skew)
return skew_list
def calc_min_skew(genome,length):
min_val = 0
min_indices = []
skews = calc_skew(genome,length)
for i in range(0,length):
if skews[i] < min_val:
min_val = skews[i]
min_indices = [i]
elif skews[i] == min_val:
min_indices.append(i)
return (min_val,min_indices)
text = 'GATACACTTCCCGAGTAGGTACTG'
print calc_min_skew(text,len(text))
# result = calc_skew(text,len(text))
# print len(result)
# print(result)
#0 -1 -1 -1 0 1 2 1 1 1 0 1 2 1 0 0 0 0 -1 0 -1 -2