def test_gaf_2_1_creates_cell_component_closure(): ontology = OntologyFactory().create("tests/resources/goslim_generic.json") closure = gafparser.protein_complex_sublcass_closure(ontology) # "GO:1902494" as an example that should be in the set assert "GO:0005840" in closure p = GafParser(config=assocparser.AssocParserConfig(ontology=ontology)) with open("tests/resources/pombase_single.gaf") as gaf: # First line will be version declaration, triggering closure computation p.parse_line(gaf.readline()) assert "GO:0005840" in p.cell_component_descendants_closure
def test_bad_date(): p = GafParser() assoc_result = p.parse_line( "PomBase\tSPAC25B8.17\typf1\t\tGO:0000007\tGO_REF:0000024\tISO\tSGD:S000001583\tC\tintramembrane aspartyl protease of the perinuclear ER membrane Ypf1 (predicted)\tppp81\tprotein\ttaxon:4896\tTODAY\tPomBase\tfoo(X:1)" ) assert assoc_result.skipped == True assert assoc_result.associations == []
def test_one_line(): p = GafParser(config=assocparser.AssocParserConfig( ontology=OntologyFactory().create( "tests/resources/goslim_generic.json"))) parsed = p.parse_line( "PomBase SPBC16D10.09 pcn1 GO:0009536 PMID:8663159 IDA C PCNA pcn protein taxon:4896 20150326 PomBase" )
def test_subject_extensions(): p = GafParser() assoc_result = p.parse_line("PomBase\tSPAC25B8.17\typf1\t\tGO:0000007\tGO_REF:0000024\tISO\tSGD:S000001583\tC\tintramembrane aspartyl protease of the perinuclear ER membrane Ypf1 (predicted)\tppp81\tprotein\ttaxon:4896\t20181024\tPomBase\tfoo(X:1)\tUniProtKB:P12345") print(json.dumps(assoc_result.associations[0], indent=4)) assert "subject_extensions" in assoc_result.associations[0] subject_extensions = assoc_result.associations[0]['subject_extensions'] gene_product_form_id = [extension["filler"] for extension in subject_extensions if extension["property"] == "isoform"][0] assert gene_product_form_id == "UniProtKB:P12345"
def test_subject_extensions(): p = GafParser() assoc_result = p.parse_line("PomBase\tSPAC25B8.17\typf1\t\tGO:0000007\tGO_REF:0000024\tISO\tSGD:S000001583\tC\tintramembrane aspartyl protease of the perinuclear ER membrane Ypf1 (predicted)\tppp81\tprotein\ttaxon:4896\t20181024\tPomBase\tpart_of(X:1)\tUniProtKB:P12345") assert len(assoc_result.associations[0].subject_extensions) == 1 subject_extensions = assoc_result.associations[0].subject_extensions gene_product_form_id = subject_extensions[0].term assert gene_product_form_id == association.Curie.from_str("UniProtKB:P12345")
def test_bad_withfrom(): p = GafParser() # With/from has no identity portion after the namespace assoc_result = p.parse_line( "PomBase\tSPAC25B8.17\typf1\t\tGO:0000007\tGO_REF:0000024\tISO\tSGD:\tC\tintramembrane aspartyl protease of the perinuclear ER membrane Ypf1 (predicted)\tppp81\tprotein\ttaxon:4896\t20181024\tPomBase" ) assert assoc_result.associations == [] assert p.report.to_report_json( )["messages"]["gorule-0000001"][0]["obj"] == "SGD:"
def test_object_extensions(): p = GafParser() assoc_result = p.parse_line("PomBase\tSPAC25B8.17\typf1\t\tGO:0000007\tGO_REF:0000024\tISO\tSGD:S000001583\tC\tintramembrane aspartyl protease of the perinuclear ER membrane Ypf1 (predicted)\tppp81\tprotein\ttaxon:4896\t20181024\tPomBase\tpart_of(X:1)\tUniProtKB:P12345") print(p.report.to_markdown()) assert len(assoc_result.associations[0].object_extensions) > 0 object_extensions = [ association.ConjunctiveSet([ association.ExtensionUnit(association.Curie("BFO", "0000050"), association.Curie("X", "1")) ]) ] assert assoc_result.associations[0].object_extensions == object_extensions
def test_subject_extensions_bad_curie(): """ Offending field is `GDP_bound` """ p = GafParser() assoc_result = p.parse_line("PomBase\tSPBC1289.03c\tspi1\t\tGO:0005515\tPMID:18422602\tIPI\tPomBase:SPAC25A8.01c\tF\tRan GTPase Spi1\t\tprotein\ttaxon:4896\t20080718\tPomBase\t\tGDP_bound") assert assoc_result.associations == [] assert assoc_result.skipped == True assert len(p.report.to_report_json()["messages"]["gorule-0000001"]) == 1 assert p.report.to_report_json()["messages"]["gorule-0000001"][0]["type"] == p.report.INVALID_ID assert p.report.to_report_json()["messages"]["gorule-0000001"][0]["obj"] == "GDP_bound" print(json.dumps(p.report.to_report_json(), indent=4))
def test_object_extensions(): p = GafParser() assoc_result = p.parse_line( "PomBase\tSPAC25B8.17\typf1\t\tGO:0000007\tGO_REF:0000024\tISO\tSGD:S000001583\tC\tintramembrane aspartyl protease of the perinuclear ER membrane Ypf1 (predicted)\tppp81\tprotein\ttaxon:4896\t20181024\tPomBase\tfoo(X:1)\tUniProtKB:P12345" ) assert "object_extensions" in assoc_result.associations[0] object_extensions = { "union_of": [{ "intersection_of": [{ "property": "foo", "filler": "X:1" }] }] } assert assoc_result.associations[0][ 'object_extensions'] == object_extensions
def test_obsolete_replair_of_withfrom(): p = GafParser(config=assocparser.AssocParserConfig( ontology=OntologyFactory().create(OBSOLETE_ONT))) assocs = p.parse(open(ZFIN_GAF, "r"), skipheader=True) assert assocs[0].evidence.with_support_from == [ ConjunctiveSet(elements=[Curie(namespace='GO', identity='0005912')]) ] # Reset parser report p = GafParser(config=assocparser.AssocParserConfig( ontology=OntologyFactory().create(OBSOLETE_ONT))) p.version = "2.2" obsolete_no_replacement_line = "FB\tFBgn0003334\tScm\tlocated_in\tGO:0005634\tFB:FBrf0179383|PMID:15280237\tIC\tGO:0016458\tC\tSex comb on midleg\tCG9495|SCM|Sex Comb on Midleg|Sex Comb on the Midleg|Sex combs on midleg|Sex combs on midlegs|Su(z)302|l(3)85Ef|scm|sex comb on midleg\tprotein\ttaxon:7227\t20050203\tUniProt\t\t" assoc_result = p.parse_line(obsolete_no_replacement_line) assert assoc_result.associations == [] assert p.report.to_report_json( )["messages"]["gorule-0000020"][0]["obj"] == "GO:0016458"
def test_object_extensions_error(): p = GafParser() assoc_result = p.parse_line( "PomBase\tSPAC25B8.17\typf1\t\tGO:0000007\tGO_REF:0000024\tISO\tSGD:S000001583\tC\tintramembrane aspartyl protease of the perinuclear ER membrane Ypf1 (predicted)\tppp81\tprotein\ttaxon:4896\t20181024\tPomBase\tpart_of(X)\tUniProtKB:P12345" ) assert len(p.report.to_report_json()["messages"]["gorule-0000001"]) == 1