File size: 1,808 Bytes
089d665 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | """
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())
|