Perform a public-data survival analysis on TCGA-LUAD.

Use the task specification in task_spec.json as the primary source of truth.
At a high level, your task is to:
- download the required TCGA-LUAD clinical and gene-expression data from GDC
- extract the tpm_unstranded expression metric for KRAS (not raw counts)
- when a patient has multiple primary-tumor samples, keep only the one whose sample submitter_id is lexicographically smallest
- build a KRAS-centered patient-level survival cohort
- derive overall survival from the available clinical follow-up fields
- stratify the cohort into KRAS high/low groups using a cohort-median split
- fit Kaplan-Meier, log-rank, and Cox proportional hazards analyses

Write all required outputs under output/:
- cohort.csv
- km_plot.png
- cox_results.json
- analysis.R
