Skip to content

Repository files navigation

PathIQ

Problem first: pathology demand is rising faster than diagnostic capacity. WHO/IARC estimates 20M new cancer cases in 2022 and projects 35M by 2050 (+77%), increasing downstream pathology workload (IARC, 2024). On workforce, CAP-backed modeling literature estimated US pathologist supply could decline from ~17,500 FTE (2010) to ~14,000 by 2030 if training/replacement dynamics stay constrained (Arch Pathol Lab Med, 2015); CAP continues to flag demand outpacing supply (CAP, 2026).

PathIQ is decision-support software for IHC: tissue context, intensity scoring, uncertainty, and Grad-CAM overlays so experts spend time on judgment, not repetitive counting.

Origin story (not the product boundary): the stack began with ZNF835 research, then generalized to any biomarker.

Business model, pricing test range, GTM, regulatory framing, and pathologist outreach tracker: see BUSINESS.md. For the design-partner sequence and YC-readiness gates, see docs/PILOT_PLAN.md.

Public data for a real demo: see docs/PUBLIC_IHC_DATASETS.md (includes TUPAC16/HER2 pointers). Ship a live demo before investor outreach: run the bootstrap script below, open /demo, then replace synthetic weights with a public IHC run.


Try it in two minutes (synthetic weights, end-to-end)

Model artifacts are gitignored. After clone, from the repository root:

cd backend && python3.12 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cd ..
python scripts/bootstrap_minimal_demo.py
uvicorn backend.api:app --reload

Or from the repo root (picks 3.12 / 3.11 / 3.10 automatically): bash scripts/setup_backend_venv.sh

Install error: “No matching distribution found for tensorflow” — your venv is almost certainly Python 3.13 or 3.14 (pip lines showing cp313 / cp314 mean that). TensorFlow has no wheel for those versions yet. Delete backend/.venv, install Python 3.12, and recreate the venv with python3.12 -m venv .venv (not plain python3). If you use Conda, conda create -n pathiq python=3.12 avoids the (base) interpreter accidentally building a 3.14 venv.

In another terminal:

cd frontend && npm install && npm run dev
  • API: http://127.0.0.1:8000 (docs at /docs)
  • UI: http://127.0.0.1:5173 — use /demo for four preloaded patches (no upload), or /analyze for your own JPG/PNG.
  • Pilot page: http://127.0.0.1:5173/pilot — summarizes the design-partner plan, success metrics, and claims discipline.

bootstrap_minimal_demo.py builds a tiny synthetic dataset and trains .keras checkpoints so the app runs from a fresh clone. This is demo infrastructure, not model validation. Replace with a public HER2/IHC cohort before investor claims.

For real-data training, use scripts/train_public_her2.py with a manifest CSV (template: scripts/manifest_template.csv), or the one-command wrapper:

bash scripts/run_public_her2.sh /absolute/path/to/manifest.csv /absolute/path/to/dataset_root

Tech stack (second in the pitch deck)

  • Backend: FastAPI — GET /health, POST /analyze, POST /batch
  • Models: MobileNetV2 heads, Monte Carlo dropout uncertainty, Grad-CAM-style maps (see backend/utils/gradcam.py)
  • Training: python -m backend.model.train, python -m backend.model.train_tissue (clinical metrics, confusion matrix export)

Dataset layout for your own labels:

  • Intensity: data/0_negative/, data/1_weak/, data/2_moderate/, data/3_strong/
  • Tissue: data/tissue/<tumor|stroma|...>/

Reference notebook (gist)

The linked gist is a tabular sklearn teaching notebook (not IHC images). It is useful for metrics literacy; patch training entry points are the backend.model.* modules above.

Pre-fundraise checklist (high priority)

  • Train and ship real weights from a public IHC cohort (recommended first target: TUPAC16/HER2-style labels).
  • Manually review 20–30 Grad-CAM overlays on real slides and verify activations are anatomically sensible.
  • Capture one pathologist usage signal (email/quote/LOI) and paste into BUSINESS.md.
  • Convert the first lab conversation into the scoped five-week pilot in docs/PILOT_PLAN.md.
  • Rename repo from ZNF to pathiq in GitHub settings before sharing investor links.

Regulatory (investor table stakes — not legal advice)

PathIQ is positioned as clinical decision support, not a standalone diagnostic. For U.S. commercialization, device classification and CDS policy depend on exact indications, UX, and labeling; many imaging products pursue 510(k) when they qualify as devices. Engage FDA-qualified regulatory counsel early; timelines are order-of-magnitude (often discussed as ~12–18 months for moderate-risk 510(k) programs vs multi-year PMA-class work for novel Class III diagnostics). Do not ship to patients based on this README alone.


curl

curl -s http://127.0.0.1:8000/health
curl -X POST "http://127.0.0.1:8000/analyze" \
  -H "Content-Type: multipart/form-data" \
  -F "image=@/absolute/path/to/slide.png"

Demo assets

  • frontend/public/demo/slide1.pngslide4.png — generated via python scripts/generate_synthetic_patch.py (committed for static hosting). Re-run bootstrap to refresh from training patches if desired.

Status

Research / educational prototype. Not FDA-cleared. Not validated for clinical diagnosis. Use only with appropriate oversight and labeling.

Releases

Packages

Contributors

Languages