gemeo-twin-stack / examples /quickstart.py
timmers's picture
GEMEO world-model — initial release (module + NeuralSurv ckpt + RareBench v49 + KG embeddings)
089d665 verified
"""
GEMEO World Model — Quickstart
Minimal example: build a digital twin from a free-text clinical case and
inspect each inference mode.
⚠️ Research only — not a medical device. No clinical use.
"""
import asyncio
import sys
# This repo lays out the module under src/. Either install it or:
sys.path.insert(0, "src")
from gemeo import build_gemeo # noqa: E402
async def main() -> None:
twin = await build_gemeo(
case_text=(
"Menino, 5 anos, ataxia progressiva desde os 18 meses, "
"telangiectasia ocular, AFP sérica 320 ng/mL, "
"infecções respiratórias recorrentes."
),
patient_info={"age": 5, "sex": "M"},
context={"sus_region": "SP"},
)
print("=== Diagnostic mode ===")
for i, dx in enumerate(twin.diagnoses[:5], 1):
print(f" {i}. {dx}")
print("\n=== Cohort retrieval (patients-like-mine) ===")
for member in twin.cohort.members[:5]:
print(f" - {member}")
print("\n=== Trajectory horizons ===")
print(f" 6m: {twin.trajectory.horizons.get('6m')}")
print(f" 12m: {twin.trajectory.horizons.get('12m')}")
print(f" 24m: {twin.trajectory.horizons.get('24m')}")
print("\n=== Risk / survival ===")
sc = twin.risk.survival_curve
print(f" 12m alive: {sc.get('12m')}")
print(f" 36m alive: {sc.get('36m')}")
print(f" 72m alive: {sc.get('72m')}")
print("\n=== Drug repurposing candidates ===")
for d in twin.drugs.candidates[:5]:
print(f" - {d}")
print("\n=== Active-learning: next best questions ===")
for q in twin.next_questions[:3]:
print(f" - {q}")
print("\n=== SUS / PCDT compliance ===")
print(f" PCDT URL: {twin.sus_check.pcdt_url}")
if __name__ == "__main__":
asyncio.run(main())