#!/usr/bin/env bash # DPYD baseline classifier — full pipeline (run EXPLICITLY; not part of scaffolding). # No Vertex Workbench. Runs locally or in a short-lived Cloud Run job. set -euo pipefail BUCKET="${BUCKET:-gs://anukriti-ml-artifacts/dpyd-classifier}" cd "$(dirname "$0")" echo "[1/5] (re)pull gnomAD SAS/global AF for ALL ClinVar DPYD variants (full, uncapped)" python -m src.fetch_gnomad --clinvar data/clinvar_dpyd.tsv --out data/gnomad_dpyd_sas.csv --cap 0 echo "[2/5] feature engineering -> training_data.csv + inference_set.csv" python -m src.features echo "[3/5] train RF/XGB/LightGBM + 5-fold CV (carries small-N caveat; use --force)" python -m src.train --train data/training_data.csv --outdir . --n-splits 5 --force --upload "$BUCKET" echo "[4/5] upload training data" gcloud storage cp data/training_data.csv "$BUCKET/training_data.csv" echo "[5/5] inference on candidate list (provide a REAL Scaria variant CSV)" if [[ -f data/scaria_variants.csv ]]; then python -m src.infer --variants data/scaria_variants.csv --models models \ --out results/scaria_variant_rankings.csv gcloud storage cp results/scaria_variant_rankings.csv "$BUCKET/results/scaria_variant_rankings.csv" else echo " SKIP: data/scaria_variants.csv not present (Scaria et al. list unresolved)." fi echo "done."