-
Notifications
You must be signed in to change notification settings - Fork 0
/
00.LPY_Chrom.py
61 lines (58 loc) · 1.63 KB
/
00.LPY_Chrom.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
"""
fill the Chrom1,...Chrom15
Use: in the Linux
for i in {2..15};do python 00.LPY_Chrom.py $i > $i;done
sh combind.sh
"""
import sys
import os,re
def main(file,col):
chrom = {}
with open(file,"r") as f:
for line in f:
content = line.strip().split()
if content[0] not in chrom:
chrom[content[0]] = [content[int(col)]]
else:
chrom[content[0]].append(content[int(col)])
return chrom
def deal():
chrom = main(file,col)
for key,value in chrom.items():
if value.count("NA") == len(value):
for v in value:
print(key,str(v))
continue
if "1" not in value:
for i in range(len(value)-1):
if value[i] == "NA":
value[i] = 0
else:
continue
if "0" not in value:
for i in range(len(value)-1):
if value[i] == "NA":
value[i] = 1
else:
continue
if "1" in value:
n = 0
for i in range(len(value)-1):
if value[i] == "NA":
indexna = value.index("NA",n)
index1 = value.index("1")
if indexna < index1:
value[i] = 0
else:
value[i] = 1
n += 1
else:
continue
#print(key,value)
for v in value:
print(key,str(v))
if __name__ == "__main__":
file = "be1.csv"
col = sys.argv[1]
deal()