Loading obsolete GO terms¶
Obsolete GO terms are loaded upon request.
Relevant GODag arguments include:
load_obsolete=True
optional_attrs={‘consider’, ‘replaced_by’}
1) Download GO DAG file, go-basic.obo¶
from goatools.base import download_go_basic_obo
fin_dag = download_go_basic_obo("go-basic.obo")
requests.get(http://purl.obolibrary.org/obo/go/go-basic.obo, stream=True)
WROTE: go-basic.obo
2) Read GO terms into a GODag instance: load_obsolete=True¶
from goatools.obo_parser import GODag
godag = GODag(fin_dag, load_obsolete=True)
go-basic.obo: fmt(1.2) rel(2020-09-10) 50,377 GO Terms
3) Load the optional GODag attributes, consider and replaced_by¶
godag = GODag(fin_dag, optional_attrs={'consider', 'replaced_by'}, load_obsolete=True)
go-basic.obo: fmt(1.2) rel(2020-09-10) 50,377 GO Terms; optional_attrs(consider replaced_by)
3a) How to suppress the GODag output messages¶
Set argument: prt=None.
godag = GODag(fin_dag, optional_attrs={'consider', 'replaced_by'}, load_obsolete=True, prt=None)
4) What GO term replaced the obsolete GO terms?¶
goterms_obsolete = set(o for o in godag.values() if o.is_obsolete)
print('{N:,} GO terms are obsolete'.format(N=len(goterms_obsolete)))
num = 1
for goterm in goterms_obsolete:
if goterm.replaced_by[:3] == 'GO:':
print('{I} {OLD} was replaced by {NEW}'.format(
I=num, OLD=goterm.item_id, NEW=goterm.replaced_by))
if num == 5:
break
num += 1
2,971 GO terms are obsolete
1 GO:0042142 was replaced by GO:0046911
2 GO:0006502 was replaced by GO:0018342
3 GO:0006503 was replaced by GO:0018343
4 GO:0006504 was replaced by GO:0018344
5 GO:0006510 was replaced by GO:0004176
5) What GO terms were considered?¶
num = 1
for goterm in goterms_obsolete:
if goterm.consider:
print('{I} Given {OLD}, consider {NEW}'.format(
I=num, OLD=goterm.item_id, NEW=goterm.consider))
if num == 5:
break
num += 1
1 Given GO:0006894, consider {'GO:0055107', 'GO:0055108'}
2 Given GO:0045757, consider {'GO:0030837', 'GO:0030835'}
3 Given GO:0052108, consider {'GO:0044117', 'GO:0044115'}
4 Given GO:0006815, consider {'GO:0006814', 'GO:0006813'}
5 Given GO:0006510, consider {'GO:0051603', 'GO:0016485', 'GO:0006508'}
Copyright (C) 2019-present, DV Klopfenstein and Haibao Tang. All rights reserved.