-
Notifications
You must be signed in to change notification settings - Fork 1
/
common_names.py
85 lines (50 loc) · 1.17 KB
/
common_names.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env python
import sys
f=open(sys.argv[1],'r')
h=open(sys.argv[2],'r')
g=open(sys.argv[3],'w')
data={}
genera=[]
print "loading names db"
c=0
for i in h:
c=c+1
#i=i.replace('"','')
#i=i.replace(";","\t")
k= i.split("\t")
genus=k[2].split(" ")[0]
try:
spp=k[2].split(" ")[1]
except:
spp="no species name"
common=k[1]
if genus not in data.keys():
data[genus]={}
if spp not in data[genus].keys():
data[genus][spp]=[]
data[genus][spp].append(common)
else:
data[genus][spp].append(common)
else:
if spp not in data[genus].keys():
data[genus][spp]=[]
data[genus][spp].append(common)
else:
data[genus][spp].append(common)
print "searching"
for i in f:
k= i.split("\t")
qgenus=k[0].split(" ")[0]
try:
qspp=k[0].split(" ")[1].rstrip("\n")
except:
qspp="no species"
try:
ans = qgenus+" "+qspp+";"+";".join(str(p) for p in data[qgenus][qspp])+"\n"
except:
if qgenus in data.keys():
if qspp not in data[qgenus]:
ans = qgenus+" "+qspp+"\t;no spp found"+";"+";".join(str(p) for p in data[qgenus])+"\n"
else:
ans = ans = qgenus+" "+qspp+"\tno genus found"+"\n"
g.write(ans)