Modern re-implementation of the (now unavailable) Pathview Web server.
Goal: Provide a web UI + REST API to run Pathview (Bioconductor R package) jobs reproducibly, securely, and at scale.
apps/api-- FastAPI service (job submission, status, download links)apps/worker-- Python RQ worker that runs Pathview viaRscriptapps/web-- UI (Next.js) that talks to the API- Docker-first: this project is designed to run as containers (Compose for local/prod).
Prereqs: Docker + Docker Compose.
docker compose up --buildThen:
- API: http://localhost:8000/docs
- Web UI: http://localhost:3000
Submit a job (upload first, then create job):
curl -X POST http://localhost:8000/v1/uploads \
-F "file=@examples/gene_data.tsv" \
-F "format=tsv"
curl -X POST http://localhost:8000/v1/jobs \
-H "Content-Type: application/json" \
-d '{
"species": "mmu",
"pathway_id": "04110",
"gene_data": { "upload_id": "<upload_id>", "format": "tsv" },
"options": { "gene_idtype": "symbol" }
}'Check health:
curl http://localhost:8000/healthzEnvironment variables used by containers:
REDIS_URL(api/worker)STORAGE_DIR(api/worker)JOB_TTL_SECONDS(api/cleanup)CLEANUP_INTERVAL_SECONDS(cleanup)NEXT_PUBLIC_API_BASE(web)
Defaults are set in docker-compose.yml. To override for production, copy and edit:
cp .env.example .envdocs/ARCHITECTURE.md- system design and runtime flowdocs/API.md- REST API detailsdocs/SECURITY.md- threat model and controlsdocs/PLAN.md- roadmap and milestones
Use the production compose file:
cp .env.example .env
docker compose -f docker-compose.prod.yml up -d --build- Uploads must be TSV or CSV. The API validates delimiters before accepting files.
- Gene data files must have gene IDs in the first column and numeric values in the remaining columns.
- Results are packaged as a ZIP that includes outputs, logs, and inputs.
MIT (see LICENSE).