| # 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." | |