biomedical-knowledge-lookup 1.0.0__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.
Files changed (88) hide show
  1. biomedical_knowledge_lookup-1.0.0.dist-info/METADATA +289 -0
  2. biomedical_knowledge_lookup-1.0.0.dist-info/RECORD +88 -0
  3. biomedical_knowledge_lookup-1.0.0.dist-info/WHEEL +4 -0
  4. biomedical_knowledge_lookup-1.0.0.dist-info/entry_points.txt +3 -0
  5. biomedical_knowledge_lookup-1.0.0.dist-info/licenses/LICENSE +21 -0
  6. knowledge_lookup/__init__.py +112 -0
  7. knowledge_lookup/__main__.py +213 -0
  8. knowledge_lookup/adapters/__init__.py +123 -0
  9. knowledge_lookup/adapters/additional_adapters.py +340 -0
  10. knowledge_lookup/adapters/biolinker_adapter.py +526 -0
  11. knowledge_lookup/adapters/bioontology_adapter.py +443 -0
  12. knowledge_lookup/adapters/bioportal_adapter.py +210 -0
  13. knowledge_lookup/adapters/chembl_adapter.py +806 -0
  14. knowledge_lookup/adapters/clinvar_adapter.py +159 -0
  15. knowledge_lookup/adapters/cosmic_adapter.py +134 -0
  16. knowledge_lookup/adapters/dbpedia_adapter.py +184 -0
  17. knowledge_lookup/adapters/disgenet_adapter.py +274 -0
  18. knowledge_lookup/adapters/drugbank_adapter.py +135 -0
  19. knowledge_lookup/adapters/ebiols_adapter.py +16 -0
  20. knowledge_lookup/adapters/ensembl_adapter.py +105 -0
  21. knowledge_lookup/adapters/europepmc_adapter.py +138 -0
  22. knowledge_lookup/adapters/eutils_adapter.py +297 -0
  23. knowledge_lookup/adapters/geneontology_adapter.py +109 -0
  24. knowledge_lookup/adapters/hgnc_adapter.py +153 -0
  25. knowledge_lookup/adapters/hpo_adapter.py +127 -0
  26. knowledge_lookup/adapters/interpro_adapter.py +134 -0
  27. knowledge_lookup/adapters/kegg_adapter.py +142 -0
  28. knowledge_lookup/adapters/mondo_adapter.py +141 -0
  29. knowledge_lookup/adapters/obofoundry_adapter.py +84 -0
  30. knowledge_lookup/adapters/ols_adapter.py +213 -0
  31. knowledge_lookup/adapters/omim_adapter.py +139 -0
  32. knowledge_lookup/adapters/opentargets_adapter.py +177 -0
  33. knowledge_lookup/adapters/oxo_adapter.py +383 -0
  34. knowledge_lookup/adapters/pdb_adapter.py +138 -0
  35. knowledge_lookup/adapters/pfam_adapter.py +124 -0
  36. knowledge_lookup/adapters/pubchem_adapter.py +103 -0
  37. knowledge_lookup/adapters/quickgo_adapter.py +207 -0
  38. knowledge_lookup/adapters/reactome_adapter.py +137 -0
  39. knowledge_lookup/adapters/string_adapter.py +136 -0
  40. knowledge_lookup/adapters/tyto_adapter.py +63 -0
  41. knowledge_lookup/adapters/umls_adapter.py +190 -0
  42. knowledge_lookup/adapters/unichem_adapter.py +735 -0
  43. knowledge_lookup/adapters/uniprot_adapter.py +129 -0
  44. knowledge_lookup/adapters/wikidata_adapter.py +214 -0
  45. knowledge_lookup/adapters/zooma_adapter.py +91 -0
  46. knowledge_lookup/base.py +227 -0
  47. knowledge_lookup/benchmarking.py +178 -0
  48. knowledge_lookup/cache.py +628 -0
  49. knowledge_lookup/cache_demo.py +178 -0
  50. knowledge_lookup/central_lookup.py +1148 -0
  51. knowledge_lookup/examples.py +398 -0
  52. knowledge_lookup/exports.py +118 -0
  53. knowledge_lookup/factory.py +23 -0
  54. knowledge_lookup/generated_models/__init__.py +1 -0
  55. knowledge_lookup/generated_models/biomedical_knowledge_models.py +975 -0
  56. knowledge_lookup/generated_models/models.py +0 -0
  57. knowledge_lookup/helpers.py +81 -0
  58. knowledge_lookup/models.py +375 -0
  59. knowledge_lookup/multi_source_annotator.py +743 -0
  60. knowledge_lookup/ontology_concept_loader.py +261 -0
  61. knowledge_lookup/rdf_converter.py +825 -0
  62. knowledge_lookup/umls/CROSSWALK_CLIENT_README.md +507 -0
  63. knowledge_lookup/umls/README.md +630 -0
  64. knowledge_lookup/umls/auth.py +189 -0
  65. knowledge_lookup/umls/client.py +67 -0
  66. knowledge_lookup/umls/code_lookup_client.py +606 -0
  67. knowledge_lookup/umls/concept_lookup_client.py +567 -0
  68. knowledge_lookup/umls/concepts.py +289 -0
  69. knowledge_lookup/umls/crosswalk_client.py +565 -0
  70. knowledge_lookup/umls/enhanced_search_client.py +758 -0
  71. knowledge_lookup/umls/hierarchy_walker_client.py +676 -0
  72. knowledge_lookup/umls/main_client.py +318 -0
  73. knowledge_lookup/umls/metadata.py +66 -0
  74. knowledge_lookup/umls/models.py +60 -0
  75. knowledge_lookup/umls/names_retrieval_client.py +667 -0
  76. knowledge_lookup/umls/search.py +170 -0
  77. knowledge_lookup/umls/semantic_types_client.py +585 -0
  78. knowledge_lookup/umls/string_concept_client.py +585 -0
  79. knowledge_lookup/umls/tests/__init__.py +15 -0
  80. knowledge_lookup/umls/tests/integration/__init__.py +7 -0
  81. knowledge_lookup/umls/tests/integration/test_umls_client_integration.py +499 -0
  82. knowledge_lookup/umls/tests/test_runner.py +265 -0
  83. knowledge_lookup/umls/tests/unit/__init__.py +7 -0
  84. knowledge_lookup/umls/tests/unit/test_code_lookup_client.py +458 -0
  85. knowledge_lookup/umls/tests/unit/test_semantic_types_client.py +387 -0
  86. knowledge_lookup/utils/retry_utils.py +235 -0
  87. knowledge_lookup/utils/timing_utils.py +453 -0
  88. knowledge_lookup/validation_models.py +218 -0
@@ -0,0 +1,289 @@
1
+ Metadata-Version: 2.4
2
+ Name: biomedical-knowledge-lookup
3
+ Version: 1.0.0
4
+ Summary: Unified biological concept lookup across 29+ biomedical knowledge sources including BioPortal, OLS, UMLS, ChEMBL, DisGeNET, and more
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Keywords: biomedical,ontology,knowledge-graph,bioinformatics,semantic-web,rdf,bioportal,ols,umls
8
+ Author: Jonas Heinicke
9
+ Author-email: jonas.heinicke@helmholtz-hzi.de
10
+ Requires-Python: >=3.10,<4.0
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
22
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
23
+ Requires-Dist: aiohttp (>=3.9.0,<4.0.0)
24
+ Requires-Dist: backoff (>=2.2.0,<3.0.0)
25
+ Requires-Dist: bioservices (>=1.16.0,<2.0.0)
26
+ Requires-Dist: chembl-webresource-client (>=0.10.9,<0.11.0)
27
+ Requires-Dist: pandas (>=2.0.0,<3.0.0)
28
+ Requires-Dist: pydantic (>=2.0.0,<3.0.0)
29
+ Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
30
+ Requires-Dist: rdflib (>=7.0.0,<8.0.0)
31
+ Requires-Dist: requests (>=2.31.0,<3.0.0)
32
+ Requires-Dist: rich (>=13.0.0,<14.0.0)
33
+ Requires-Dist: setuptools (>=82.0.1,<83.0.0)
34
+ Requires-Dist: tenacity (>=8.2.0,<9.0.0)
35
+ Requires-Dist: typer (>=0.12.0,<1.0.0)
36
+ Requires-Dist: tyto (>=1.4,<2.0)
37
+ Project-URL: Changelog, https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/blob/main/CHANGELOG.md
38
+ Project-URL: Documentation, https://jonasheinickeBio.github.io/biomedical-knowledge-lookup/
39
+ Project-URL: Homepage, https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup
40
+ Project-URL: Issue Tracker, https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/issues
41
+ Project-URL: Repository, https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup
42
+ Description-Content-Type: text/markdown
43
+
44
+ # 🧬 Biomedical Knowledge Lookup
45
+
46
+ [![PyPI version](https://badge.fury.io/py/biomedical-knowledge-lookup.svg)](https://pypi.org/project/biomedical-knowledge-lookup/)
47
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
48
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
49
+ [![Tests](https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/actions/workflows/tests.yml/badge.svg)](https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/actions/workflows/tests.yml)
50
+ [![Coverage](https://img.shields.io/codecov/c/github/JonasHeinickeBio/biomedical-knowledge-lookup)](https://codecov.io/gh/JonasHeinickeBio/biomedical-knowledge-lookup)
51
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
52
+ [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://jonasheinickeBio.github.io/biomedical-knowledge-lookup/)
53
+ [![PyPI downloads](https://img.shields.io/pypi/dm/biomedical-knowledge-lookup?color=blue)](https://pypi.org/project/biomedical-knowledge-lookup/)
54
+ [![GitHub last commit](https://img.shields.io/github/last-commit/JonasHeinickeBio/biomedical-knowledge-lookup)](https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/commits/main)
55
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1234567.svg)](https://doi.org/10.5281/zenodo.1234567)
56
+
57
+ A unified Python library for biological concept lookup across **29+ biomedical knowledge sources** including BioPortal, OLS, UMLS, ChEMBL, DisGeNET, and more. Built for bioinformatics researchers, knowledge graph developers, and biomedical data scientists.
58
+
59
+ ## ✨ Features
60
+
61
+ - **🔍 29+ Knowledge Sources**: Comprehensive coverage of biomedical ontologies and databases
62
+ - **⚡ Unified API**: Single interface for all sources with consistent results
63
+ - **🔄 Multi-source Annotation**: Cross-reference concepts across multiple databases
64
+ - **📊 RDF Export**: Convert results to RDF format for knowledge graphs
65
+ - **💾 Intelligent Caching**: Built-in caching system for performance optimization
66
+ - **🔄 Async Support**: Asynchronous operations for scalable applications
67
+ - **🧪 Comprehensive Testing**: Full test suite with unit and integration tests
68
+ - **📚 Rich Documentation**: Extensive examples and API documentation
69
+
70
+ ## 🚀 Quick Start
71
+
72
+ ### Installation
73
+
74
+ ```bash
75
+ pip install biomedical-knowledge-lookup
76
+ # or
77
+ poetry add biomedical-knowledge-lookup
78
+ # or from source
79
+ git clone https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup.git
80
+ cd biomedical-knowledge-lookup
81
+ poetry install
82
+ ```
83
+
84
+ ### Basic Usage
85
+
86
+ ```python
87
+ from knowledge_lookup import CentralKnowledgeLookup, KnowledgeSource
88
+
89
+ # Initialize the lookup system
90
+ lookup = CentralKnowledgeLookup()
91
+
92
+ # Search for concepts across multiple sources
93
+ results = await lookup.search_concepts(
94
+ "diabetes mellitus",
95
+ sources=[KnowledgeSource.BIOPORTAL, KnowledgeSource.OLS, KnowledgeSource.UMLS]
96
+ )
97
+
98
+ # Get detailed information about a specific concept
99
+ concept_details = await lookup.get_concept_details("DOID:9351")
100
+
101
+ # Export results to RDF
102
+ rdf_graph = lookup.export_to_rdf(results)
103
+ ```
104
+
105
+ ### Advanced Usage with Multi-source Annotation
106
+
107
+ ```python
108
+ from knowledge_lookup import MultiSourceAnnotator
109
+
110
+ # Annotate text with concepts from multiple sources
111
+ annotator = MultiSourceAnnotator()
112
+ annotations = await annotator.annotate_text(
113
+ "Type 2 diabetes is associated with insulin resistance",
114
+ confidence_threshold=0.7
115
+ )
116
+
117
+ # Get consensus annotations across sources
118
+ consensus = annotator.get_consensus_annotations(annotations)
119
+ ```
120
+
121
+ ## 📋 Supported Knowledge Sources
122
+
123
+ | Source | Description | API Key Required |
124
+ |--------|-------------|------------------|
125
+ | **BioPortal** | NCBI BioPortal ontology repository | Yes |
126
+ | **OLS** | Ontology Lookup Service | No |
127
+ | **UMLS** | Unified Medical Language System | Yes |
128
+ | **ChEMBL** | Chemical database | No |
129
+ | **DisGeNET** | Disease-gene associations | No |
130
+ | **DrugBank** | Drug information database | No |
131
+ | **Ensembl** | Genome annotation database | No |
132
+ | **Gene Ontology** | Molecular function/process/component | No |
133
+ | **HPO** | Human Phenotype Ontology | No |
134
+ | **Mondo** | Mondo Disease Ontology | No |
135
+ | **OpenTargets** | Target-disease associations | No |
136
+ | **PubChem** | Chemical information | No |
137
+ | **Reactome** | Pathway database | No |
138
+ | **UniProt** | Protein sequence database | No |
139
+ | **WikiData** | Structured knowledge base | No |
140
+ | **ZOOMA** | Ontology mapping service | No |
141
+ | **And 13+ more...** | See full list in documentation | Varies |
142
+
143
+ ## 🏗️ Architecture
144
+
145
+ ```
146
+ knowledge_lookup/
147
+ ├── adapters/ # Individual source adapters
148
+ ├── models.py # Data models and enums
149
+ ├── central_lookup.py # Main lookup coordinator
150
+ ├── multi_source_annotator.py # Cross-source annotation
151
+ ├── rdf_converter.py # RDF export utilities
152
+ ├── cache.py # Caching system
153
+ └── base.py # Abstract base classes
154
+ ```
155
+
156
+ ## 📖 Documentation
157
+
158
+ - **[Getting Started Guide](docs/getting_started.md)**
159
+ - **[API Reference](docs/api_reference.md)**
160
+ - **[Adapter Documentation](docs/adapters/)**
161
+ - **[Examples](examples/)**
162
+ - **[Contributing Guide](CONTRIBUTING.md)**
163
+
164
+ ### Additional Resources
165
+
166
+ - **[Documentation Improvement Summary](https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/wiki/Documentation-Improvement-Summary)**
167
+ - **[Project Overview](https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/wiki/Project-Overview)**
168
+
169
+ ### Example Notebooks
170
+
171
+ Explore interactive examples in the `examples/` directory:
172
+ - Basic concept lookup
173
+ - Multi-source annotation
174
+ - RDF export and knowledge graph construction
175
+ - Performance benchmarking
176
+
177
+ ## 🔧 Configuration
178
+
179
+ ### API Keys
180
+
181
+ Some sources require API keys. Set them as environment variables:
182
+
183
+ ```bash
184
+ export BIOPORTAL_API_KEY="your_key_here"
185
+ export UMLS_API_KEY="your_key_here"
186
+ # ... etc
187
+ ```
188
+
189
+ Or create a `.env` file:
190
+
191
+ ```env
192
+ BIOPORTAL_API_KEY=your_key_here
193
+ UMLS_API_KEY=your_key_here
194
+ ```
195
+
196
+ ### Advanced Configuration
197
+
198
+ ```python
199
+ from knowledge_lookup import LookupConfig
200
+
201
+ config = LookupConfig(
202
+ rate_limits={
203
+ KnowledgeSource.BIOPORTAL: 10, # requests per second
204
+ KnowledgeSource.OLS: 20,
205
+ },
206
+ cache_enabled=True,
207
+ cache_dir="./cache"
208
+ )
209
+
210
+ lookup = CentralKnowledgeLookup(config)
211
+ ```
212
+
213
+ ## 🧪 Testing
214
+
215
+ ```bash
216
+ # Run all tests
217
+ poetry run pytest
218
+
219
+ # Run specific test categories
220
+ poetry run pytest -m "unit" # Unit tests only
221
+ poetry run pytest -m "integration" # Integration tests
222
+ poetry run pytest -m "not slow" # Skip slow tests
223
+
224
+ # Run with coverage
225
+ poetry run pytest --cov=knowledge_lookup
226
+ ```
227
+
228
+ ## 🤝 Contributing
229
+
230
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
231
+
232
+ ### Adding New Adapters
233
+
234
+ 1. Extend `KnowledgeSourceAdapter` in `base.py`
235
+ 2. Implement required methods: `search_concepts()`, `get_concept_details()`
236
+ 3. Add to `adapters/__init__.py`
237
+ 4. Add tests in `tests/unit/test_adapters/`
238
+ 5. Update documentation
239
+
240
+ ### Development Setup
241
+
242
+ ```bash
243
+ git clone https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup.git
244
+ cd biomedical-knowledge-lookup
245
+ poetry install
246
+ poetry run pre-commit install
247
+ ```
248
+
249
+ ## 📄 License
250
+
251
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
252
+
253
+ ## 🙏 Acknowledgments
254
+
255
+ - Built upon the AID-PAIS Knowledge Graph project
256
+ - Thanks to all contributors and the biomedical research community
257
+ - Special thanks to the maintainers of the various knowledge sources
258
+
259
+ ## 📞 Support
260
+
261
+ - **Issues**: [GitHub Issues](https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/issues)
262
+ - **Discussions**: [GitHub Discussions](https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup/discussions)
263
+ - **Email**: jonas.heinicke@helmholtz-hzi.de
264
+
265
+ ## 🔬 Citation
266
+
267
+ If you use this library in your research, please cite:
268
+
269
+ ```bibtex
270
+ @software{heinicke_biomedical_knowledge_lookup_2025,
271
+ author = {Heinicke, Jonas},
272
+ title = {Biomedical Knowledge Lookup: Unified biological concept lookup across 29+ biomedical knowledge sources},
273
+ url = {https://github.com/JonasHeinickeBio/biomedical-knowledge-lookup},
274
+ version = {1.0.0},
275
+ year = {2025}
276
+ }
277
+ ```
278
+
279
+ ---
280
+
281
+ <p align="center">
282
+ <img src="https://img.shields.io/github/stars/JonasHeinickeBio/biomedical-knowledge-lookup?style=social" alt="GitHub stars">
283
+ <img src="https://img.shields.io/github/forks/JonasHeinickeBio/biomedical-knowledge-lookup?style=social" alt="GitHub forks">
284
+ </p>
285
+
286
+ <p align="center">
287
+ <em>⭐ Star this repository if you find it useful!</em>
288
+ </p>
289
+
@@ -0,0 +1,88 @@
1
+ knowledge_lookup/__init__.py,sha256=ZOJRz9VKF-BUxojjt_8ue5I7DH6AbS6Ggi_E0l0vljI,2540
2
+ knowledge_lookup/__main__.py,sha256=RCLwwlp3X1ETVCxp0K58e0hMHSJB9QOiUx6jzVQTMEI,7950
3
+ knowledge_lookup/adapters/__init__.py,sha256=Mx6NX0jkg9Pwrf9xzfk-hdbTsoSJlWcYa2nzSLHcAXE,4121
4
+ knowledge_lookup/adapters/additional_adapters.py,sha256=q7wp3gyXFMNmqrMVmt_QAtxmheBtBHJ-SjEoF3oqZEo,12593
5
+ knowledge_lookup/adapters/biolinker_adapter.py,sha256=6_HoC8qdarxvfHcdUTn5DaOdPRGChrXH0ciG69_Ao0s,19794
6
+ knowledge_lookup/adapters/bioontology_adapter.py,sha256=tSwNW0fgObuvnxajcWJlHH-pZ1nuK8YuvF7-dUTLMKM,16895
7
+ knowledge_lookup/adapters/bioportal_adapter.py,sha256=TxXvTP-RQv3_tYmE9tqNHFaHBvMoEuNi_-gt7PJjv3Y,7677
8
+ knowledge_lookup/adapters/chembl_adapter.py,sha256=XThvOZlZm8UPZD-VcOq0OWe2uEPZXzKkajGMCDajsQc,34709
9
+ knowledge_lookup/adapters/clinvar_adapter.py,sha256=GAYjpEHi-uvW439YiaCuVoafr77dnhy7foHWTWIFjw0,5594
10
+ knowledge_lookup/adapters/cosmic_adapter.py,sha256=YKlr5uS9uc-X3uh7L4PbijkLgnKguiFSqhUtlFzrDZw,4778
11
+ knowledge_lookup/adapters/dbpedia_adapter.py,sha256=jBs4CoA3d-Kp84mCgYjyz4EIASMYxrGmyJ1akJ20Wls,7712
12
+ knowledge_lookup/adapters/disgenet_adapter.py,sha256=-4INFSXgU8zfTwKdg3CxoOpp8zH1zdj3BUBvmtfxLCM,12297
13
+ knowledge_lookup/adapters/drugbank_adapter.py,sha256=2aZ__2AYeWuBNv4yfJaLLAgp3QmttclMlvqd-a0PUgY,4663
14
+ knowledge_lookup/adapters/ebiols_adapter.py,sha256=P2Ej6ekzRHHsYgyPzSJdi5J6OML3zPNG9ZNC9YMszns,371
15
+ knowledge_lookup/adapters/ensembl_adapter.py,sha256=jvqHUZ9NkcPbcFA6Lai0zGo1wM7btiER4Ji4k-EGjok,3669
16
+ knowledge_lookup/adapters/europepmc_adapter.py,sha256=HQazhILJ3C0St2TQZyGY4OUvz4wAL8F8u-C-g32NDHY,4902
17
+ knowledge_lookup/adapters/eutils_adapter.py,sha256=GSCvzrtqnWjukavZNh5lWvK1nmGmCdGxwChL-d6eo4w,13468
18
+ knowledge_lookup/adapters/geneontology_adapter.py,sha256=oCOIcQ_eA4x5KbNd_qDXiWAnNbrZOa-VP9GZ_tivero,3639
19
+ knowledge_lookup/adapters/hgnc_adapter.py,sha256=iDE7S5fTUEEuq-j0qLd2e9Spb_4vyJRTiMV4c3y2DQM,5268
20
+ knowledge_lookup/adapters/hpo_adapter.py,sha256=A9Z7ijsZwxgniBg7Hi1ei3yTR6IQtMrVybL9Dz8dNSU,4161
21
+ knowledge_lookup/adapters/interpro_adapter.py,sha256=eDmJiIjdP-ZNIBR7jUyKaXCmc6U_txz-LbpUXo0_DCo,4925
22
+ knowledge_lookup/adapters/kegg_adapter.py,sha256=uy5FosPj2IRwbPYBpgn3QcQz7fQds1knFg_nFJ4Jn5k,5268
23
+ knowledge_lookup/adapters/mondo_adapter.py,sha256=b77ZnSxXpFkaL5T2QaI1ZV5x6jFh9cBaFNQx_oU2sLg,4990
24
+ knowledge_lookup/adapters/obofoundry_adapter.py,sha256=uVr8oajacN4mFWoLT9Kxg_kilx1Vw0RwcVSTRXRZa90,2828
25
+ knowledge_lookup/adapters/ols_adapter.py,sha256=pXdCI12U9YI5ztlG2Mxcw8YL-JIuquRe51OGJK_8l0I,7859
26
+ knowledge_lookup/adapters/omim_adapter.py,sha256=YSFbLEuZK2uEyHdSQ82wTm47YoL1aiJHNXbE8xr-lAs,4931
27
+ knowledge_lookup/adapters/opentargets_adapter.py,sha256=f9ujtcbMAxeTS3WbHec8M0kC5XYxV2P-Zu6oHW71C-0,6345
28
+ knowledge_lookup/adapters/oxo_adapter.py,sha256=7_S66upLX-iP_7vhm8b_9yEQQWxQ8Qufm-_FHtmCum8,13410
29
+ knowledge_lookup/adapters/pdb_adapter.py,sha256=15AL0nBbQI6ObgHxJDYxDNeq5GvN-AdmEXQTLBlchog,5124
30
+ knowledge_lookup/adapters/pfam_adapter.py,sha256=4csk5oVNbCFM2uQsj5RC76kT1yEftguD7MwPgcapiNc,4410
31
+ knowledge_lookup/adapters/pubchem_adapter.py,sha256=TUaQCfJJ89PWKez6zN8a2F-k6-iJYLzrzTHeC4hg2Zs,4082
32
+ knowledge_lookup/adapters/quickgo_adapter.py,sha256=QdQD7EIFc8iwzQXYZs5b3fznh9aD9449VQwqNCCnzI4,9880
33
+ knowledge_lookup/adapters/reactome_adapter.py,sha256=28ZKw1dgmd-WOc4XCg_3tmpDYqRVAv9djVNe_i2gbaE,4652
34
+ knowledge_lookup/adapters/string_adapter.py,sha256=lW_ZHgh2SGRCg2Oki4kqM1706uN8xzn9umdWMToJLYY,4947
35
+ knowledge_lookup/adapters/tyto_adapter.py,sha256=cXLvjMtriGQtsNXHEayaglyZ1nW9ahg-jzBZd2JW-_w,1779
36
+ knowledge_lookup/adapters/umls_adapter.py,sha256=Azx-52swjlxbZlqg4VxkS4Db0awijdhLXbi4XrU9MG8,6878
37
+ knowledge_lookup/adapters/unichem_adapter.py,sha256=eBGsMIUYLmjepLtErYUiTVdmM1eb6cfkPeHjY0l9S18,27760
38
+ knowledge_lookup/adapters/uniprot_adapter.py,sha256=PabeLHI9TmpyrgMF7QYkJWWw5N1jI5508qB9sQLVQzI,4546
39
+ knowledge_lookup/adapters/wikidata_adapter.py,sha256=3nBoIYO02rhx6VYyliuTktti6qlgL8N1YC9hy3htOFw,8364
40
+ knowledge_lookup/adapters/zooma_adapter.py,sha256=Z88te7sJfjdxf8aLxJT6XyVglV3QmSdsgZzg418cZbQ,3112
41
+ knowledge_lookup/base.py,sha256=laOKWNpun0xj2diPTPTV6C6AK-uEWpJUkAWxAcoX3rk,7534
42
+ knowledge_lookup/benchmarking.py,sha256=23udWz0GRJzGbn6FBN9-4l2gWBL42YS7Fz-dJ_aBnVI,6628
43
+ knowledge_lookup/cache.py,sha256=RMsZ4Xz8Ew3YZ40qJDWYG4ZNKKYqiGQpW3t8cSEkrZQ,19680
44
+ knowledge_lookup/cache_demo.py,sha256=dJK8wkfW01B5L3rrVvt3G1310cOEvsQS2E1gJnei8RA,5176
45
+ knowledge_lookup/central_lookup.py,sha256=kSt8Mufq91nbxNAk3y1QPZ7QlAf4kDyeY3-ObthRtZs,43223
46
+ knowledge_lookup/examples.py,sha256=fARpXgAedKPUp9hQzJwKXEcJB1kq4ZBYVmaJdbOJpvI,13296
47
+ knowledge_lookup/exports.py,sha256=mXKQsNB8yZ9mJ8EK-iKf7bcDA1WlbvVLdVKp_euG4SU,4104
48
+ knowledge_lookup/factory.py,sha256=OY5SXCSDJokk1UlbxuhBzCCT1GnH_IDu7zhiFwgJ3FY,713
49
+ knowledge_lookup/generated_models/__init__.py,sha256=PbbMi3kS1jJqo_RfJjqz1Bsuiqmxtjg1yglmJzQrY10,27
50
+ knowledge_lookup/generated_models/biomedical_knowledge_models.py,sha256=MQsyVaa04CChUD-CZBOgRjAze9EUfGtIi3ooyGU-Xoc,26834
51
+ knowledge_lookup/generated_models/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ knowledge_lookup/helpers.py,sha256=0sfXxx60q_wTMHq6C6wSk36DuTwO5zBAA_rqYgSimug,2737
53
+ knowledge_lookup/models.py,sha256=q38Ye0b74B8zy6IXfnNdipszVL3N_AZUooUnvhgVogE,12235
54
+ knowledge_lookup/multi_source_annotator.py,sha256=YX9mck08P7Yk-j2hiDHhu3xCUU_H3-Ll-k8LgMMf7l4,26917
55
+ knowledge_lookup/ontology_concept_loader.py,sha256=hv-0mxq5BBhv0E8WqHDVyv3CH99luabkXdMZI81M0vQ,8705
56
+ knowledge_lookup/rdf_converter.py,sha256=SH4ZF9B4swIbKOGIrp8u2dl56VpjkBFrpMCzY292a8Y,34347
57
+ knowledge_lookup/umls/CROSSWALK_CLIENT_README.md,sha256=7eSuZt3QbiDFbvVQfmO9Y5qaCZ9LTK1wH6J-rCdD9AM,13342
58
+ knowledge_lookup/umls/README.md,sha256=OmDK0wFQFN18-YAKfIxvvx7WgkzSxuP7RFFWMLx5X2I,17650
59
+ knowledge_lookup/umls/auth.py,sha256=39-nvhVYwla9ltta-mnzskiRPXlDmBUUBuF_C_Hzmlc,5968
60
+ knowledge_lookup/umls/client.py,sha256=HoWAG73TBfHiFPO5Nb7XnzIjHRjVC6HPoLesRaEDQiY,2123
61
+ knowledge_lookup/umls/code_lookup_client.py,sha256=7kzUsSA-WqmrMXXQolr0y2mcqX0kNnwqpyXhBhC-PKY,21341
62
+ knowledge_lookup/umls/concept_lookup_client.py,sha256=ARwYsZCg9e56TuFBdirbiiwO7dXzC0IWj6mpJkvZP5E,20052
63
+ knowledge_lookup/umls/concepts.py,sha256=Pv2zrhm54V5KByQ1rowl62eNqnolzWB8n-LjNdjorUM,11047
64
+ knowledge_lookup/umls/crosswalk_client.py,sha256=h_Ids7wfqk5vbGP_p4PvuU_6B1jEn5QLZ-QGmpSHR0o,20373
65
+ knowledge_lookup/umls/enhanced_search_client.py,sha256=4M_0w_edj2XZELQNL1jFW3bUx1zyAqadlJTII3HW9hM,29041
66
+ knowledge_lookup/umls/hierarchy_walker_client.py,sha256=QFTPqKKG5I6e7wsTkQv3T20X-kzEgSjTndkxrZ-nn5g,25145
67
+ knowledge_lookup/umls/main_client.py,sha256=fZjx6D0quMHdnVOlEdrfQZ3byoqXJUvxauXCDyVEac0,10962
68
+ knowledge_lookup/umls/metadata.py,sha256=JBGIvCHoxiT4myh9XUbIBvfuNhUuBTACFbhsdH4GtLc,1805
69
+ knowledge_lookup/umls/models.py,sha256=Cok9QXaohL3YLdukAZjti1R92oyA8gFGFap3MxkG99A,1569
70
+ knowledge_lookup/umls/names_retrieval_client.py,sha256=e8J3xo2J7KCee0b2G2DzGavLvYPk8xlDjHi0NB7Kbbk,24424
71
+ knowledge_lookup/umls/search.py,sha256=DYEOfDJB7nUkScnGPW1vIC8jTRFmErO7N4MdzY2q_LY,5722
72
+ knowledge_lookup/umls/semantic_types_client.py,sha256=w9Rz46o9doHDUypTQZ15jFRe0HVL7v4GXq_eVek92Jo,20544
73
+ knowledge_lookup/umls/string_concept_client.py,sha256=YL5abg9QHKQI9aaXlo9HfromVAylw5QdyEtV7zGGpMI,21370
74
+ knowledge_lookup/umls/tests/__init__.py,sha256=mZV26WotYTwCk9TApDuQ6fLpm0d3ng6opC9dXZGrrkQ,396
75
+ knowledge_lookup/umls/tests/integration/__init__.py,sha256=3NyE-3okgRcncRql7Ui0WDTRpNExrNGkaGyIv3keukI,179
76
+ knowledge_lookup/umls/tests/integration/test_umls_client_integration.py,sha256=lNSOkpdnmqE2WXcbzEd8dHYqfefpo9l63fA59DbxztY,20039
77
+ knowledge_lookup/umls/tests/test_runner.py,sha256=_W5at9X7iDpsOnrGwQLtZUzxyeL3zy5NJxj6xZ9bklU,8117
78
+ knowledge_lookup/umls/tests/unit/__init__.py,sha256=NubE8PvsaBJMQrmE-KvRpbRWwLOUSb5k1UfRurUDDgo,192
79
+ knowledge_lookup/umls/tests/unit/test_code_lookup_client.py,sha256=lI_8l4C730Dxj8ciuIIYUw75edrDXoCSF7tMKcLPnRQ,16569
80
+ knowledge_lookup/umls/tests/unit/test_semantic_types_client.py,sha256=TdNxsNaQYPQs55WVINUxe6kalhZWXRMpHUlTN7SvCxw,14610
81
+ knowledge_lookup/utils/retry_utils.py,sha256=zC3WKMNqnG2fdPyd4Dfvb5oIlkUtZOnDYQMA8_4RY8g,7179
82
+ knowledge_lookup/utils/timing_utils.py,sha256=9gXGnWlOoe0pKCxU7iFxIPvTjzpo4pmMBgmRPN2JfWg,15528
83
+ knowledge_lookup/validation_models.py,sha256=J19sBZgniuO1NwDMOf8O_h_o-R_cU4ODM9_tV310bgw,8614
84
+ biomedical_knowledge_lookup-1.0.0.dist-info/METADATA,sha256=e4GxFhLNzc4IqNQQzm876tjFRtg5QRsvDaqWVgODafo,10896
85
+ biomedical_knowledge_lookup-1.0.0.dist-info/WHEEL,sha256=EGEvSphFYqXKs23-kQBeyNoJP1nrT8ZJKQoi5p5DYL8,88
86
+ biomedical_knowledge_lookup-1.0.0.dist-info/entry_points.txt,sha256=T_UEy-N2CyIHQ5AaBoaaXhgwiYuXRhTAmvlxkvag36I,66
87
+ biomedical_knowledge_lookup-1.0.0.dist-info/licenses/LICENSE,sha256=06lTfw5Gb-5nmTaDki-x3jNeqWym5G0jrk-yr8WONEs,1071
88
+ biomedical_knowledge_lookup-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.4.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ knowledge-lookup=knowledge_lookup.__main__:app
3
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Jonas Heinicke
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.
@@ -0,0 +1,112 @@
1
+ """
2
+ Knowledge Lookup Package Initialization
3
+
4
+ Central lookup system for biological concept integration across multiple knowledge sources.
5
+ """
6
+
7
+ from .adapters import (
8
+ ADAPTER_CLASSES,
9
+ BioLinkerAdapter,
10
+ BioOntologyAdapter,
11
+ BioPortalAdapter,
12
+ DBpediaAdapter,
13
+ DisGeNETAdapter,
14
+ DrugBankAdapter,
15
+ EBIOLSAdapter,
16
+ EnsemblAdapter,
17
+ EUtilsAdapter,
18
+ GeneOntologyAdapter,
19
+ HPOAdapter,
20
+ KEGGAdapter,
21
+ MondoAdapter,
22
+ OBOFoundryAdapter,
23
+ OLSAdapter,
24
+ OpenTargetsAdapter,
25
+ OxOAdapter,
26
+ PubChemAdapter,
27
+ QuickGOAdapter,
28
+ ReactomeAdapter,
29
+ TytoAdapter,
30
+ UMLSAdapter,
31
+ UniChemAdapter,
32
+ UniProtAdapter,
33
+ WikidataAdapter,
34
+ ZoomaAdapter,
35
+ )
36
+ from .cache import KnowledgeLookupCache, get_cache, init_cache
37
+ from .central_lookup import CentralKnowledgeLookup
38
+ from .factory import create_knowledge_lookup
39
+ from .models import (
40
+ ConceptIdentifier,
41
+ ConceptMapping,
42
+ ConceptType,
43
+ KnowledgeSource,
44
+ LookupConfig,
45
+ LookupResult,
46
+ UnifiedConcept,
47
+ )
48
+ from .multi_source_annotator import (
49
+ AnnotationConfidence,
50
+ ConceptAgreement,
51
+ MultiSourceAnnotationResult,
52
+ MultiSourceAnnotator,
53
+ SourceAnnotation,
54
+ )
55
+
56
+ # Make key classes available at package level
57
+ __all__ = [
58
+ # Main classes
59
+ "CentralKnowledgeLookup",
60
+ "create_knowledge_lookup",
61
+ "MultiSourceAnnotator",
62
+ # Caching system
63
+ "KnowledgeLookupCache",
64
+ "get_cache",
65
+ "init_cache",
66
+ # Data models
67
+ "KnowledgeSource",
68
+ "ConceptType",
69
+ "ConceptIdentifier",
70
+ "ConceptMapping",
71
+ "UnifiedConcept",
72
+ "LookupResult",
73
+ "LookupConfig",
74
+ # Multi-source annotation
75
+ "AnnotationConfidence",
76
+ "SourceAnnotation",
77
+ "ConceptAgreement",
78
+ "MultiSourceAnnotationResult",
79
+ # Adapters
80
+ "ADAPTER_CLASSES",
81
+ "UMLSAdapter",
82
+ "UniChemAdapter",
83
+ "BioPortalAdapter",
84
+ "OLSAdapter",
85
+ "WikidataAdapter",
86
+ "BioLinkerAdapter",
87
+ "DBpediaAdapter",
88
+ "OxOAdapter",
89
+ "BioOntologyAdapter",
90
+ "MondoAdapter",
91
+ "UniProtAdapter",
92
+ "DisGeNETAdapter",
93
+ "OpenTargetsAdapter",
94
+ "ReactomeAdapter",
95
+ "PubChemAdapter",
96
+ "DrugBankAdapter",
97
+ "GeneOntologyAdapter",
98
+ "HPOAdapter",
99
+ "OBOFoundryAdapter",
100
+ "EBIOLSAdapter",
101
+ "EnsemblAdapter",
102
+ "KEGGAdapter",
103
+ "QuickGOAdapter",
104
+ "ZoomaAdapter",
105
+ "TytoAdapter",
106
+ "EUtilsAdapter",
107
+ ]
108
+
109
+ # Package metadata
110
+ __version__ = "1.0.0"
111
+ __author__ = "AID-PAIS Knowledge Graph Team"
112
+ __description__ = "Unified biological concept lookup across multiple knowledge sources"