pyobo 0.10.5__tar.gz → 0.10.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobo-0.10.5/src/pyobo.egg-info → pyobo-0.10.7}/PKG-INFO +2 -2
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/conf.py +1 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/setup.cfg +2 -2
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/__init__.py +1 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/__init__.py +1 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/names.py +21 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/gilda_utils.py +54 -47
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/identifier_utils.py +1 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/obographs.py +12 -4
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/reader.py +17 -14
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/__init__.py +4 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/cgnc.py +2 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/chembl.py +2 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/complexportal.py +11 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/depmap.py +2 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/drugcentral.py +2 -1
- pyobo-0.10.7/src/pyobo/sources/geonames.py +239 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/hgnc.py +32 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/mgi.py +3 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/mirbase.py +2 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/mirbase_family.py +5 -2
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/npass.py +4 -2
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/pombase.py +1 -1
- pyobo-0.10.7/src/pyobo/sources/ror.py +163 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/sgd.py +2 -5
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/slm.py +6 -6
- pyobo-0.10.7/src/pyobo/sources/umls/get_synonym_types.py +36 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/umls/synonym_types.tsv +243 -242
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/umls/umls.py +3 -7
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/uniprot/uniprot.py +5 -5
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/zfin.py +2 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/struct/reference.py +17 -2
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/struct/struct.py +73 -19
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/struct/typedef.py +30 -7
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/version.py +1 -1
- {pyobo-0.10.5 → pyobo-0.10.7/src/pyobo.egg-info}/PKG-INFO +2 -2
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo.egg-info/SOURCES.txt +3 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo.egg-info/requires.txt +1 -1
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_get.py +18 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/.readthedocs.yml +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/LICENSE +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/MANIFEST.in +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/README.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.Canonicalizer.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.Obo.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.OboNormalizer.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.Reference.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.Synonym.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.SynonymTypeDef.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.Term.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.TypeDef.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.ensure_path.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.from_obo_path.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.from_obonet.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_alts_to_id.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_ancestors.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_children.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_definition.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_descendants.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_equivalent.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_properties_df.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_properties_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_properties_multimapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_relations_df.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_filtered_xrefs.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_graph.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_hierarchy.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_definition_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_multirelations_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_name_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_species_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_synonyms_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_id_to_alts.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_ids.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_name.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_name_by_curie.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_name_id_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_ontology.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_primary_curie.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_primary_identifier.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_priority_curie.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_properties.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_properties_df.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_property.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_relation.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_relation_mapping.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_relations_df.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_species.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_sssom_df.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_subhierarchy.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_synonyms.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_typedef_df.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_version.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_xref.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_xrefs.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.get_xrefs_df.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.ground.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.has_ancestor.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.has_nomenclature_plugin.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.has_xref_plugin.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.is_descendent.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.iter_nomenclature_plugins.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.iter_xref_plugins.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.normalize_curie.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.parse_results_from_obo.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.run_nomenclature_plugin.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/api/pyobo.run_xref_plugin.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/index.rst +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/docs/source/logo.png +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/pyproject.toml +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/__main__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/alts.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/hierarchy.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/metadata.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/properties.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/relations.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/species.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/typedefs.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/api/xrefs.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/cli.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/gilda/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/gilda/__main__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/gilda/app.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/gilda/cli.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/gilda/templates/base.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/gilda/templates/home.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/gilda/templates/matches.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/mapper/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/mapper/__main__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/mapper/cli.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/mapper/mapper.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/mapper/templates/base.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/apps/mapper/templates/mapper_home.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/aws.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/cli/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/cli/aws.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/cli/cli.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/cli/database.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/cli/lookup.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/cli/utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/constants.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/getters.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/mocks.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/normalizer.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/plugins.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/registries/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/registries/metaregistry.json +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/registries/metaregistry.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/resource_utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/resources/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/resources/ncbitaxon.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/resources/ncbitaxon.tsv.gz +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/resources/ro.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/resources/ro.tsv +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/agrovoc.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/antibodyregistry.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/biogrid.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/ccle.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/chebi.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/conso.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/cpt.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/cvx.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/dictybase_gene.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/drugbank.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/drugbank_salt.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/expasy.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/famplex.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/flybase.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/gmt_utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/go.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/gwascentral_phenotype.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/gwascentral_study.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/hgncgenefamily.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/icd10.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/icd11.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/icd_utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/interpro.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/itis.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/kegg/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/kegg/api.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/kegg/genes.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/kegg/genome.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/kegg/pathway.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/mesh.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/mirbase_constants.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/mirbase_mature.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/msigdb.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/ncbigene.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/pathbank.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/pfam.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/pfam_clan.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/pid.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/pubchem.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/reactome.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/rgd.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/rhea.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/selventa/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/selventa/schem.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/selventa/scomp.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/selventa/sdis.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/selventa/sfam.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/umls/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/umls/__main__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/uniprot/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/uniprot/uniprot_ptm.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/sources/wikipathways.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/ssg/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/ssg/base.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/ssg/index.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/ssg/term.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/ssg/typedef.html +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/struct/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/struct/utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/utils/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/utils/cache.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/utils/io.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/utils/iter.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/utils/misc.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/utils/ndex_utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/utils/path.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/canonicalizer.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/priority.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/biomappings.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/cbms2019.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/chembl.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/compath.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/famplex.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/gilda.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/intact.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/ncit.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/pubchem.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/sources/wikidata.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo/xrefdb/xrefs_pipeline.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo.egg-info/dependency_links.txt +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo.egg-info/entry_points.txt +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo.egg-info/not-zip-safe +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/src/pyobo.egg-info/top_level.txt +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/constants.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/resources/citations.txt +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/resources/test_chebi.obo +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/resources/test_msigdb.gmt +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/resources/test_wikipathways.gmt +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_alt_ids.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_caches.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_extract.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_get_miriam_url.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_gmt.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_ground.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_mapper.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_sources/__init__.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_sources/test_famplex.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_struct.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tests/test_utils.py +0 -0
- {pyobo-0.10.5 → pyobo-0.10.7}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyobo
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.7
|
|
4
4
|
Summary: Handling and writing OBO
|
|
5
5
|
Home-page: https://github.com/pyobo/pyobo
|
|
6
6
|
Download-URL: https://github.com/pyobo/pyobo/releases
|
|
@@ -49,7 +49,7 @@ Requires-Dist: class_resolver
|
|
|
49
49
|
Requires-Dist: psycopg2-binary
|
|
50
50
|
Requires-Dist: drugbank_downloader
|
|
51
51
|
Requires-Dist: chembl_downloader
|
|
52
|
-
Requires-Dist: umls_downloader
|
|
52
|
+
Requires-Dist: umls_downloader>=0.1.2
|
|
53
53
|
Requires-Dist: typing_extensions
|
|
54
54
|
Provides-Extra: tests
|
|
55
55
|
Requires-Dist: coverage; extra == "tests"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[metadata]
|
|
2
2
|
name = pyobo
|
|
3
|
-
version = 0.10.
|
|
3
|
+
version = 0.10.7
|
|
4
4
|
description = Handling and writing OBO
|
|
5
5
|
long_description = file: README.rst
|
|
6
6
|
url = https://github.com/pyobo/pyobo
|
|
@@ -56,7 +56,7 @@ install_requires =
|
|
|
56
56
|
psycopg2-binary
|
|
57
57
|
drugbank_downloader
|
|
58
58
|
chembl_downloader
|
|
59
|
-
umls_downloader
|
|
59
|
+
umls_downloader>=0.1.2
|
|
60
60
|
typing_extensions
|
|
61
61
|
zip_safe = false
|
|
62
62
|
include_package_data = True
|
|
@@ -24,6 +24,7 @@ __all__ = [
|
|
|
24
24
|
"get_id_definition_mapping",
|
|
25
25
|
"get_synonyms",
|
|
26
26
|
"get_id_synonyms_mapping",
|
|
27
|
+
"get_obsolete",
|
|
27
28
|
]
|
|
28
29
|
|
|
29
30
|
logger = logging.getLogger(__name__)
|
|
@@ -184,6 +185,26 @@ def get_id_definition_mapping(
|
|
|
184
185
|
return _get_mapping()
|
|
185
186
|
|
|
186
187
|
|
|
188
|
+
def get_obsolete(
|
|
189
|
+
prefix: str,
|
|
190
|
+
*,
|
|
191
|
+
force: bool = False,
|
|
192
|
+
strict: bool = False,
|
|
193
|
+
version: Optional[str] = None,
|
|
194
|
+
) -> Set[str]:
|
|
195
|
+
"""Get the set of obsolete local unique identifiers."""
|
|
196
|
+
if version is None:
|
|
197
|
+
version = get_version(prefix)
|
|
198
|
+
path = prefix_cache_join(prefix, name="obsolete.tsv", version=version)
|
|
199
|
+
|
|
200
|
+
@cached_collection(path=path, force=force)
|
|
201
|
+
def _get_obsolete() -> Set[str]:
|
|
202
|
+
ontology = get_ontology(prefix, force=force, strict=strict, version=version)
|
|
203
|
+
return ontology.get_obsolete()
|
|
204
|
+
|
|
205
|
+
return set(_get_obsolete())
|
|
206
|
+
|
|
207
|
+
|
|
187
208
|
@wrap_norm_prefix
|
|
188
209
|
def get_synonyms(prefix: str, identifier: str) -> Optional[List[str]]:
|
|
189
210
|
"""Get the synonyms for an entity."""
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
"""PyOBO's Gilda utilities."""
|
|
4
4
|
|
|
5
|
-
import itertools as itt
|
|
6
5
|
import logging
|
|
7
6
|
from typing import Iterable, List, Optional, Tuple, Type, Union
|
|
8
7
|
|
|
@@ -11,6 +10,7 @@ import gilda.api
|
|
|
11
10
|
import gilda.term
|
|
12
11
|
from gilda.grounder import Grounder
|
|
13
12
|
from gilda.process import normalize
|
|
13
|
+
from gilda.term import filter_out_duplicates
|
|
14
14
|
from tqdm.auto import tqdm
|
|
15
15
|
|
|
16
16
|
from pyobo import (
|
|
@@ -18,6 +18,7 @@ from pyobo import (
|
|
|
18
18
|
get_id_species_mapping,
|
|
19
19
|
get_id_synonyms_mapping,
|
|
20
20
|
get_ids,
|
|
21
|
+
get_obsolete,
|
|
21
22
|
)
|
|
22
23
|
from pyobo.getters import NoBuild
|
|
23
24
|
from pyobo.utils.io import multidict
|
|
@@ -31,32 +32,6 @@ __all__ = [
|
|
|
31
32
|
logger = logging.getLogger(__name__)
|
|
32
33
|
|
|
33
34
|
|
|
34
|
-
_STATUSES = {"curated": 1, "name": 2, "synonym": 3, "former_name": 4}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def filter_out_duplicates(terms: List[gilda.term.Term]) -> List[gilda.term.Term]:
|
|
38
|
-
"""Filter out duplicates."""
|
|
39
|
-
# TODO import from gilda.term import filter_out_duplicates when it gets moved,
|
|
40
|
-
# see https://github.com/indralab/gilda/pull/103
|
|
41
|
-
logger.debug("filtering %d terms for uniqueness", len(terms))
|
|
42
|
-
new_terms: List[gilda.term.Term] = [
|
|
43
|
-
min(terms_group, key=_status_key)
|
|
44
|
-
for _, terms_group in itt.groupby(sorted(terms, key=_term_key), key=_term_key)
|
|
45
|
-
]
|
|
46
|
-
# Re-sort the terms
|
|
47
|
-
new_terms = sorted(new_terms, key=lambda x: (x.text, x.db, x.id))
|
|
48
|
-
logger.debug("got %d unique terms.", len(new_terms))
|
|
49
|
-
return new_terms
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
def _status_key(term: gilda.term.Term) -> int:
|
|
53
|
-
return _STATUSES[term.status]
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
def _term_key(term: gilda.term.Term) -> Tuple[str, str, str]:
|
|
57
|
-
return term.db, term.id, term.text
|
|
58
|
-
|
|
59
|
-
|
|
60
35
|
def iter_gilda_prediction_tuples(
|
|
61
36
|
prefix: str,
|
|
62
37
|
relation: str = "skos:exactMatch",
|
|
@@ -115,10 +90,12 @@ def normalize_identifier(prefix: str, identifier: str) -> str:
|
|
|
115
90
|
|
|
116
91
|
def get_grounder(
|
|
117
92
|
prefixes: Union[str, Iterable[str]],
|
|
93
|
+
*,
|
|
118
94
|
unnamed: Optional[Iterable[str]] = None,
|
|
119
95
|
grounder_cls: Optional[Type[Grounder]] = None,
|
|
120
96
|
versions: Union[None, str, Iterable[Union[str, None]]] = None,
|
|
121
97
|
strict: bool = True,
|
|
98
|
+
skip_obsolete: bool = False,
|
|
122
99
|
) -> Grounder:
|
|
123
100
|
"""Get a Gilda grounder for the given prefix(es)."""
|
|
124
101
|
unnamed = set() if unnamed is None else set(unnamed)
|
|
@@ -140,7 +117,11 @@ def get_grounder(
|
|
|
140
117
|
try:
|
|
141
118
|
p_terms = list(
|
|
142
119
|
get_gilda_terms(
|
|
143
|
-
prefix,
|
|
120
|
+
prefix,
|
|
121
|
+
identifiers_are_names=prefix in unnamed,
|
|
122
|
+
version=version,
|
|
123
|
+
strict=strict,
|
|
124
|
+
skip_obsolete=skip_obsolete,
|
|
144
125
|
)
|
|
145
126
|
)
|
|
146
127
|
except NoBuild:
|
|
@@ -155,26 +136,50 @@ def get_grounder(
|
|
|
155
136
|
return grounder_cls(terms_dict)
|
|
156
137
|
|
|
157
138
|
|
|
139
|
+
def _fast_term(
|
|
140
|
+
*,
|
|
141
|
+
text: str,
|
|
142
|
+
prefix: str,
|
|
143
|
+
identifier: str,
|
|
144
|
+
name: str,
|
|
145
|
+
status: str,
|
|
146
|
+
organism: Optional[str] = None,
|
|
147
|
+
) -> gilda.term.Term:
|
|
148
|
+
return gilda.term.Term(
|
|
149
|
+
norm_text=normalize(text),
|
|
150
|
+
text=text,
|
|
151
|
+
db=prefix,
|
|
152
|
+
id=identifier,
|
|
153
|
+
entry_name=name,
|
|
154
|
+
status=status,
|
|
155
|
+
source=prefix,
|
|
156
|
+
organism=organism,
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
|
|
158
160
|
def get_gilda_terms(
|
|
159
161
|
prefix: str,
|
|
162
|
+
*,
|
|
160
163
|
identifiers_are_names: bool = False,
|
|
161
164
|
version: Optional[str] = None,
|
|
162
165
|
strict: bool = True,
|
|
166
|
+
skip_obsolete: bool = False,
|
|
163
167
|
) -> Iterable[gilda.term.Term]:
|
|
164
168
|
"""Get gilda terms for the given namespace."""
|
|
165
169
|
id_to_name = get_id_name_mapping(prefix, version=version, strict=strict)
|
|
166
170
|
id_to_species = get_id_species_mapping(prefix, version=version, strict=strict)
|
|
171
|
+
obsoletes = get_obsolete(prefix, version=version, strict=strict) if skip_obsolete else set()
|
|
167
172
|
|
|
168
173
|
it = tqdm(id_to_name.items(), desc=f"[{prefix}] mapping", unit_scale=True, unit="name")
|
|
169
174
|
for identifier, name in it:
|
|
170
|
-
|
|
171
|
-
|
|
175
|
+
if identifier in obsoletes:
|
|
176
|
+
continue
|
|
177
|
+
yield _fast_term(
|
|
172
178
|
text=name,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
179
|
+
prefix=prefix,
|
|
180
|
+
identifier=identifier,
|
|
181
|
+
name=name,
|
|
176
182
|
status="name",
|
|
177
|
-
source=prefix,
|
|
178
183
|
organism=id_to_species.get(identifier),
|
|
179
184
|
)
|
|
180
185
|
|
|
@@ -184,29 +189,31 @@ def get_gilda_terms(
|
|
|
184
189
|
id_to_synonyms.items(), desc=f"[{prefix}] mapping", unit_scale=True, unit="synonym"
|
|
185
190
|
)
|
|
186
191
|
for identifier, synonyms in it:
|
|
192
|
+
if identifier in obsoletes:
|
|
193
|
+
continue
|
|
187
194
|
name = id_to_name[identifier]
|
|
188
195
|
for synonym in synonyms:
|
|
189
|
-
|
|
190
|
-
|
|
196
|
+
if not synonym:
|
|
197
|
+
continue
|
|
198
|
+
yield _fast_term(
|
|
191
199
|
text=synonym,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
200
|
+
prefix=prefix,
|
|
201
|
+
identifier=identifier,
|
|
202
|
+
name=name,
|
|
195
203
|
status="synonym",
|
|
196
|
-
source=prefix,
|
|
197
204
|
organism=id_to_species.get(identifier),
|
|
198
205
|
)
|
|
199
206
|
|
|
200
207
|
if identifiers_are_names:
|
|
201
208
|
it = tqdm(get_ids(prefix), desc=f"[{prefix}] mapping", unit_scale=True, unit="id")
|
|
202
209
|
for identifier in it:
|
|
203
|
-
|
|
204
|
-
|
|
210
|
+
if identifier in obsoletes:
|
|
211
|
+
continue
|
|
212
|
+
yield _fast_term(
|
|
205
213
|
text=identifier,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
status="
|
|
210
|
-
source=prefix,
|
|
214
|
+
prefix=prefix,
|
|
215
|
+
identifier=identifier,
|
|
216
|
+
name=identifier,
|
|
217
|
+
status="name",
|
|
211
218
|
organism=id_to_species.get(identifier),
|
|
212
219
|
)
|
|
@@ -119,7 +119,7 @@ def wrap_norm_prefix(f):
|
|
|
119
119
|
|
|
120
120
|
def standardize_ec(ec: str) -> str:
|
|
121
121
|
"""Standardize an EC code identifier by removing all trailing dashes and dots."""
|
|
122
|
-
ec = ec.strip()
|
|
122
|
+
ec = ec.strip().replace(" ", "")
|
|
123
123
|
for _ in range(4):
|
|
124
124
|
ec = ec.rstrip("-").rstrip(".")
|
|
125
125
|
return ec
|
|
@@ -19,7 +19,7 @@ from bioontologies.obograph import (
|
|
|
19
19
|
from bioontologies.robot import ParseResults
|
|
20
20
|
|
|
21
21
|
from pyobo.struct import Obo, Reference, Term
|
|
22
|
-
from pyobo.struct.typedef import is_a
|
|
22
|
+
from pyobo.struct.typedef import definition_source, is_a
|
|
23
23
|
|
|
24
24
|
__all__ = [
|
|
25
25
|
"graph_from_obo",
|
|
@@ -61,12 +61,12 @@ def _rewire(r: Reference) -> curies.Reference:
|
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
def _get_class_node(term: Term) -> Node:
|
|
64
|
-
if
|
|
65
|
-
definition = None
|
|
66
|
-
else:
|
|
64
|
+
if term.definition or term.provenance:
|
|
67
65
|
definition = Definition.from_parsed(
|
|
68
66
|
value=term.definition, references=[_rewire(p) for p in term.provenance]
|
|
69
67
|
)
|
|
68
|
+
else:
|
|
69
|
+
definition = None
|
|
70
70
|
|
|
71
71
|
if term.xrefs:
|
|
72
72
|
if not term.xref_types:
|
|
@@ -126,3 +126,11 @@ def _iter_edges(term: Term) -> Iterable[Edge]:
|
|
|
126
126
|
_rewire(typedef.reference),
|
|
127
127
|
_rewire(target),
|
|
128
128
|
)
|
|
129
|
+
|
|
130
|
+
for provenance_reference in term.provenance:
|
|
131
|
+
yield Edge.from_parsed(
|
|
132
|
+
_rewire(term.reference),
|
|
133
|
+
_rewire(definition_source.reference),
|
|
134
|
+
_rewire(provenance_reference),
|
|
135
|
+
)
|
|
136
|
+
# TODO also look through xrefs and seealso to get provenance xrefs?
|
|
@@ -444,20 +444,23 @@ def _extract_synonym(
|
|
|
444
444
|
break
|
|
445
445
|
|
|
446
446
|
stype: Optional[SynonymTypeDef] = None
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
447
|
+
for _stype in synonym_typedefs.values():
|
|
448
|
+
# Since there aren't a lot of carefully defined synonym definitions, it
|
|
449
|
+
# can appear as a string or curie. Therefore, we might see temporary prefixes
|
|
450
|
+
# get added, so we should check against full curies as well as local unique
|
|
451
|
+
# identifiers
|
|
452
|
+
if rest.startswith(_stype.curie):
|
|
453
|
+
rest = rest[len(_stype.curie) :].strip()
|
|
454
|
+
stype = _stype
|
|
455
|
+
break
|
|
456
|
+
elif rest.startswith(_stype.preferred_curie):
|
|
457
|
+
rest = rest[len(_stype.preferred_curie) :].strip()
|
|
458
|
+
stype = _stype
|
|
459
|
+
break
|
|
460
|
+
elif rest.startswith(_stype.identifier):
|
|
461
|
+
rest = rest[len(_stype.identifier) :].strip()
|
|
462
|
+
stype = _stype
|
|
463
|
+
break
|
|
461
464
|
|
|
462
465
|
if not rest.startswith("[") or not rest.endswith("]"):
|
|
463
466
|
logger.warning("[%s:%s] problem with synonym: %s", prefix, identifier, s)
|
|
@@ -20,6 +20,7 @@ from .drugcentral import DrugCentralGetter
|
|
|
20
20
|
from .expasy import ExpasyGetter
|
|
21
21
|
from .famplex import FamPlexGetter
|
|
22
22
|
from .flybase import FlyBaseGetter
|
|
23
|
+
from .geonames import GeonamesGetter
|
|
23
24
|
from .gwascentral_phenotype import GWASCentralPhenotypeGetter
|
|
24
25
|
from .gwascentral_study import GWASCentralStudyGetter
|
|
25
26
|
from .hgnc import HGNCGetter
|
|
@@ -46,6 +47,7 @@ from .pubchem import PubChemCompoundGetter
|
|
|
46
47
|
from .reactome import ReactomeGetter
|
|
47
48
|
from .rgd import RGDGetter
|
|
48
49
|
from .rhea import RheaGetter
|
|
50
|
+
from .ror import RORGetter
|
|
49
51
|
from .selventa import SCHEMGetter, SCOMPGetter, SDISGetter, SFAMGetter
|
|
50
52
|
from .sgd import SGDGetter
|
|
51
53
|
from .slm import SLMGetter
|
|
@@ -74,6 +76,7 @@ __all__ = [
|
|
|
74
76
|
"FlyBaseGetter",
|
|
75
77
|
"GWASCentralPhenotypeGetter",
|
|
76
78
|
"GWASCentralStudyGetter",
|
|
79
|
+
"GeonamesGetter",
|
|
77
80
|
"HGNCGetter",
|
|
78
81
|
"HGNCGroupGetter",
|
|
79
82
|
"ICD10Getter",
|
|
@@ -98,6 +101,7 @@ __all__ = [
|
|
|
98
101
|
"PomBaseGetter",
|
|
99
102
|
"PubChemCompoundGetter",
|
|
100
103
|
"RGDGetter",
|
|
104
|
+
"RORGetter",
|
|
101
105
|
"ReactomeGetter",
|
|
102
106
|
"RheaGetter",
|
|
103
107
|
"SCHEMGetter",
|
|
@@ -8,6 +8,7 @@ from typing import Iterable
|
|
|
8
8
|
import pandas as pd
|
|
9
9
|
|
|
10
10
|
from pyobo.struct import Obo, Reference, Term, from_species
|
|
11
|
+
from pyobo.struct.typedef import exact_match
|
|
11
12
|
from pyobo.utils.path import ensure_df
|
|
12
13
|
|
|
13
14
|
__all__ = [
|
|
@@ -25,7 +26,7 @@ class CGNCGetter(Obo):
|
|
|
25
26
|
|
|
26
27
|
ontology = PREFIX
|
|
27
28
|
dynamic_version = True
|
|
28
|
-
typedefs = [from_species]
|
|
29
|
+
typedefs = [from_species, exact_match]
|
|
29
30
|
|
|
30
31
|
def iter_terms(self, force: bool = False) -> Iterable[Term]:
|
|
31
32
|
"""Iterate over terms in the ontology."""
|
|
@@ -12,7 +12,7 @@ from typing import Iterable
|
|
|
12
12
|
import chembl_downloader
|
|
13
13
|
|
|
14
14
|
from pyobo.struct import Obo, Reference, Term
|
|
15
|
-
from pyobo.struct.typedef import has_inchi, has_smiles
|
|
15
|
+
from pyobo.struct.typedef import exact_match, has_inchi, has_smiles
|
|
16
16
|
|
|
17
17
|
__all__ = [
|
|
18
18
|
"ChEMBLCompoundGetter",
|
|
@@ -45,6 +45,7 @@ class ChEMBLCompoundGetter(Obo):
|
|
|
45
45
|
|
|
46
46
|
ontology = "chembl.compound"
|
|
47
47
|
bioversions_key = "chembl"
|
|
48
|
+
typedefs = [exact_match]
|
|
48
49
|
|
|
49
50
|
def iter_terms(self, force: bool = False) -> Iterable[Term]:
|
|
50
51
|
"""Iterate over terms in the ontology."""
|
|
@@ -82,6 +82,17 @@ def _parse_xrefs(s) -> List[Tuple[Reference, str]]:
|
|
|
82
82
|
logger.warning("xref missing (: %s", xref)
|
|
83
83
|
continue
|
|
84
84
|
note = note.rstrip(")")
|
|
85
|
+
note.replace("rhea:rhea ", "rhea:")
|
|
86
|
+
note.replace("rhea:Rhea ", "rhea:")
|
|
87
|
+
note.replace("eccode::", "eccode:")
|
|
88
|
+
note.replace("eccode:EC:", "eccode:")
|
|
89
|
+
note.replace("eccode:RHEA:", "rhea:")
|
|
90
|
+
if note.lower().startswith("rhea "):
|
|
91
|
+
note = note[len("Rhea ") :]
|
|
92
|
+
if note.lower().startswith("rhea:rhea "):
|
|
93
|
+
note = note[len("rhea:rhea ") :]
|
|
94
|
+
if note.lower().startswith("EC:"):
|
|
95
|
+
note = note[len("EC:") :]
|
|
85
96
|
try:
|
|
86
97
|
reference = Reference.from_curie(xref_curie)
|
|
87
98
|
except ValueError:
|
|
@@ -8,6 +8,7 @@ import pandas as pd
|
|
|
8
8
|
import pystow
|
|
9
9
|
|
|
10
10
|
from pyobo import Obo, Reference, Term
|
|
11
|
+
from pyobo.struct.typedef import exact_match
|
|
11
12
|
|
|
12
13
|
__all__ = [
|
|
13
14
|
"get_obo",
|
|
@@ -23,6 +24,7 @@ class DepMapGetter(Obo):
|
|
|
23
24
|
|
|
24
25
|
ontology = bioversions_key = PREFIX
|
|
25
26
|
data_version = VERSION
|
|
27
|
+
typedefs = [exact_match]
|
|
26
28
|
|
|
27
29
|
def iter_terms(self, force: bool = False) -> Iterable[Term]:
|
|
28
30
|
"""Iterate over terms in the ontology."""
|
|
@@ -12,7 +12,7 @@ import psycopg2
|
|
|
12
12
|
from tqdm.auto import tqdm
|
|
13
13
|
|
|
14
14
|
from pyobo.struct import Obo, Reference, Synonym, Term
|
|
15
|
-
from pyobo.struct.typedef import has_inchi, has_smiles
|
|
15
|
+
from pyobo.struct.typedef import exact_match, has_inchi, has_smiles
|
|
16
16
|
|
|
17
17
|
__all__ = [
|
|
18
18
|
"DrugCentralGetter",
|
|
@@ -34,6 +34,7 @@ class DrugCentralGetter(Obo):
|
|
|
34
34
|
"""An ontology representation of the DrugCentral database."""
|
|
35
35
|
|
|
36
36
|
ontology = bioversions_key = PREFIX
|
|
37
|
+
typedefs = [exact_match]
|
|
37
38
|
|
|
38
39
|
def iter_terms(self, force: bool = False) -> Iterable[Term]:
|
|
39
40
|
"""Iterate over terms in the ontology."""
|