def _get_objanno(fin_anno, anno_type=None, **kws): """Get association object""" full_anno = os.path.join(REPO, fin_anno) dnld_annofile(full_anno, anno_type) obj = get_objanno(full_anno, anno_type, **kws) if obj.name in {'gene2go', 'gaf'} or 'godag' in kws: assert hasattr(obj.associations[0], 'NS') # Check namespaces, if provided by the user if 'namespaces' in kws: _chk_namespaces(obj, kws['namespaces']) return obj
def test_anno_read(): """Test reading annotation file.""" fin_anno = os.path.join(REPO, 'goa_human.gaf') dnld_annofile(fin_anno, 'gaf') print('\nTEST STORING ONLY ONE SPECIES') obj = GafReader(fin_anno) obj.prt_summary_anno2ev() ## new = obj.read_gaf() new = obj.get_id2gos_nss() old = read_gaf(obj) _prt_differences(new, old, obj) print('{N} NEW'.format(N=len(new))) print('{N} OLD'.format(N=len(old))) assert len(new) == len(old), 'new({N}) != old({O})'.format(N=len(new), O=len(old)) print('\nTEST KWS: keep_ND and keep_NOT') # pylint: disable=bad-whitespace kws_lst = [ {'keep_ND': False, 'keep_NOT': False}, {'keep_ND': False, 'keep_NOT': True}, {'keep_ND': True, 'keep_NOT': False}, {'keep_ND': True, 'keep_NOT': True}, ] for kws in kws_lst: print('\nTEST KWS:', kws) ## new = obj.read_gaf(namespace='BP', **kws) new = obj.get_id2gos_nss(**kws) old = read_gaf(obj, **kws) _prt_differences(new, old, obj) assert len(new) == len(old), 'new({N}) != old({O})'.format(N=len(new), O=len(old)) print('\nTEST GETTING REVERSE ASSOCIATIONS: GO2GENES') ## new = obj.read_gaf(go2geneids=True) new = obj.get_id2gos_nss(go2geneids=True) old = read_gaf(obj, go2geneids=True) _prt_differences(new, old, obj) assert len(new) == len(old), 'new({N}) != old({O})'.format(N=len(new), O=len(old)) print('\nTEST RETURNING ASSOCIATIONS FOR SELECTED EVIDENCE CODES') evcodes = set(['ISO', 'IKR']) print("\nTEST 9606 ev_include={CODES}".format(CODES=' '.join(evcodes))) ## new = obj.read_gaf(ev_include=evcodes) new = obj.get_id2gos_nss(ev_include=evcodes) old = read_gaf(obj, ev_include=evcodes) _prt_differences(new, old, obj) assert new == old
def test_i148_semsim_lin(prt=sys.stdout): """Test for issue 148, Lin Similarity if a term has no annotations""" fin_gpad = os.path.join(REPO, 'goa_human.gpad') dnld_annofile(fin_gpad, 'gpad') godag = get_godag(os.path.join(REPO, "go-basic.obo"), loading_bar=None) annoobj = GpadReader(fin_gpad, godag=godag) goids = [ 'GO:0042581', 'GO:0101002', 'GO:0042582', 'GO:0070820', 'GO:0008021', 'GO:0005766', 'GO:0016591' ] associations = annoobj.get_id2gos('CC') termcounts = TermCounts(godag, associations) # Calculate Lin values p2v = { frozenset([a, b]): lin_sim(a, b, godag, termcounts) for a, b in combo_w_rplc(goids, 2) } _prt_values(goids, p2v, prt=sys.stdout)
def _get_objanno(fin_anno, anno_type=None, **kws): """Get association object""" full_anno = os.path.join(REPO, fin_anno) dnld_annofile(full_anno, anno_type) obj = get_objanno(full_anno, anno_type, **kws) return obj
def test_anno_read(): """Test reading annotation file.""" fin_anno = os.path.join(REPO, 'goa_human.gaf') dnld_annofile(fin_anno, 'gaf') print('\nTEST STORING ONLY ONE SPECIES') obj = GafReader(fin_anno) obj.prt_summary_anno2ev() ## new = obj.read_gaf() new = obj.get_id2gos_nss() old = read_gaf(obj) _prt_differences(new, old, obj) print('{N} NEW'.format(N=len(new))) print('{N} OLD'.format(N=len(old))) assert len(new) == len(old), 'new({N}) != old({O})'.format(N=len(new), O=len(old)) print('\nTEST KWS: keep_ND and keep_NOT') # pylint: disable=bad-whitespace kws_lst = [ { 'keep_ND': False, 'keep_NOT': False }, { 'keep_ND': False, 'keep_NOT': True }, { 'keep_ND': True, 'keep_NOT': False }, { 'keep_ND': True, 'keep_NOT': True }, ] for kws in kws_lst: print('\nTEST KWS:', kws) ## new = obj.read_gaf(namespace='BP', **kws) new = obj.get_id2gos_nss(**kws) old = read_gaf(obj, **kws) _prt_differences(new, old, obj) assert len(new) == len(old), 'new({N}) != old({O})'.format(N=len(new), O=len(old)) print('\nTEST GETTING REVERSE ASSOCIATIONS: GO2GENES') ## new = obj.read_gaf(go2geneids=True) new = obj.get_id2gos_nss(go2geneids=True) old = read_gaf(obj, go2geneids=True) _prt_differences(new, old, obj) assert len(new) == len(old), 'new({N}) != old({O})'.format(N=len(new), O=len(old)) print('\nTEST RETURNING ASSOCIATIONS FOR SELECTED EVIDENCE CODES') evcodes = set(['ISO', 'IKR']) print("\nTEST 9606 ev_include={CODES}".format(CODES=' '.join(evcodes))) ## new = obj.read_gaf(ev_include=evcodes) new = obj.get_id2gos_nss(ev_include=evcodes) old = read_gaf(obj, ev_include=evcodes) _prt_differences(new, old, obj) assert new == old
def get_objanno(fin_anno, anno_type=None, **kws): """Get association object""" full_anno = os.path.join(REPO, fin_anno) dnld_annofile(full_anno, anno_type) obj = get_objanno(full_anno, anno_type, **kws) return obj