pyobo 0.11.2__py3-none-any.whl → 0.12.1__py3-none-any.whl
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/.DS_Store +0 -0
- pyobo/__init__.py +95 -20
- pyobo/__main__.py +0 -0
- pyobo/api/__init__.py +81 -10
- pyobo/api/alts.py +52 -42
- pyobo/api/combine.py +39 -0
- pyobo/api/edges.py +68 -0
- pyobo/api/hierarchy.py +231 -203
- pyobo/api/metadata.py +14 -19
- pyobo/api/names.py +207 -127
- pyobo/api/properties.py +117 -117
- pyobo/api/relations.py +68 -94
- pyobo/api/species.py +24 -21
- pyobo/api/typedefs.py +11 -11
- pyobo/api/utils.py +66 -13
- pyobo/api/xrefs.py +107 -114
- pyobo/cli/__init__.py +0 -0
- pyobo/cli/cli.py +35 -50
- pyobo/cli/database.py +210 -160
- pyobo/cli/database_utils.py +155 -0
- pyobo/cli/lookup.py +163 -195
- pyobo/cli/utils.py +19 -6
- pyobo/constants.py +102 -3
- pyobo/getters.py +209 -191
- pyobo/gilda_utils.py +52 -250
- pyobo/identifier_utils/__init__.py +33 -0
- pyobo/identifier_utils/api.py +305 -0
- pyobo/identifier_utils/preprocessing.json +873 -0
- pyobo/identifier_utils/preprocessing.py +27 -0
- pyobo/identifier_utils/relations/__init__.py +8 -0
- pyobo/identifier_utils/relations/api.py +162 -0
- pyobo/identifier_utils/relations/data.json +5824 -0
- pyobo/identifier_utils/relations/data_owl.json +57 -0
- pyobo/identifier_utils/relations/data_rdf.json +1 -0
- pyobo/identifier_utils/relations/data_rdfs.json +7 -0
- pyobo/mocks.py +9 -6
- pyobo/ner/__init__.py +9 -0
- pyobo/ner/api.py +72 -0
- pyobo/ner/normalizer.py +33 -0
- pyobo/obographs.py +48 -40
- pyobo/plugins.py +5 -4
- pyobo/py.typed +0 -0
- pyobo/reader.py +1354 -395
- pyobo/reader_utils.py +155 -0
- pyobo/resource_utils.py +42 -22
- pyobo/resources/__init__.py +0 -0
- pyobo/resources/goc.py +75 -0
- pyobo/resources/goc.tsv +188 -0
- pyobo/resources/ncbitaxon.py +4 -5
- pyobo/resources/ncbitaxon.tsv.gz +0 -0
- pyobo/resources/ro.py +3 -2
- pyobo/resources/ro.tsv +0 -0
- pyobo/resources/so.py +0 -0
- pyobo/resources/so.tsv +0 -0
- pyobo/sources/README.md +12 -8
- pyobo/sources/__init__.py +52 -29
- pyobo/sources/agrovoc.py +0 -0
- pyobo/sources/antibodyregistry.py +11 -12
- pyobo/sources/bigg/__init__.py +13 -0
- pyobo/sources/bigg/bigg_compartment.py +81 -0
- pyobo/sources/bigg/bigg_metabolite.py +229 -0
- pyobo/sources/bigg/bigg_model.py +46 -0
- pyobo/sources/bigg/bigg_reaction.py +77 -0
- pyobo/sources/biogrid.py +1 -2
- pyobo/sources/ccle.py +7 -12
- pyobo/sources/cgnc.py +9 -6
- pyobo/sources/chebi.py +1 -1
- pyobo/sources/chembl/__init__.py +9 -0
- pyobo/sources/{chembl.py → chembl/chembl_compound.py} +13 -25
- pyobo/sources/chembl/chembl_target.py +160 -0
- pyobo/sources/civic_gene.py +55 -15
- pyobo/sources/clinicaltrials.py +160 -0
- pyobo/sources/complexportal.py +24 -24
- pyobo/sources/conso.py +14 -22
- pyobo/sources/cpt.py +0 -0
- pyobo/sources/credit.py +1 -9
- pyobo/sources/cvx.py +27 -5
- pyobo/sources/depmap.py +9 -12
- pyobo/sources/dictybase_gene.py +2 -7
- pyobo/sources/drugbank/__init__.py +9 -0
- pyobo/sources/{drugbank.py → drugbank/drugbank.py} +11 -16
- pyobo/sources/{drugbank_salt.py → drugbank/drugbank_salt.py} +3 -8
- pyobo/sources/drugcentral.py +17 -13
- pyobo/sources/expasy.py +31 -34
- pyobo/sources/famplex.py +13 -18
- pyobo/sources/flybase.py +8 -13
- pyobo/sources/gard.py +62 -0
- pyobo/sources/geonames/__init__.py +9 -0
- pyobo/sources/geonames/features.py +28 -0
- pyobo/sources/{geonames.py → geonames/geonames.py} +87 -26
- pyobo/sources/geonames/utils.py +115 -0
- pyobo/sources/gmt_utils.py +6 -7
- pyobo/sources/go.py +20 -13
- pyobo/sources/gtdb.py +154 -0
- pyobo/sources/gwascentral/__init__.py +9 -0
- pyobo/sources/{gwascentral_phenotype.py → gwascentral/gwascentral_phenotype.py} +5 -7
- pyobo/sources/{gwascentral_study.py → gwascentral/gwascentral_study.py} +1 -7
- pyobo/sources/hgnc/__init__.py +9 -0
- pyobo/sources/{hgnc.py → hgnc/hgnc.py} +56 -70
- pyobo/sources/{hgncgenefamily.py → hgnc/hgncgenefamily.py} +8 -18
- pyobo/sources/icd/__init__.py +9 -0
- pyobo/sources/{icd10.py → icd/icd10.py} +35 -37
- pyobo/sources/icd/icd11.py +148 -0
- pyobo/sources/{icd_utils.py → icd/icd_utils.py} +66 -20
- pyobo/sources/interpro.py +4 -9
- pyobo/sources/itis.py +0 -5
- pyobo/sources/kegg/__init__.py +0 -0
- pyobo/sources/kegg/api.py +16 -38
- pyobo/sources/kegg/genes.py +9 -20
- pyobo/sources/kegg/genome.py +1 -7
- pyobo/sources/kegg/pathway.py +9 -21
- pyobo/sources/mesh.py +58 -24
- pyobo/sources/mgi.py +3 -10
- pyobo/sources/mirbase/__init__.py +11 -0
- pyobo/sources/{mirbase.py → mirbase/mirbase.py} +8 -11
- pyobo/sources/{mirbase_constants.py → mirbase/mirbase_constants.py} +0 -0
- pyobo/sources/{mirbase_family.py → mirbase/mirbase_family.py} +4 -8
- pyobo/sources/{mirbase_mature.py → mirbase/mirbase_mature.py} +3 -7
- pyobo/sources/msigdb.py +74 -39
- pyobo/sources/ncbi/__init__.py +9 -0
- pyobo/sources/ncbi/ncbi_gc.py +162 -0
- pyobo/sources/{ncbigene.py → ncbi/ncbigene.py} +18 -19
- pyobo/sources/nih_reporter.py +60 -0
- pyobo/sources/nlm/__init__.py +9 -0
- pyobo/sources/nlm/nlm_catalog.py +48 -0
- pyobo/sources/nlm/nlm_publisher.py +36 -0
- pyobo/sources/nlm/utils.py +116 -0
- pyobo/sources/npass.py +6 -8
- pyobo/sources/omim_ps.py +11 -4
- pyobo/sources/pathbank.py +4 -8
- pyobo/sources/pfam/__init__.py +9 -0
- pyobo/sources/{pfam.py → pfam/pfam.py} +3 -8
- pyobo/sources/{pfam_clan.py → pfam/pfam_clan.py} +2 -7
- pyobo/sources/pharmgkb/__init__.py +15 -0
- pyobo/sources/pharmgkb/pharmgkb_chemical.py +89 -0
- pyobo/sources/pharmgkb/pharmgkb_disease.py +77 -0
- pyobo/sources/pharmgkb/pharmgkb_gene.py +108 -0
- pyobo/sources/pharmgkb/pharmgkb_pathway.py +63 -0
- pyobo/sources/pharmgkb/pharmgkb_variant.py +84 -0
- pyobo/sources/pharmgkb/utils.py +86 -0
- pyobo/sources/pid.py +1 -6
- pyobo/sources/pombase.py +6 -10
- pyobo/sources/pubchem.py +4 -9
- pyobo/sources/reactome.py +5 -11
- pyobo/sources/rgd.py +11 -16
- pyobo/sources/rhea.py +37 -36
- pyobo/sources/ror.py +69 -42
- pyobo/sources/selventa/__init__.py +0 -0
- pyobo/sources/selventa/schem.py +4 -7
- pyobo/sources/selventa/scomp.py +1 -6
- pyobo/sources/selventa/sdis.py +4 -7
- pyobo/sources/selventa/sfam.py +1 -6
- pyobo/sources/sgd.py +6 -11
- pyobo/sources/signor/__init__.py +7 -0
- pyobo/sources/signor/download.py +41 -0
- pyobo/sources/signor/signor_complexes.py +105 -0
- pyobo/sources/slm.py +12 -15
- pyobo/sources/umls/__init__.py +7 -1
- pyobo/sources/umls/__main__.py +0 -0
- pyobo/sources/umls/get_synonym_types.py +20 -4
- pyobo/sources/umls/sty.py +57 -0
- pyobo/sources/umls/synonym_types.tsv +1 -1
- pyobo/sources/umls/umls.py +18 -22
- pyobo/sources/unimod.py +46 -0
- pyobo/sources/uniprot/__init__.py +1 -1
- pyobo/sources/uniprot/uniprot.py +40 -32
- pyobo/sources/uniprot/uniprot_ptm.py +4 -34
- pyobo/sources/utils.py +3 -2
- pyobo/sources/wikipathways.py +7 -10
- pyobo/sources/zfin.py +5 -10
- pyobo/ssg/__init__.py +12 -16
- pyobo/ssg/base.html +0 -0
- pyobo/ssg/index.html +26 -13
- pyobo/ssg/term.html +12 -2
- pyobo/ssg/typedef.html +0 -0
- pyobo/struct/__init__.py +54 -8
- pyobo/struct/functional/__init__.py +1 -0
- pyobo/struct/functional/dsl.py +2572 -0
- pyobo/struct/functional/macros.py +423 -0
- pyobo/struct/functional/obo_to_functional.py +385 -0
- pyobo/struct/functional/ontology.py +272 -0
- pyobo/struct/functional/utils.py +112 -0
- pyobo/struct/reference.py +331 -136
- pyobo/struct/struct.py +1484 -657
- pyobo/struct/struct_utils.py +1078 -0
- pyobo/struct/typedef.py +162 -210
- pyobo/struct/utils.py +12 -5
- pyobo/struct/vocabulary.py +138 -0
- pyobo/utils/__init__.py +0 -0
- pyobo/utils/cache.py +16 -15
- pyobo/utils/io.py +51 -41
- pyobo/utils/iter.py +5 -5
- pyobo/utils/misc.py +41 -53
- pyobo/utils/ndex_utils.py +0 -0
- pyobo/utils/path.py +73 -70
- pyobo/version.py +3 -3
- pyobo-0.12.1.dist-info/METADATA +671 -0
- pyobo-0.12.1.dist-info/RECORD +201 -0
- pyobo-0.12.1.dist-info/WHEEL +4 -0
- {pyobo-0.11.2.dist-info → pyobo-0.12.1.dist-info}/entry_points.txt +1 -0
- pyobo-0.12.1.dist-info/licenses/LICENSE +21 -0
- pyobo/aws.py +0 -162
- pyobo/cli/aws.py +0 -47
- pyobo/identifier_utils.py +0 -142
- pyobo/normalizer.py +0 -232
- pyobo/registries/__init__.py +0 -16
- pyobo/registries/metaregistry.json +0 -507
- pyobo/registries/metaregistry.py +0 -135
- pyobo/sources/icd11.py +0 -105
- pyobo/xrefdb/__init__.py +0 -1
- pyobo/xrefdb/canonicalizer.py +0 -214
- pyobo/xrefdb/priority.py +0 -59
- pyobo/xrefdb/sources/__init__.py +0 -60
- pyobo/xrefdb/sources/biomappings.py +0 -36
- pyobo/xrefdb/sources/cbms2019.py +0 -91
- pyobo/xrefdb/sources/chembl.py +0 -83
- pyobo/xrefdb/sources/compath.py +0 -82
- pyobo/xrefdb/sources/famplex.py +0 -64
- pyobo/xrefdb/sources/gilda.py +0 -50
- pyobo/xrefdb/sources/intact.py +0 -113
- pyobo/xrefdb/sources/ncit.py +0 -133
- pyobo/xrefdb/sources/pubchem.py +0 -27
- pyobo/xrefdb/sources/wikidata.py +0 -116
- pyobo/xrefdb/xrefs_pipeline.py +0 -180
- pyobo-0.11.2.dist-info/METADATA +0 -711
- pyobo-0.11.2.dist-info/RECORD +0 -157
- pyobo-0.11.2.dist-info/WHEEL +0 -5
- pyobo-0.11.2.dist-info/top_level.txt +0 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
pyobo/plugins.py,sha256=c04afe369c99ed9eae12bd2e18334e7972ce199a2419b166a377becf63cd2893,1232
|
|
2
|
+
pyobo/getters.py,sha256=68c8982ac868863e73d1428bcdb82dfdfd0d9397e25d9dc2e0eca05d9b9d566a,17366
|
|
3
|
+
pyobo/gilda_utils.py,sha256=b9384002b00b48dcc98be86b47d954bed41c8b9548c380aaab62fa9ad929d0aa,1990
|
|
4
|
+
pyobo/.DS_Store,sha256=00b8c741cd5b001c03c1a582f55bfbcda0ad16f0e55019d64f93241b74991980,8196
|
|
5
|
+
pyobo/version.py,sha256=dab7f9a58f271077f9eb69671bc8ff659ad64f36f418250a964fa030d634373d,926
|
|
6
|
+
pyobo/ner/__init__.py,sha256=0199b704f1235184d521069034823c3d9960ff6756205c299649b87a4bbd4041,153
|
|
7
|
+
pyobo/ner/api.py,sha256=b34309833eac8f5dea881d531323bf682f35d377e09d807066ba1183282964dc,2167
|
|
8
|
+
pyobo/ner/normalizer.py,sha256=4e90d93801877f72f2fab8069db986e79cc749533a068a8b07a9d7c9e37cb9c2,954
|
|
9
|
+
pyobo/obographs.py,sha256=f4d9904d939afd04b29b42aa40acbaf6ec9d4a8f2eb3e1dc714b051b1025c41e,4239
|
|
10
|
+
pyobo/resource_utils.py,sha256=6e5a1229b1df30bcf4841f009213247cb386ab0e85c8ef02114e8b360d0f54c9,4406
|
|
11
|
+
pyobo/resources/goc.py,sha256=6b7e352d9a7e00e08c92588a65d283be09ab5dac9fc4e9780e14b130b64ce5ba,2550
|
|
12
|
+
pyobo/resources/goc.tsv,sha256=5bb98b945fbc9e0876e2a921f328a72f8b44f5686037e341fc8432b1a1d0d616,9081
|
|
13
|
+
pyobo/resources/__init__.py,sha256=43d9e293b1e0a4808238dec610aa5bc37cfd64833b345270a063697a9927da70,38
|
|
14
|
+
pyobo/resources/so.tsv,sha256=50964a153100bff5eccd861bba7e167fa6f88e8bc38d229cd51591411713cc3c,82068
|
|
15
|
+
pyobo/resources/so.py,sha256=4bebe643b2fc009134f057c6543209a8d40d68b3d49ae27a1c2e45e2158732b0,1466
|
|
16
|
+
pyobo/resources/ro.py,sha256=df0a739171825f42441f261c09104c277016fb098baa242ff18bc965a1217c99,1508
|
|
17
|
+
pyobo/resources/ro.tsv,sha256=62f9412cf00acb6c38221798ccef68c75620e9690774c5733104e29089440a88,26586
|
|
18
|
+
pyobo/resources/ncbitaxon.py,sha256=92484774b0f45247cb4090b34e3851a5c175dde2da03e472d891c9953968116b,1979
|
|
19
|
+
pyobo/resources/ncbitaxon.tsv.gz,sha256=e37cc78e756deb64c0e3f955e7c5fe1423dd3037cb8350753ef652aff5f2f616,22981954
|
|
20
|
+
pyobo/constants.py,sha256=c1ffa4f12c1ddee556adf728ef4ac51da44f228fe6fca9b58b9ab8f263acc87b,5112
|
|
21
|
+
pyobo/__init__.py,sha256=0d90185e6e3aa041ccc27c68226c45e456e39369328e3db17706d65b52015819,3439
|
|
22
|
+
pyobo/utils/iter.py,sha256=ad845b6da1491f131a134c94fab419a026a0608aed7afd3db98d26c4591fe736,1524
|
|
23
|
+
pyobo/utils/misc.py,sha256=99d1f6e88b48d3f0cdbd7fff8a908556bf949278fcf0ef639e5cc8a421d0f4db,2684
|
|
24
|
+
pyobo/utils/ndex_utils.py,sha256=128902592d345ab93fe32f2575e42e53269a0bac8dcc18370da81497e2767336,2326
|
|
25
|
+
pyobo/utils/io.py,sha256=fa0cb5a8633a6c9fb95eb2f74e08fbf69acc4fc229b89c18dd233921b80378a9,5100
|
|
26
|
+
pyobo/utils/cache.py,sha256=136ccd03b82afd534699a36bad129e5f3e73aba5c3184fb93d5a24af30d99227,3098
|
|
27
|
+
pyobo/utils/__init__.py,sha256=08035263cbc6abfeaff2b5a159121d9e4f96a392c0d91f568e0d67a9b5aa2cec,17
|
|
28
|
+
pyobo/utils/path.py,sha256=cc37f10de8e0ef90a6063cc2b1c5d1b0993e41649536f04bfddc892d61a3bc4f,3398
|
|
29
|
+
pyobo/cli/database.py,sha256=e880ac2c78bd437d73c99cea5c44938129852571bca35e2ab0cc7de195851ce6,11963
|
|
30
|
+
pyobo/cli/lookup.py,sha256=1b11bbe771979c345ff8df494562919900b95e237c7c437997595ee42de31c76,9163
|
|
31
|
+
pyobo/cli/__init__.py,sha256=a5388bbb38e3a62d0febdc958d0da413a9c152666e6059ea74934364b0e482f9,71
|
|
32
|
+
pyobo/cli/database_utils.py,sha256=8d0eea4a0fa8664f90f910b5db536451ba9778d8342bc7d5f7a8a05da2b7adae,5540
|
|
33
|
+
pyobo/cli/cli.py,sha256=ca057c8505fa7f40730ac0aa0a77e033e30ede9074a145f0b70d7b5f622aa2bd,2939
|
|
34
|
+
pyobo/cli/utils.py,sha256=9e6b57b311b44d61088e321efa387f6aacebd3d6d337bf8d1c589fb871b3304d,1738
|
|
35
|
+
pyobo/struct/__init__.py,sha256=fb813dfa7de27f195c07cd5311de78403b03dfbf0a183995c8fb448033ace311,1444
|
|
36
|
+
pyobo/struct/typedef.py,sha256=fd94429e28efcdf7bbeba4b1729fa66af5f64c34e49437d82e4b3e5a457d064d,12099
|
|
37
|
+
pyobo/struct/struct_utils.py,sha256=7b8bfd7a322f34cf1436b83c8eab983944651ba467923045bf61ecc245800d2c,39164
|
|
38
|
+
pyobo/struct/utils.py,sha256=ce4a4e138d894087e4374adce6a34434ad375482a691fff9eed1e88cc24aef56,906
|
|
39
|
+
pyobo/struct/reference.py,sha256=4fc7d3b665cd18c8dfbbb2b8b49de4bc30a8e101d14ff26bf5f88e9c562bc2d3,11735
|
|
40
|
+
pyobo/struct/vocabulary.py,sha256=56e0f6770cf7da2d6f1221e3fc8261f1c07dc8358a1f3dfb487894a25b1ed133,4335
|
|
41
|
+
pyobo/struct/functional/dsl.py,sha256=780b4e5616b8dc823cee610945a95ffa109aa43287992dd4dd51511c461f96fb,101183
|
|
42
|
+
pyobo/struct/functional/__init__.py,sha256=d536edb7fe86a1aad19607df3dea62b49dd0b4bb2b30f31b8431a842700a499e,32
|
|
43
|
+
pyobo/struct/functional/obo_to_functional.py,sha256=785c46fdb00dc45f3903f67ad24ae4fcb6d187ce48208373fc9d42833a85f6b8,13273
|
|
44
|
+
pyobo/struct/functional/utils.py,sha256=73e5c6d9227b0a162dcfb294dcad05f93ea870c8d87af7a2d16c6591f9249ad1,3487
|
|
45
|
+
pyobo/struct/functional/macros.py,sha256=cc654f131fa685d4afc87d8c7b5e8565da1b789dd5d73045a77b3e033a8ced52,13785
|
|
46
|
+
pyobo/struct/functional/ontology.py,sha256=bc610a206c5f502cc658cbf7dcaa9caeb112a596ab1cb07fcbd571c8a6da2894,9331
|
|
47
|
+
pyobo/struct/struct.py,sha256=29b77204d903a948aff74f93aa043e5421cc932c22a893e70dbfd3f27b911fb7,89480
|
|
48
|
+
pyobo/ssg/index.html,sha256=da62c16a198f7ad2468599c5d7e4da4d7b81e02a18a25a59da741a579746e676,4346
|
|
49
|
+
pyobo/ssg/typedef.html,sha256=2ab76acc1eb18edebcf5b1b7dc3dba00bfb5d49aef36e124a3134d23e106f938,2038
|
|
50
|
+
pyobo/ssg/base.html,sha256=fef95d5026be80bd984cd63a1a002ec4d4f74e06840f9f39bc5feaed3aeb8d8b,2844
|
|
51
|
+
pyobo/ssg/__init__.py,sha256=8500042e3156fe3acd5fd5546b0ed52038d842150389c512b3e99267302f152a,5224
|
|
52
|
+
pyobo/ssg/term.html,sha256=b522c82774980d37ad2bd8361280cacaee1a1dc855a351145e4fda62119e38aa,3869
|
|
53
|
+
pyobo/reader.py,sha256=6fc2522a89772b718eaa6278e2abc7d5ca536378b537992b34bfe12bcfd10d72,52246
|
|
54
|
+
pyobo/identifier_utils/relations/data_rdfs.json,sha256=6e3a7166d7b78385afac626c987b8024dfdc83f7dac6a21af6d08bedab8776a4,86
|
|
55
|
+
pyobo/identifier_utils/relations/__init__.py,sha256=2961f492b8530a678a9e010887b5530c3de1cc2df8f294e210a18dbb748d01db,159
|
|
56
|
+
pyobo/identifier_utils/relations/data.json,sha256=88b6ce5fb632faa389b512b68f1b73acdd54b552a1aaa8043430eb5e0020a0bc,113169
|
|
57
|
+
pyobo/identifier_utils/relations/api.py,sha256=c625bca0f09379ba7ef544d05aaf4b998ee9798945a90f3b98b6d763ef9d36df,5764
|
|
58
|
+
pyobo/identifier_utils/relations/data_rdf.json,sha256=4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,2
|
|
59
|
+
pyobo/identifier_utils/relations/data_owl.json,sha256=a70fe8850a0b32f0ca5f9358085a340297a3464d7ba61e83333fe69d6ae4c826,1066
|
|
60
|
+
pyobo/identifier_utils/__init__.py,sha256=865d3a02c3a6d38ff13d4e30685a60368c4a7823397f93e609c2ad356c5d46a3,749
|
|
61
|
+
pyobo/identifier_utils/api.py,sha256=310bf6e0ac55882b9bbf179b1628bfc70797ae419a962ea6e1e3cdf48e8e5c26,9212
|
|
62
|
+
pyobo/identifier_utils/preprocessing.py,sha256=67c9109c1a4ba1f5f45368516563a044e38d4095799b520519a57044230d5fd7,618
|
|
63
|
+
pyobo/identifier_utils/preprocessing.json,sha256=e84f2ed9bb4f2a92c83845daf739f4052d7a615bfc6c13dcc54845a306916627,34821
|
|
64
|
+
pyobo/py.typed,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
|
|
65
|
+
pyobo/sources/signor/download.py,sha256=ae40c954403a95dd33e221b5e2d30e70072e4658d043d48024068b75ac5a833f,1053
|
|
66
|
+
pyobo/sources/signor/__init__.py,sha256=6de6ff151aaca2a2d5317b437916405dff5783d50120704ed39b8f53df0d6a32,139
|
|
67
|
+
pyobo/sources/signor/signor_complexes.py,sha256=04634cfe41b48eda51fa2eab0d2305e5729e0a59563b7e336762aae0532d064d,3802
|
|
68
|
+
pyobo/sources/expasy.py,sha256=25f116d229b5c25858db82add7a037e8c5b405e40dbfd76d3ff67a1f581c8755,11053
|
|
69
|
+
pyobo/sources/biogrid.py,sha256=75897a3eddd8a4d0f672f4e5e4b2007a45b22697257fb47526f149513f571fd0,3297
|
|
70
|
+
pyobo/sources/geonames/geonames.py,sha256=148ed89cea0b8e84fcc3dd12e865e28143ec9ab986ae6627e210090f8a733a1a,10112
|
|
71
|
+
pyobo/sources/geonames/__init__.py,sha256=2508697bc04a0524353fcdefb503126c029aeb1276b6f5fae0e303883e5633bb,177
|
|
72
|
+
pyobo/sources/geonames/features.py,sha256=255edf0b5bcd90327dfcfa464955def40f6f5cddb6193593bdf823dd55a1cf28,688
|
|
73
|
+
pyobo/sources/geonames/utils.py,sha256=89488531ea3f53c1680258a33285fb361c84686f4c7e9a7312d55b8b252ecdae,4012
|
|
74
|
+
pyobo/sources/conso.py,sha256=4786079e79746e192a0c6059cb7e7144e0995f9ec4f621cf943249b336a0b06b,2320
|
|
75
|
+
pyobo/sources/slm.py,sha256=986242c3f131a541116d6b452e8f053763607d5844befdf79bae893db85c8f62,4246
|
|
76
|
+
pyobo/sources/unimod.py,sha256=4efb3868cca9e83287ea6bfd3a35caf2d6a41b301ce1cfa92215380c87587753,1292
|
|
77
|
+
pyobo/sources/civic_gene.py,sha256=01639d80ea1b1656d4f794f5840fc2a3624da0d29de4c252b85e239d84a4830f,3096
|
|
78
|
+
pyobo/sources/pombase.py,sha256=f67807c320178c897d00ab05a943d121b15682f902c1cb3c576af53bfbdb3b29,3696
|
|
79
|
+
pyobo/sources/pid.py,sha256=3dc2cdc50abe9f61139d7a6608d6b8c8264a6663bd3aef963c1a2d2bda893f18,4460
|
|
80
|
+
pyobo/sources/zfin.py,sha256=57d73862574abbd82e017368163ffd7e6f7875eef180a598256503d87344e16e,5339
|
|
81
|
+
pyobo/sources/npass.py,sha256=a09682a38dc2206cb6b40b8cc483d3f0f7d24516b3250c39d4f2408ea30fb07f,2742
|
|
82
|
+
pyobo/sources/ncbi/__init__.py,sha256=4ae3c1445e191b45fa3ec3dab96be5616c7de5850648e0dd8f20abe58c90ce69,156
|
|
83
|
+
pyobo/sources/ncbi/ncbi_gc.py,sha256=b8682bb7b7c5cbb9b912fadef8d2efb896b88dfb5464d0b8bad34354c9e4e6bb,5470
|
|
84
|
+
pyobo/sources/ncbi/ncbigene.py,sha256=ce9b8c7b9f434597dccf2c497dd4a521a2330dcf4c0df325018dd2fc664af7b0,5096
|
|
85
|
+
pyobo/sources/bigg/__init__.py,sha256=e292beef5071d08bfddcfaa665e714297f4b71aa5b5bdc26ef304df6f85ba582,349
|
|
86
|
+
pyobo/sources/bigg/bigg_model.py,sha256=9f8dd98076c2512e8a0669acb5f154bb7f619643ec0e10697f6381fa4005ed80,1287
|
|
87
|
+
pyobo/sources/bigg/bigg_metabolite.py,sha256=cece770b13d7ed74d9a553adcba3169714f7bf4c0b8161da3c8e3ed2f9db3e9a,7728
|
|
88
|
+
pyobo/sources/bigg/bigg_reaction.py,sha256=e3948821a7b7d86b43c732ff82917ba754ca55f87ab775201e91787e55413bd2,2459
|
|
89
|
+
pyobo/sources/bigg/bigg_compartment.py,sha256=a454a13221fe58d1fe9ac98e5c319482ede0ae2f0946be6eae2ccdc2abd45eac,3430
|
|
90
|
+
pyobo/sources/gmt_utils.py,sha256=ccb91b1c62f10543c7c56ee308e1da6535b5d58ccf8fc38df84e107cf4131f11,1327
|
|
91
|
+
pyobo/sources/pubchem.py,sha256=953b1cd1d82b489e64c6571a51c517272762fb1b0c7f67c8d84716b1b5bcc535,5153
|
|
92
|
+
pyobo/sources/msigdb.py,sha256=e3975d59a15dcc66749436af855db3958914786c50d2341609522dfb50d065dc,6810
|
|
93
|
+
pyobo/sources/drugcentral.py,sha256=9fb9bbcbaf0b3c494163dde2e627a6695366ca1c74cb7293efd2419871a610a1,4047
|
|
94
|
+
pyobo/sources/agrovoc.py,sha256=489b1b27b2adc5d2541bd4629a66f609f2dfce92bd78eccfd30c79f608feeace,787
|
|
95
|
+
pyobo/sources/sgd.py,sha256=9eab044ec6e71742edc1935d7fe0f617673348119942760149a98bca7426b8d7,2073
|
|
96
|
+
pyobo/sources/depmap.py,sha256=7f05bfd54901e49b6c797c137dbd017e32ef626fb17feb17c1feb368f2a4960f,3585
|
|
97
|
+
pyobo/sources/drugbank/drugbank_salt.py,sha256=69b565fe280b7a698cc3850b8b7fc8b5381f09aab7bb26e3aa7b13f5187b0b59,1646
|
|
98
|
+
pyobo/sources/drugbank/__init__.py,sha256=880b2dbd9419d3525c25e0089b606727ddb7501be2f1a490e2d1158440e8540a,178
|
|
99
|
+
pyobo/sources/drugbank/drugbank.py,sha256=eb2fc65b2d43ac54c0c81fefb0701b1326411027cf3cfb5eac7534df925cb33c,10899
|
|
100
|
+
pyobo/sources/rgd.py,sha256=46020f5933a846a7575ffdd8330ddde8df560d16872c9475f204da59cfdbce4e,5316
|
|
101
|
+
pyobo/sources/__init__.py,sha256=94db6754ef36ea969a347c2ae38ff9eddb44dbe177ce06d9f93e5432592bc404,4630
|
|
102
|
+
pyobo/sources/pharmgkb/pharmgkb_pathway.py,sha256=3eb66d425b46ff38f3be9f8aeb7291c3e22ac49b4eef25f74e703ff68fb270e7,2042
|
|
103
|
+
pyobo/sources/pharmgkb/pharmgkb_gene.py,sha256=04c3c39bc0d900491e8d7d827cd0c17c898f2ea17d4a645544822373647413e1,4049
|
|
104
|
+
pyobo/sources/pharmgkb/__init__.py,sha256=25df339dedc6617df9ba4a80ef2b5b620b2425ab900893cc3f4de8e5c3557a20,443
|
|
105
|
+
pyobo/sources/pharmgkb/pharmgkb_chemical.py,sha256=698096d364d5cc0c59e659dee428eb4fb5224818fa0b567a30173a9dc9ff229c,3142
|
|
106
|
+
pyobo/sources/pharmgkb/pharmgkb_variant.py,sha256=1a1f5f34895446614589cf9f4307bfe9218a316dee21018a4610b4b6fb163ad0,2873
|
|
107
|
+
pyobo/sources/pharmgkb/utils.py,sha256=485b51020fd4c68bb96297ea3d3b05f707b4c0132c6a5c326dd5009b9652f9c2,2593
|
|
108
|
+
pyobo/sources/pharmgkb/pharmgkb_disease.py,sha256=b68a85adb653b67add77ce54e9be9a41d47d683ef565fdbe13598b3fbf033f34,2554
|
|
109
|
+
pyobo/sources/cpt.py,sha256=6fb85c50b96fbbfc5ae94470a03dfb19cffc540b3c9b16b00255df94bd5ed4b5,1466
|
|
110
|
+
pyobo/sources/pathbank.py,sha256=496e2611d5825f6319606d55269f322c4cf206efce99a653b521ab7a57680ed4,5387
|
|
111
|
+
pyobo/sources/gwascentral/gwascentral_phenotype.py,sha256=4af302177b18a9cdc5e6735709fefa033221353ebdf191c79d3a4ed0819fb7ca,1788
|
|
112
|
+
pyobo/sources/gwascentral/__init__.py,sha256=55d1c8801551fb7e81ee02ee851e175795179ff120359d3e8b583d36384e8d8d,231
|
|
113
|
+
pyobo/sources/gwascentral/gwascentral_study.py,sha256=bddb3b20e2374cc3ff14601aba36c17466897d46f1d086bf75ecf62992263bd9,2657
|
|
114
|
+
pyobo/sources/omim_ps.py,sha256=692cb56e44090b2c600d87c0ef0a71a13b77750faa3e40886385f9dbf7a51c76,1432
|
|
115
|
+
pyobo/sources/selventa/schem.py,sha256=bea37f6bf34b7ac863fb6751b997a57ce2c943977253766085f49122af441550,1162
|
|
116
|
+
pyobo/sources/selventa/sdis.py,sha256=b3169dde3868d74ab6a12ce3c820e419605884ac2ccbf8da4bec0f24ac1c2e75,1287
|
|
117
|
+
pyobo/sources/selventa/__init__.py,sha256=7082039562fdce72f6af4699209dabd4537734cf62a3be30f877b67a0cc9c17f,254
|
|
118
|
+
pyobo/sources/selventa/scomp.py,sha256=9ec86c90b41e5eecdfe6defd49326c54a260dd1f34097dc3b89054ac487049b7,1531
|
|
119
|
+
pyobo/sources/selventa/sfam.py,sha256=127f2d0327e4bfd8a60356682d426f41080672d7ef4c6b84a1bef0968671197b,1448
|
|
120
|
+
pyobo/sources/mesh.py,sha256=39a11c96a65d2be65081caea7664d7e1c03980a71484c83ff03913ed2b53de2d,13245
|
|
121
|
+
pyobo/sources/mirbase/mirbase_constants.py,sha256=e438dcc17fc5452cc561b4dfe74caf90f6a64881fbd11c3723cabe0ecd331d5b,1998
|
|
122
|
+
pyobo/sources/mirbase/__init__.py,sha256=f3f6043634b2e79fc22a419d19303b523baff1db7e61f87dd15fa1b778f0a659,252
|
|
123
|
+
pyobo/sources/mirbase/mirbase_family.py,sha256=4c858a861174a67e9d8504d380b838958ac92adbbe20b96dac71590f4a9e65be,1974
|
|
124
|
+
pyobo/sources/mirbase/mirbase_mature.py,sha256=263eb9c55aad8eabb3a991938bc7273262ddc9f51f9ad84cfe46b5499dbeaf31,1302
|
|
125
|
+
pyobo/sources/mirbase/mirbase.py,sha256=f61b8bd0f58055c10393ee2e9d9c3e1889f2104d42fc55f047137ae471b7c717,6387
|
|
126
|
+
pyobo/sources/icd/icd11.py,sha256=5b6e59f8028cfbd41f860151d1164514be2653a50078c0fc8748c20b815ee11b,4867
|
|
127
|
+
pyobo/sources/icd/__init__.py,sha256=0eb65597be8ff1eb2c278b6564f71ab8556b5d590821907ab09d1ce8a9ba4962,142
|
|
128
|
+
pyobo/sources/icd/icd10.py,sha256=61ab55ce0af6dbd27f59e25c6b8150007a96af1edcecde1f1db85bd5c4354de5,2587
|
|
129
|
+
pyobo/sources/icd/icd_utils.py,sha256=8fbc63228bd61b4f86c47eee5d6ad76433b52d7132a3fe0275680f4874c85c96,4525
|
|
130
|
+
pyobo/sources/gtdb.py,sha256=ab420486568c8ad1d6a39200cb6979f2e5cc2d67a40addeb2303a60ecb031138,5221
|
|
131
|
+
pyobo/sources/kegg/pathway.py,sha256=82333defe9d69a0a493b69368112d61d922195d333d081ed3679b355bfb235af,5892
|
|
132
|
+
pyobo/sources/kegg/__init__.py,sha256=8553f4b6ec15a6234c8a416ffdb34faf3b98bfe1c0d7f6cf742bcdc7e7e6e458,219
|
|
133
|
+
pyobo/sources/kegg/api.py,sha256=b33bb6e604b7103e6f51c287aa1e9723a839119cf9d950d2fd4148688bd4e49c,4191
|
|
134
|
+
pyobo/sources/kegg/genes.py,sha256=c74a156d1612e7150f507858ba80288ec20fc9f8c08bcb7b45faf715aa6d770d,3558
|
|
135
|
+
pyobo/sources/kegg/genome.py,sha256=32aedb662b637c96c81e4da0da09d2244a99963001465aa1a572035e5386cc7a,4161
|
|
136
|
+
pyobo/sources/hgnc/__init__.py,sha256=d5084cec674febf03108ccda073da4dd244b9034ce912da15213cc2c44d21963,157
|
|
137
|
+
pyobo/sources/hgnc/hgnc.py,sha256=f05121570f4e4b06f4d70bbf6950363349a726de22c6f2ed5e3e43411591bf95,16377
|
|
138
|
+
pyobo/sources/hgnc/hgncgenefamily.py,sha256=e3e8d0b750d59a7da3d0ac2b100e248e8dad51af54c045405a12704e36db20cd,3710
|
|
139
|
+
pyobo/sources/README.md,sha256=0296f0a48da16d8422c3837a284fd5000a5f3a64d01e47936eb34413121b5f82,901
|
|
140
|
+
pyobo/sources/antibodyregistry.py,sha256=3726d4ccf1286e7e73aebd6252f0bc67d72ea83103335bb4eec8d5d540037664,3353
|
|
141
|
+
pyobo/sources/mgi.py,sha256=7d40f86d4bb07bc93e1f8b45e7856f0f25314fec5e04c6548ff7e5611b1fa5cf,5541
|
|
142
|
+
pyobo/sources/utils.py,sha256=98120062c2dba0007ac3ac0f4d3bf52c3401cd742ee7c4d496734624b589c31a,1118
|
|
143
|
+
pyobo/sources/nlm/__init__.py,sha256=74b7831ddabf96fb72d6984972a33e7b0f152843d4f3c8b210cc202e4227c6c7,178
|
|
144
|
+
pyobo/sources/nlm/nlm_publisher.py,sha256=96be828e8d8c76569ddc94e49f772b69f58a2f595c1d7dad16e29d9c8a0a6b9c,984
|
|
145
|
+
pyobo/sources/nlm/nlm_catalog.py,sha256=a205c3878cf2471ebdfd86c682e1f4c96114e7edd2bc79cb06f132c6d800e990,1339
|
|
146
|
+
pyobo/sources/nlm/utils.py,sha256=6c4057cf3d9f8e39c515c8ebabfabc99faf57f4fd188a66843b1f5f20a55e070,4861
|
|
147
|
+
pyobo/sources/nih_reporter.py,sha256=cac85ef3050695cb97c94e81caa409bc252bebd49354485ac03e409a69bd9094,1612
|
|
148
|
+
pyobo/sources/famplex.py,sha256=a82be3e9607feaeab64471d53c8686872aa47f5b9b23a5eb3bc0daf98b5af7a4,5628
|
|
149
|
+
pyobo/sources/go.py,sha256=cd72c37dca9b894eb43371540adab37cfcd8a07952be4533000f19b4f110c376,1530
|
|
150
|
+
pyobo/sources/dictybase_gene.py,sha256=78bbde62732e26cd92c2d287ca3e34b678e9f058f2d72157a0f0e8b9bd5d6164,2672
|
|
151
|
+
pyobo/sources/gard.py,sha256=f6846fa4d76df78714a92605e76f4f173f500af178b0ff8905f856909ae81197,1768
|
|
152
|
+
pyobo/sources/clinicaltrials.py,sha256=c24add689328aa31edd9b3fedaf3b514be62f9bca45dce12824ec83d77a66db2,5573
|
|
153
|
+
pyobo/sources/interpro.py,sha256=d6d99771293946b8228fbd35183aa845b77f7c46af1e5f3f03a6887f92ba10b1,4809
|
|
154
|
+
pyobo/sources/ccle.py,sha256=167d6d6356071f2663ea696a83c2123065181b8a3a5b931e78eee5fca94b9a8b,2924
|
|
155
|
+
pyobo/sources/chembl/chembl_target.py,sha256=681d2952fc620fc5d6fca81959e9a9346e363931f87c9f101abcacc2ccbf4c9d,5408
|
|
156
|
+
pyobo/sources/chembl/__init__.py,sha256=95d2f4af2a6253b9c3254c19c38696d0dc9ae36e35072fd7ed106fcbb3016b3c,195
|
|
157
|
+
pyobo/sources/chembl/chembl_compound.py,sha256=0ecf5ac6e4f5b8efbd2f79509c4a6bffc25d5a8fa60cd589bfd853586f565ec9,1888
|
|
158
|
+
pyobo/sources/uniprot/uniprot.py,sha256=dfa7eb88c59df10cdf1879d6bac2e60638a4d73b19f3a0b4767d499209336f46,6317
|
|
159
|
+
pyobo/sources/uniprot/__init__.py,sha256=0b475fdba434a9f49c080f7d23846497d2f6a1e1a839d3fcfa88a119c9b0a6d1,200
|
|
160
|
+
pyobo/sources/uniprot/uniprot_ptm.py,sha256=a130397ef41e135d0a4c7a624f0d379c776d0e13f869871690f4e1f8cc4d3b9d,2192
|
|
161
|
+
pyobo/sources/reactome.py,sha256=b98ca4f6efbdff59215a1e44b02d96247dba680e593a4829c87545fc922d4134,5612
|
|
162
|
+
pyobo/sources/pfam/pfam_clan.py,sha256=f2d81d273deb28f0492ae54cf5350b365baa3fcfde289d6ae332219af7cc56ac,1205
|
|
163
|
+
pyobo/sources/pfam/__init__.py,sha256=03acb66f67b42c28abe2c020e5308be580e2e9c56197d464de5a05e5505ac5e3,150
|
|
164
|
+
pyobo/sources/pfam/pfam.py,sha256=99d6d1e8093f9b23699f05d0b2c1a1e87318feebd29343873397bc4697ce1b47,1718
|
|
165
|
+
pyobo/sources/rhea.py,sha256=75b872549d72a00428c685a9e3b38a7a02c098c87aaa87beeff0da7c90de5ab9,8164
|
|
166
|
+
pyobo/sources/wikipathways.py,sha256=ae9b7b955580db4d27ebe863cf12bfcd07b1af660678666829dab662645aa63e,2637
|
|
167
|
+
pyobo/sources/cvx.py,sha256=97d0acbae76bf54ca8d0f35c8c94db346eb610e51cac05688a3d2f2613738551,3595
|
|
168
|
+
pyobo/sources/itis.py,sha256=6b1d54c40ece2a97176c497aaa3113fbf78ea32845e918fc76de4a1bf254dbbf,2876
|
|
169
|
+
pyobo/sources/umls/sty.py,sha256=80a4fba019e163606f4fcebbf2373b6036ce2c839e62f371745356e5d31f7e54,1479
|
|
170
|
+
pyobo/sources/umls/synonym_types.tsv,sha256=f133bab18eff4073470462d29ea3a9a6dca42223d4cd77171d7696988f48745a,8550
|
|
171
|
+
pyobo/sources/umls/__init__.py,sha256=10d80d5d02a1cdef73cb1b178e49fbdfe05daa6767b4be19cb5a91e36183b4ff,141
|
|
172
|
+
pyobo/sources/umls/umls.py,sha256=5bc2f3eb8f5a8abb605a21cfbc44b4e137b2c3c24c0a70825ec4a6d48dde6025,4287
|
|
173
|
+
pyobo/sources/umls/get_synonym_types.py,sha256=fd5266a8217b628fca6bef678e579dba3251445bc0f474d0f6f6c92c80bd7bb2,1724
|
|
174
|
+
pyobo/sources/umls/__main__.py,sha256=358e97a9eb60a5177f2cf9bde554d7d8bdeb241ffb877250b6d8270c9f5c1613,108
|
|
175
|
+
pyobo/sources/complexportal.py,sha256=78ec7567393ccc33cfd43acadb2392bf5f22f6933a8821cf3741a1f9bc6bb443,7466
|
|
176
|
+
pyobo/sources/credit.py,sha256=7643164ed0aa81333dd2415af23ec170fc94efc89b1656ea2d7f66551b6aff9a,1795
|
|
177
|
+
pyobo/sources/chebi.py,sha256=f9ffd7c812ce1e80b6b86aaef14cd0dc780095ba80866efe014bded072b44ce0,1202
|
|
178
|
+
pyobo/sources/ror.py,sha256=212fca52d31e2a002776b6cb8e17282bc8a5a7e8ce7a20f0cc64f2e51f5c2309,8882
|
|
179
|
+
pyobo/sources/flybase.py,sha256=8144b7f4d17fa9cef6dd1d9201b85062a3e0e943a2c0ac0f5e15d0d49c02ebc4,5666
|
|
180
|
+
pyobo/sources/cgnc.py,sha256=5e5c2aaa325cec1f7bdf9dbe020691a3c95acd79ca7fffc9555e2575f1899754,2299
|
|
181
|
+
pyobo/api/species.py,sha256=631cc978295fb8a23ea6360ba6ee7bf7b8dd0dec93917a6340381d99cf4c2b0a,2376
|
|
182
|
+
pyobo/api/metadata.py,sha256=b2d25a897fe5ef1d11d55efb4cdc07bcfb6892e67e128a9bf473112fbd0d896b,1029
|
|
183
|
+
pyobo/api/combine.py,sha256=ed3f108fc5b5c164352a0289b0ed641511d9c6441cadf28cd6106b86a1ec1245,1106
|
|
184
|
+
pyobo/api/properties.py,sha256=6d85af1ebd5b7f4c5d232323faab9d8f8a11a419eab0a86eca36052b22b2f778,6914
|
|
185
|
+
pyobo/api/relations.py,sha256=6dfda59d8ae2c3addb816d7dad2b97856916c6f2e6114f7a774bfcaff1c25747,5859
|
|
186
|
+
pyobo/api/__init__.py,sha256=259870a4519a6baa5df1180378837e67c688e8ecbe46e9a3d4a90e6435c79e1d,2955
|
|
187
|
+
pyobo/api/edges.py,sha256=4849b6809c7a2e83a48571a3d75578dae2e0e0589d15af6326a5bd1f39e57f09,1974
|
|
188
|
+
pyobo/api/hierarchy.py,sha256=37f27381f08a3c859adb4a1d46132fa60889a5ccce8867620db2e4353aa5a69f,10314
|
|
189
|
+
pyobo/api/names.py,sha256=2f620187285c1fccbeac23708d624bc374ec1e9d6abce65ebf5eb4f9c63070b8,10673
|
|
190
|
+
pyobo/api/utils.py,sha256=ae8d2274e48d129a0d3520e48ba462af066afff928c9fcd231f569c4b322bcf5,5429
|
|
191
|
+
pyobo/api/typedefs.py,sha256=1d3ba2d2497f5442f18238b4bdf06bf8d046df3aeba4253cb66b9039258ae9fc,1262
|
|
192
|
+
pyobo/api/xrefs.py,sha256=9d62cbb761b36957e780d0546ce3154a33a90ae6be23bbbedadba8c735c6aab0,5242
|
|
193
|
+
pyobo/api/alts.py,sha256=478b3162574616f2827bd73107f80f5dfdaf5971eaf6c6813109109dba89e522,3032
|
|
194
|
+
pyobo/__main__.py,sha256=70e610d8e10bc45fbd4fa9ee67dc672d2bbd6cb1e4e9e8a7aec4a8cfb11c0fd3,83
|
|
195
|
+
pyobo/reader_utils.py,sha256=5324154d08576e167d7c28b3660dbaa394e67878acf7ea9930abd0170201460a,4423
|
|
196
|
+
pyobo/mocks.py,sha256=8f9e392bd3ff0cfb0306e6070eb8724cb8e694fa0d951744b5c4652e15e56d72,2440
|
|
197
|
+
pyobo-0.12.1.dist-info/licenses/LICENSE,sha256=41c80964a1b1956e41c013670812fc5592d5b51bd7b3cd4287d949450488a498,1076
|
|
198
|
+
pyobo-0.12.1.dist-info/WHEEL,sha256=1c77bbda0b527f376a68ced20cbc1aac3efc7bc4d7c10cc4323a905ef79ae8db,78
|
|
199
|
+
pyobo-0.12.1.dist-info/entry_points.txt,sha256=00d833beec05ffdff58a90a8c49b5b04ce80e22d8c92ddfd80c3f340eea1bc6b,42
|
|
200
|
+
pyobo-0.12.1.dist-info/METADATA,sha256=891eda0af949aecf1dc5064aaba32edf807fc6ec4d43d7eebd8b0af65dc3b388,22299
|
|
201
|
+
pyobo-0.12.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Charles Tapley Hoyt
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
pyobo/aws.py
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
"""Interface for caching data on AWS S3."""
|
|
2
|
-
|
|
3
|
-
import logging
|
|
4
|
-
import os
|
|
5
|
-
from typing import Optional
|
|
6
|
-
|
|
7
|
-
import boto3
|
|
8
|
-
import humanize
|
|
9
|
-
from tabulate import tabulate
|
|
10
|
-
|
|
11
|
-
from pyobo import (
|
|
12
|
-
get_id_name_mapping,
|
|
13
|
-
get_id_synonyms_mapping,
|
|
14
|
-
get_id_to_alts,
|
|
15
|
-
get_properties_df,
|
|
16
|
-
get_relations_df,
|
|
17
|
-
get_xrefs_df,
|
|
18
|
-
)
|
|
19
|
-
from pyobo.api.utils import get_version
|
|
20
|
-
from pyobo.constants import RAW_DIRECTORY
|
|
21
|
-
from pyobo.registries import iter_cached_obo
|
|
22
|
-
from pyobo.utils.path import prefix_cache_join
|
|
23
|
-
|
|
24
|
-
__all__ = [
|
|
25
|
-
"download_artifacts",
|
|
26
|
-
"upload_artifacts",
|
|
27
|
-
"upload_artifacts_for_prefix",
|
|
28
|
-
"list_artifacts",
|
|
29
|
-
]
|
|
30
|
-
|
|
31
|
-
logger = logging.getLogger(__name__)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def download_artifacts(bucket: str, suffix: Optional[str] = None) -> None:
|
|
35
|
-
"""Download compiled parts from AWS.
|
|
36
|
-
|
|
37
|
-
:param bucket: The name of the S3 bucket to download
|
|
38
|
-
:param suffix: If specified, only download files with this suffix. Might
|
|
39
|
-
be useful to specify ``suffix='names.tsv`` if you just want to run the
|
|
40
|
-
name resolution service.
|
|
41
|
-
"""
|
|
42
|
-
s3_client = boto3.client("s3")
|
|
43
|
-
all_objects = s3_client.list_objects(Bucket=bucket)
|
|
44
|
-
for entry in all_objects["Contents"]:
|
|
45
|
-
key = entry["Key"]
|
|
46
|
-
if suffix and not key.endswith(suffix):
|
|
47
|
-
pass
|
|
48
|
-
path = os.path.join(RAW_DIRECTORY, key)
|
|
49
|
-
os.makedirs(os.path.dirname(path), exist_ok=True)
|
|
50
|
-
if os.path.exists(path):
|
|
51
|
-
continue # no need to download again
|
|
52
|
-
logging.warning("downloading %s to %s", key, path)
|
|
53
|
-
s3_client.download_file(bucket, key, path)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
def upload_artifacts(
|
|
57
|
-
bucket: str,
|
|
58
|
-
whitelist: Optional[set[str]] = None,
|
|
59
|
-
blacklist: Optional[set[str]] = None,
|
|
60
|
-
s3_client=None,
|
|
61
|
-
) -> None:
|
|
62
|
-
"""Upload all artifacts to AWS."""
|
|
63
|
-
if s3_client is None:
|
|
64
|
-
s3_client = boto3.client("s3")
|
|
65
|
-
all_objects = s3_client.list_objects(Bucket=bucket)
|
|
66
|
-
uploaded_prefixes = {entry["Key"].split("/")[0] for entry in all_objects["Contents"]}
|
|
67
|
-
|
|
68
|
-
for prefix, _ in sorted(iter_cached_obo()):
|
|
69
|
-
if prefix in uploaded_prefixes:
|
|
70
|
-
continue
|
|
71
|
-
if whitelist and prefix not in whitelist:
|
|
72
|
-
continue
|
|
73
|
-
if blacklist and prefix in blacklist:
|
|
74
|
-
continue
|
|
75
|
-
upload_artifacts_for_prefix(prefix=prefix, bucket=bucket, s3_client=s3_client)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
def upload_artifacts_for_prefix(
|
|
79
|
-
*, prefix: str, bucket: str, s3_client=None, version: Optional[str] = None
|
|
80
|
-
):
|
|
81
|
-
"""Upload compiled parts for the given prefix to AWS."""
|
|
82
|
-
if s3_client is None:
|
|
83
|
-
s3_client = boto3.client("s3")
|
|
84
|
-
|
|
85
|
-
if version is None:
|
|
86
|
-
version = get_version(prefix)
|
|
87
|
-
|
|
88
|
-
logger.info("[%s] getting id->name mapping", prefix)
|
|
89
|
-
get_id_name_mapping(prefix)
|
|
90
|
-
id_name_path = prefix_cache_join(prefix, name="names.tsv", version=version)
|
|
91
|
-
if not id_name_path.exists():
|
|
92
|
-
raise FileNotFoundError
|
|
93
|
-
id_name_key = os.path.join(prefix, "cache", "names.tsv")
|
|
94
|
-
logger.info("[%s] uploading id->name mapping", prefix)
|
|
95
|
-
upload_file(path=id_name_path, bucket=bucket, key=id_name_key, s3_client=s3_client)
|
|
96
|
-
|
|
97
|
-
logger.info("[%s] getting id->synonyms mapping", prefix)
|
|
98
|
-
get_id_synonyms_mapping(prefix)
|
|
99
|
-
id_synonyms_path = prefix_cache_join(prefix, name="synonyms.tsv", version=version)
|
|
100
|
-
if not id_synonyms_path.exists():
|
|
101
|
-
raise FileNotFoundError
|
|
102
|
-
id_synonyms_key = os.path.join(prefix, "cache", "synonyms.tsv")
|
|
103
|
-
logger.info("[%s] uploading id->synonyms mapping", prefix)
|
|
104
|
-
upload_file(path=id_synonyms_path, bucket=bucket, key=id_synonyms_key, s3_client=s3_client)
|
|
105
|
-
|
|
106
|
-
logger.info("[%s] getting xrefs", prefix)
|
|
107
|
-
get_xrefs_df(prefix)
|
|
108
|
-
xrefs_path = prefix_cache_join(prefix, name="xrefs.tsv", version=version)
|
|
109
|
-
if not xrefs_path.exists():
|
|
110
|
-
raise FileNotFoundError
|
|
111
|
-
xrefs_key = os.path.join(prefix, "cache", "xrefs.tsv")
|
|
112
|
-
logger.info("[%s] uploading xrefs", prefix)
|
|
113
|
-
upload_file(path=xrefs_path, bucket=bucket, key=xrefs_key, s3_client=s3_client)
|
|
114
|
-
|
|
115
|
-
logger.info("[%s] getting relations", prefix)
|
|
116
|
-
get_relations_df(prefix)
|
|
117
|
-
relations_path = prefix_cache_join(prefix, name="relations.tsv", version=version)
|
|
118
|
-
if not relations_path.exists():
|
|
119
|
-
raise FileNotFoundError
|
|
120
|
-
relations_key = os.path.join(prefix, "cache", "relations.tsv")
|
|
121
|
-
logger.info("[%s] uploading relations", prefix)
|
|
122
|
-
upload_file(path=relations_path, bucket=bucket, key=relations_key, s3_client=s3_client)
|
|
123
|
-
|
|
124
|
-
logger.info("[%s] getting properties", prefix)
|
|
125
|
-
get_properties_df(prefix)
|
|
126
|
-
properties_path = prefix_cache_join(prefix, name="properties.tsv", version=version)
|
|
127
|
-
if not properties_path.exists():
|
|
128
|
-
raise FileNotFoundError
|
|
129
|
-
properties_key = os.path.join(prefix, "cache", "properties.tsv")
|
|
130
|
-
logger.info("[%s] uploading properties", prefix)
|
|
131
|
-
upload_file(path=properties_path, bucket=bucket, key=properties_key, s3_client=s3_client)
|
|
132
|
-
|
|
133
|
-
logger.info("[%s] getting alternative identifiers", prefix)
|
|
134
|
-
get_id_to_alts(prefix)
|
|
135
|
-
alts_path = prefix_cache_join(prefix, name="alt_ids.tsv", version=version)
|
|
136
|
-
if not alts_path.exists():
|
|
137
|
-
raise FileNotFoundError
|
|
138
|
-
alts_key = os.path.join(prefix, "cache", "alt_ids.tsv")
|
|
139
|
-
logger.info("[%s] uploading alternative identifiers", prefix)
|
|
140
|
-
upload_file(path=alts_path, bucket=bucket, key=alts_key)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
def upload_file(*, path, bucket, key, s3_client=None):
|
|
144
|
-
"""Upload a file to an S3 bucket.
|
|
145
|
-
|
|
146
|
-
:param path: The local file path
|
|
147
|
-
:param bucket: The name of the S3 bucket
|
|
148
|
-
:param key: The relative file path to put on the S3 bucket
|
|
149
|
-
"""
|
|
150
|
-
if s3_client is None:
|
|
151
|
-
s3_client = boto3.client("s3")
|
|
152
|
-
s3_client.upload_file(path, bucket, key)
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
def list_artifacts(bucket: str) -> str:
|
|
156
|
-
"""List the files in a given bucket."""
|
|
157
|
-
s3_client = boto3.client("s3")
|
|
158
|
-
all_objects = s3_client.list_objects(Bucket=bucket)
|
|
159
|
-
rows = [
|
|
160
|
-
(entry["Key"], humanize.naturalsize(entry["Size"])) for entry in all_objects["Contents"]
|
|
161
|
-
]
|
|
162
|
-
return tabulate(rows, headers=["File", "Size"])
|
pyobo/cli/aws.py
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"""CLI for PyOBO's interface to S3."""
|
|
2
|
-
|
|
3
|
-
import click
|
|
4
|
-
from more_click import verbose_option
|
|
5
|
-
|
|
6
|
-
from ..aws import download_artifacts, list_artifacts, upload_artifacts
|
|
7
|
-
|
|
8
|
-
__all__ = [
|
|
9
|
-
"main",
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
bucket_argument = click.argument("bucket")
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@click.group(name="aws")
|
|
16
|
-
def main():
|
|
17
|
-
"""S3 utilities."""
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
@main.command()
|
|
21
|
-
@bucket_argument
|
|
22
|
-
@verbose_option
|
|
23
|
-
def download(bucket):
|
|
24
|
-
"""Download all artifacts from the S3 bucket."""
|
|
25
|
-
download_artifacts(bucket)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
@main.command()
|
|
29
|
-
@bucket_argument
|
|
30
|
-
@verbose_option
|
|
31
|
-
@click.option("-w", "--whitelist", multiple=True)
|
|
32
|
-
@click.option("-b", "--blacklist", multiple=True)
|
|
33
|
-
def upload(bucket, whitelist, blacklist):
|
|
34
|
-
"""Download all artifacts from the S3 bucket."""
|
|
35
|
-
upload_artifacts(bucket, whitelist=whitelist, blacklist=blacklist)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
@main.command()
|
|
39
|
-
@bucket_argument
|
|
40
|
-
@verbose_option
|
|
41
|
-
def ls(bucket):
|
|
42
|
-
"""List all artifacts on the S3 bucket."""
|
|
43
|
-
click.echo(list_artifacts(bucket))
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if __name__ == "__main__":
|
|
47
|
-
main()
|
pyobo/identifier_utils.py
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
"""Utilities for handling prefixes."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
import logging
|
|
6
|
-
from functools import wraps
|
|
7
|
-
|
|
8
|
-
import bioregistry
|
|
9
|
-
from curies import Reference, ReferenceTuple
|
|
10
|
-
|
|
11
|
-
from .registries import (
|
|
12
|
-
curie_has_blacklisted_prefix,
|
|
13
|
-
curie_has_blacklisted_suffix,
|
|
14
|
-
curie_is_blacklisted,
|
|
15
|
-
remap_full,
|
|
16
|
-
remap_prefix,
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
__all__ = [
|
|
20
|
-
"normalize_curie",
|
|
21
|
-
"wrap_norm_prefix",
|
|
22
|
-
"standardize_ec",
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
logger = logging.getLogger(__name__)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class MissingPrefixError(ValueError):
|
|
29
|
-
"""Raised on a missing prefix."""
|
|
30
|
-
|
|
31
|
-
reference: Reference | None
|
|
32
|
-
|
|
33
|
-
def __init__(
|
|
34
|
-
self, prefix: str, curie: str, xref: str | None = None, ontology: str | None = None
|
|
35
|
-
):
|
|
36
|
-
"""Initialize the error."""
|
|
37
|
-
self.prefix = prefix
|
|
38
|
-
self.curie = curie
|
|
39
|
-
self.xref = xref
|
|
40
|
-
self.ontology = ontology
|
|
41
|
-
self.reference = None
|
|
42
|
-
|
|
43
|
-
def __str__(self) -> str:
|
|
44
|
-
s = ""
|
|
45
|
-
if self.ontology:
|
|
46
|
-
s += f"[{self.ontology}] "
|
|
47
|
-
s += f"unhandled prefix {self.prefix} found in curie {self.curie}"
|
|
48
|
-
if self.xref:
|
|
49
|
-
s += f"/xref {self.xref}"
|
|
50
|
-
if self.reference is not None:
|
|
51
|
-
s += f" from {self.reference.curie}"
|
|
52
|
-
return s
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
def _normalize_prefix(prefix: str, *, curie=None, xref=None, strict: bool = True) -> str | None:
|
|
56
|
-
"""Normalize a namespace and return, if possible."""
|
|
57
|
-
norm_prefix = bioregistry.normalize_prefix(prefix)
|
|
58
|
-
if norm_prefix is not None:
|
|
59
|
-
return norm_prefix
|
|
60
|
-
elif strict:
|
|
61
|
-
raise MissingPrefixError(prefix=prefix, curie=curie, xref=xref)
|
|
62
|
-
else:
|
|
63
|
-
return None
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
BAD_CURIES = set()
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def normalize_curie(curie: str, *, strict: bool = True) -> tuple[str, str] | tuple[None, None]:
|
|
70
|
-
"""Parse a string that looks like a CURIE.
|
|
71
|
-
|
|
72
|
-
:param curie: A compact uniform resource identifier (CURIE)
|
|
73
|
-
:param strict: Should an exception be thrown if the CURIE can not be parsed w.r.t. the Bioregistry?
|
|
74
|
-
:return: A parse tuple or a tuple of None, None if not able to parse and not strict
|
|
75
|
-
|
|
76
|
-
- Normalizes the namespace
|
|
77
|
-
- Checks against a blacklist for the entire curie, for the namespace, and for suffixes.
|
|
78
|
-
"""
|
|
79
|
-
if curie_is_blacklisted(curie):
|
|
80
|
-
return None, None
|
|
81
|
-
if curie_has_blacklisted_prefix(curie):
|
|
82
|
-
return None, None
|
|
83
|
-
if curie_has_blacklisted_suffix(curie):
|
|
84
|
-
return None, None
|
|
85
|
-
|
|
86
|
-
# Remap the curie with the full list
|
|
87
|
-
curie = remap_full(curie)
|
|
88
|
-
|
|
89
|
-
# Remap node's prefix (if necessary)
|
|
90
|
-
curie = remap_prefix(curie)
|
|
91
|
-
|
|
92
|
-
try:
|
|
93
|
-
head_ns, identifier = curie.split(":", 1)
|
|
94
|
-
except ValueError: # skip nodes that don't look like normal CURIEs
|
|
95
|
-
if curie not in BAD_CURIES:
|
|
96
|
-
BAD_CURIES.add(curie)
|
|
97
|
-
logger.debug(f"could not split CURIE on colon: {curie}")
|
|
98
|
-
return None, None
|
|
99
|
-
|
|
100
|
-
# remove redundant prefix
|
|
101
|
-
if identifier.casefold().startswith(f"{head_ns.casefold()}:"):
|
|
102
|
-
identifier = identifier[len(head_ns) + 1 :]
|
|
103
|
-
|
|
104
|
-
norm_node_prefix = _normalize_prefix(head_ns, curie=curie, strict=strict)
|
|
105
|
-
if not norm_node_prefix:
|
|
106
|
-
return None, None
|
|
107
|
-
return norm_node_prefix, identifier
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
def wrap_norm_prefix(f):
|
|
111
|
-
"""Decorate a function that take in a prefix to auto-normalize, or return None if it can't be normalized."""
|
|
112
|
-
|
|
113
|
-
@wraps(f)
|
|
114
|
-
def _wrapped(prefix: str | Reference | ReferenceTuple, *args, **kwargs):
|
|
115
|
-
if isinstance(prefix, str):
|
|
116
|
-
norm_prefix = bioregistry.normalize_prefix(prefix)
|
|
117
|
-
if norm_prefix is None:
|
|
118
|
-
raise ValueError(f"Invalid prefix: {prefix}")
|
|
119
|
-
prefix = norm_prefix
|
|
120
|
-
elif isinstance(prefix, Reference):
|
|
121
|
-
norm_prefix = bioregistry.normalize_prefix(prefix.prefix)
|
|
122
|
-
if norm_prefix is None:
|
|
123
|
-
raise ValueError(f"Invalid prefix: {prefix.prefix}")
|
|
124
|
-
prefix = Reference(prefix=norm_prefix, identifier=prefix.identifier)
|
|
125
|
-
elif isinstance(prefix, ReferenceTuple):
|
|
126
|
-
norm_prefix = bioregistry.normalize_prefix(prefix.prefix)
|
|
127
|
-
if norm_prefix is None:
|
|
128
|
-
raise ValueError(f"Invalid prefix: {prefix.prefix}")
|
|
129
|
-
prefix = ReferenceTuple(norm_prefix, prefix.identifier)
|
|
130
|
-
else:
|
|
131
|
-
raise TypeError
|
|
132
|
-
return f(prefix, *args, **kwargs)
|
|
133
|
-
|
|
134
|
-
return _wrapped
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
def standardize_ec(ec: str) -> str:
|
|
138
|
-
"""Standardize an EC code identifier by removing all trailing dashes and dots."""
|
|
139
|
-
ec = ec.strip().replace(" ", "")
|
|
140
|
-
for _ in range(4):
|
|
141
|
-
ec = ec.rstrip("-").rstrip(".")
|
|
142
|
-
return ec
|