|
--- |
|
title: MCP Res |
|
emoji: π |
|
colorFrom: red |
|
colorTo: gray |
|
sdk: docker |
|
sdk_version: 1.46.0 |
|
app_file: app.py |
|
pinned: false |
|
short_description: Research |
|
--- |
|
|
|
MedGenesis AI |
|
MedGenesis AI is a biomedical literature discovery workbench that unifies live data from PubMed, arXiv, MyGene.info, ClinicalTrials.gov v2, DisGeNET, openFDA, Open Targets, DrugCentral, UMLS and moreβthen lets you explore the evidence in a rich Streamlit interface powered by OpenAI or Gemini LLMs. |
|
|
|
|
|
ββββββββββββββββββββββββββββββββββββββββββββββ |
|
β Streamlit UI (app.py) β |
|
β β’ Results / Genes / Trials / Graph tabs β |
|
β β’ PDF / CSV export & follow-up Q&A β |
|
ββββββββββββββββ¬ββββββββββββββββββββββββββββββ |
|
β async calls |
|
ββββββββββββββββΌββββββββββββββββββββββββββββββ |
|
β Orchestrator (mcp/orchestrator.py) β |
|
β β’ pulls PubMed, arXiv β |
|
β β’ keyword extraction (spaCy) β |
|
β β’ fans-out to MyGene, CT.gov v2, UMLSβ¦ β |
|
β β’ merges & summarises with LLM β |
|
ββββββββββββββββ¬ββββββββββββββββββββββββββββββ |
|
β helpers (mcp/*.py) |
|
βΌ |
|
ββββββββββββββββββββββββββββββββββββββββββββββ |
|
β External APIs + local TSV (DrugBank) β |
|
ββββββββββββββββββββββββββββββββββββββββββββββ |
|
|
|
|
|
|
|
π Features |
|
Domain Source / API What you get |
|
Literature PubMed + arXiv titles, abstracts, authors, year |
|
Gene info MyGene.info + NCBI Gene symbol, name, GO, ClinVar, MeSH definitions |
|
Trials ClinicalTrials.gov v2 NCT ID, phase, status, start date |
|
Disease β gene DisGeNET top associations & scores |
|
Drug safety openFDA, DrugCentral adverse events, approvals, MoA |
|
Graph edges Open Targets GraphQL geneβdisease-drug links (+ OT score) |
|
Ontology UMLS, HPO, Wikidata concept CUI, phenotype look-ups |
|
|
|
π Quick start |
|
bash |
|
Copy |
|
Edit |
|
# clone repo |
|
git clone https://github.com/your-org/medgenesis.git |
|
cd medgenesis |
|
|
|
# build & run locally |
|
python -m venv .venv && source .venv/bin/activate |
|
pip install -r requirements.txt |
|
python -m spacy download en_core_web_sm |
|
streamlit run app.py |
|
app.py starts a Streamlit server on localhost:8501. |
|
Enter a biomedical question (e.g. βCRISPR glioblastoma therapyβ) and press Run Search π. |
|
|
|
π³ Docker / Hugging Face Space |
|
The included Dockerfile is CPU-only and downloads the spaCy model at build time: |
|
|
|
bash |
|
Copy |
|
Edit |
|
docker build -t medgenesis . |
|
docker run -p 7860:7860 -e OPENAI_API_KEY=sk-... medgenesis |
|
HF Spaces: push the repo, set the environment secrets below, and Spaces will pick up Dockerfile. |
|
|
|
π Environment variables |
|
Variable Description |
|
OPENAI_API_KEY OpenAI account key (GPT-4o, GPT-4o-mini β¦) |
|
GEMINI_KEY Google Generative AI key (Gemini 1.5 Flash) |
|
UMLS_KEY UMLS Licensing key (ticket auth) |
|
DISGENET_KEY DisGeNET Bearer token (optional) |
|
PUB_KEY NCBI E-utils key (optional, boosts quota) |
|
BIO_KEY NCBI E-utils key for Gene/MeSH (optional) |
|
|
|
Set them in .env, your shell, or HF Secrets. |
|
|
|
ποΈ Local data |
|
mcp/data/drugbank_open_structured_drug_links.tsv β DrugBank Open Data |
|
Download from the DrugBank Open-Data page and place it here. |
|
|
|
The file is lazy-loaded and cached; the app still works without it. |
|
|
|
π§ͺ Tests |
|
bash |
|
Copy |
|
Edit |
|
pytest tests/ |
|
Unit tests mock external APIs and verify parsing, caching and orchestrator merges. |
|
|
|
π οΈ Contributing |
|
Fork & create a feature branch. |
|
|
|
Follow Conventional Commits for PR titles. |
|
|
|
Run pre-commit install to auto-format with black & ruff. |
|
|
|
Submit a PR; GitHub Actions will run lint + tests. |
|
|
|
π License |
|
Apache 2.0 β free for research and commercial use. |
|
API terms of each external provider still apply. |
|
|
|
Happy discovering! |