|
1
|
|
|
#!/usr/bin/env python |
|
2
|
|
|
"""Ensure that alternate GO IDs are in the go-basic.obo DAG go2obj dictionary.""" |
|
3
|
|
|
|
|
4
|
|
|
from goatools.base import get_godag |
|
5
|
|
|
from goatools.gosubdag.gosubdag import GoSubDag |
|
6
|
|
|
from goatools.grouper.grprdflts import GrouperDflts |
|
7
|
|
|
from goatools.grouper.hdrgos import HdrgosSections |
|
8
|
|
|
from goatools.grouper.grprobj import Grouper |
|
9
|
|
|
|
|
10
|
|
|
def test_alt_id(): |
|
11
|
|
|
"""Ensure that alternate GO IDs.""" |
|
12
|
|
|
obo_dag = get_godag("go-basic.obo") |
|
13
|
|
|
# Create/Initialize GoSubDag |
|
14
|
|
|
goids = _get_data0() |
|
15
|
|
|
gosubdag = GoSubDag(obo_dag.keys(), obo_dag) |
|
16
|
|
|
grprdflt = GrouperDflts(gosubdag) |
|
17
|
|
|
# Create/Initialize Grouper |
|
18
|
|
|
hdrobj = HdrgosSections(grprdflt.gosubdag, grprdflt.hdrgos_dflt, sections=None, hdrgos=None) |
|
19
|
|
|
Grouper("test_altid_gosubdag", goids, hdrobj, grprdflt.gosubdag, go2nt=None) |
|
20
|
|
|
alt_ids = _get_altids(obo_dag) |
|
21
|
|
|
obo_goids = obo_dag.keys() |
|
22
|
|
|
obo_goids_set = set(obo_goids) |
|
23
|
|
|
assert len(alt_ids.intersection(obo_goids_set)) == len(alt_ids) |
|
24
|
|
|
|
|
25
|
|
|
def _get_altids(obo_dag): |
|
26
|
|
|
"""Get all alternate GO ids.""" |
|
27
|
|
|
alt_ids_all = set() |
|
28
|
|
|
for goobj in obo_dag.values(): |
|
29
|
|
|
alt_ids_cur = goobj.alt_ids |
|
30
|
|
|
if alt_ids_cur: |
|
31
|
|
|
alt_ids_all |= set(alt_ids_cur) |
|
32
|
|
|
return alt_ids_all |
|
33
|
|
|
|
|
34
|
|
|
def _get_data0(): |
|
35
|
|
|
"""Nature GO ids. 196 unique GO IDs. 228 printed.""" |
|
36
|
|
|
return [ |
|
37
|
|
|
"GO:0007049", "GO:0022402", "GO:0022403", "GO:0000279", "GO:0006259", |
|
38
|
|
|
"GO:0000278", "GO:0051301", "GO:0000087", "GO:0007067", "GO:0000280", |
|
39
|
|
|
"GO:0048285", "GO:0006996", "GO:0006260", "GO:0006974", "GO:0033554", |
|
40
|
|
|
"GO:0006281", "GO:0016043", "GO:0051716", "GO:0009987", "GO:0006323", |
|
41
|
|
|
"GO:0051276", "GO:0007059", "GO:0006139", "GO:0065004", "GO:0051726", |
|
42
|
|
|
"GO:0007017", "GO:0031497", "GO:0034728", "GO:0006950", "GO:0034641", |
|
43
|
|
|
"GO:0006334", "GO:0006333", "GO:0034621", "GO:0006807", "GO:0006261", |
|
44
|
|
|
"GO:0007126", "GO:0051327", "GO:0051321", "GO:0034622", "GO:0044260", |
|
45
|
|
|
"GO:0043933", "GO:0000226", "GO:0042770", "GO:0000075", "GO:0006270", |
|
46
|
|
|
"GO:0065003", "GO:0006310", "GO:0010564", "GO:0022607", "GO:0006325", |
|
47
|
|
|
"GO:0043170", "GO:0008629", "GO:0007346", "GO:0044085", "GO:0008630", |
|
48
|
|
|
"GO:0051052", "GO:0050896", "GO:0031570", "GO:0051053", "GO:0007018", |
|
49
|
|
|
"GO:0007051", "GO:0007093", "GO:0006275", "GO:0009411", "GO:0034645", |
|
50
|
|
|
"GO:0000910", "GO:0009059", "GO:0044237", "GO:0010212", "GO:0000077", |
|
51
|
|
|
"GO:0030261", "GO:0009615", "GO:0002376", "GO:0006955", "GO:0006952", |
|
52
|
|
|
"GO:0002682", "GO:0050896", "GO:0048518", "GO:0048002", "GO:0050776", |
|
53
|
|
|
"GO:0009605", "GO:0048583", "GO:0050778", "GO:0051707", "GO:0048584", |
|
54
|
|
|
"GO:0019882", "GO:0009607", "GO:0019884", "GO:0002684", "GO:0048522", |
|
55
|
|
|
"GO:0009611", "GO:0051704", "GO:0002252", "GO:0001819", "GO:0006954", |
|
56
|
|
|
"GO:0002478", "GO:0002474", "GO:0030029", "GO:0006950", "GO:0030036", |
|
57
|
|
|
"GO:0007155", "GO:0022610", "GO:0048856", "GO:0050793", "GO:0048731", |
|
58
|
|
|
"GO:0048518", "GO:0006629", "GO:0007275", "GO:0032502", "GO:0051239", |
|
59
|
|
|
"GO:0048513", "GO:0048522", "GO:0044255", "GO:0048869", "GO:0009611", |
|
60
|
|
|
"GO:0031589", "GO:0009605", "GO:0010646", "GO:0002376", "GO:0043436", |
|
61
|
|
|
"GO:0019752", "GO:0006082", "GO:0032787", "GO:0042127", "GO:0009987", |
|
62
|
|
|
"GO:0030154", "GO:0042180", "GO:0001944", "GO:0065008", "GO:0006631", |
|
63
|
|
|
"GO:0009966", "GO:0048583", "GO:0002682", "GO:0001568", "GO:0009653", |
|
64
|
|
|
"GO:0007399", "GO:0007160", "GO:0045321", "GO:0001775", "GO:0080134", |
|
65
|
|
|
"GO:0051093", "GO:0048519", "GO:0030155", "GO:0007167", "GO:0042221", |
|
66
|
|
|
"GO:0045595", "GO:0048514", "GO:0042060", "GO:0030029", "GO:0048523", |
|
67
|
|
|
"GO:0002684", "GO:0051234", "GO:0006810", "GO:0051179", "GO:0007268", |
|
68
|
|
|
"GO:0019226", "GO:0051649", "GO:0051641", "GO:0009987", "GO:0007267", |
|
69
|
|
|
"GO:0006811", "GO:0007154", "GO:0007611", "GO:0015672", "GO:0006812", |
|
70
|
|
|
"GO:0006813", "GO:0046907", "GO:0006793", "GO:0006796", "GO:0030001", |
|
71
|
|
|
"GO:0006091", "GO:0007612", "GO:0015031", "GO:0043632", "GO:0019941", |
|
72
|
|
|
"GO:0045184", "GO:0045333", "GO:0031175", "GO:0048812", "GO:0044057", |
|
73
|
|
|
"GO:0048858", "GO:0007399", "GO:0007409", "GO:0030030", "GO:0010646", |
|
74
|
|
|
"GO:0032990", "GO:0006816", "GO:0048666", "GO:0051179", "GO:0048667", |
|
75
|
|
|
"GO:0048699", "GO:0030001", "GO:0006811", "GO:0022008", "GO:0050804", |
|
76
|
|
|
"GO:0009987", "GO:0006812", "GO:0000904", "GO:0031644", "GO:0006796", |
|
77
|
|
|
"GO:0006793", "GO:0051969", "GO:0030182", "GO:0016310", "GO:0015674", |
|
78
|
|
|
"GO:0007242", "GO:0006468", "GO:0006810", "GO:0051234", "GO:0007268", |
|
79
|
|
|
"GO:0000902", "GO:0019226", "GO:0051056", "GO:0043687", "GO:0032989", |
|
80
|
|
|
"GO:0006464", "GO:0016192", "GO:0016043", "GO:0007411", "GO:0043412", |
|
81
|
|
|
"GO:0007610", "GO:0007267", "GO:0009966", "GO:0048468", "GO:0007154", |
|
82
|
|
|
"GO:0048731", "GO:0006928", "GO:0015672"] |
|
83
|
|
|
|
|
84
|
|
|
if __name__ == '__main__': |
|
85
|
|
|
test_alt_id() |
|
86
|
|
|
|