def test_get_lowerselect(prt=sys.stdout): """Test getting parents and user-specfied ancestor relationships""" # Load GO-DAG repo = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..") godag = get_godag(os.path.join(repo, 'go-basic.obo'), optional_attrs='relationship') run = RelationshipCombos(godag) run.chk_relationships_all() rels_combo = run.get_relationship_combos() print('{N} COMBINATIONS OF RELATIONSHIPS'.format(N=len(rels_combo))) for relidx, rels_set in enumerate(rels_combo, 1): print('{I}) RELATIONSHIPS[{N}]: {Rs}'.format( I=relidx, N=len(rels_set), Rs=' '.join(sorted(rels_set)))) # ------------------------------------------------------------------------ # Get all parents for all GO IDs using get_all_parents in GOTerm class tic = timeit.default_timer() # pylint: disable=line-too-long go2lowerselect_orig = {o.item_id:get_all_lowerselect(o, rels_set) for o in run.go2obj.values()} tic = prt_hms(tic, "Get all goobj's parents using get_all_lowerselect(GOTerm)", prt) # ------------------------------------------------------------------------ # Get all parents for all GO IDs using GOTerm get_all_parents go2lowerselect_fast = get_id2lowerselect(run.go2obj.values(), rels_set) tic = prt_hms(tic, "Get all goobj's parents using go_tasks::get_id2lowerselect", prt) # ------------------------------------------------------------------------ # Compare parent lists chkr = CheckGOs('test_get_lower_select', godag) chkr.chk_a2bset(go2lowerselect_orig, go2lowerselect_fast) # EXPECTED, ACTUAL print("PASSED: get_lowerselect RELATIONSHIPS[{N}]: {Rs}".format( N=len(rels_set), Rs=' '.join(sorted(rels_set))))
def test_get_children(prt=sys.stdout): """Semantic Similarity test for Issue #86.""" # Load GO-DAG fin_obo = "go-basic.obo" repo = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..") godag = get_godag(os.path.join(repo, fin_obo)) go2obj = {go: o for go, o in godag.items() if go == o.id} # Get all children for all GO IDs using get_all_children in GOTerm class tic = timeit.default_timer() go2children_orig = {} go2children_empty = set() for goobj in go2obj.values(): children = goobj.get_all_children() if children: go2children_orig[goobj.id] = children else: go2children_empty.add(goobj.id) tic = prt_hms(tic, "Get all goobj's children using GOTerm.get_all_children()", prt) # Get all children for all GO IDs using GOTerm get_all_children go2children_fast = get_id2children(go2obj.values()) prt_hms(tic, "Get all goobj's children using go_tasks::get_id2children", prt) # Compare children lists CheckGOs('test_get_children', go2obj).chk_a2bset(go2children_orig, go2children_fast)
def test_get_parent(prt=sys.stdout): """Semantic Similarity test for Issue #86.""" # Load GO-DAG fin_obo = "go-basic.obo" repo = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..") godag = get_godag(os.path.join(repo, fin_obo)) go2obj = {go: o for go, o in godag.items() if go == o.id} # ------------------------------------------------------------------------ # Get all parents for all GO IDs using get_all_parents in GOTerm class tic = timeit.default_timer() go2parents_orig = {} ## go_noparents = set() for goterm in go2obj.values(): parents = goterm.get_all_parents() #if parents: go2parents_orig[goterm.id] = parents #else: # go_noparents.add(goterm.id) tic = prt_hms(tic, "Get all goobj's parents using GOTerm.get_all_parents()", prt) # ------------------------------------------------------------------------ # Get all parents for all GO IDs using GOTerm get_all_parents go2parents_fast = get_id2parents(go2obj.values()) tic = prt_hms(tic, "Get all goobj's parents using go_tasks::get_id2parents", prt) # ------------------------------------------------------------------------ go2parents_fast2 = get_id2parents2(go2obj.values()) tic = prt_hms(tic, "Get all goobj's parents using go_tasks::get_id2parents2", prt) # ------------------------------------------------------------------------ # Compare parent lists chkr = CheckGOs('test_get_parents', go2obj) chkr.chk_a2bset_equiv(go2parents_orig, go2parents_fast) chkr.chk_a2bset_equiv(go2parents_orig, go2parents_fast2) print("PASSED: get_parent test")