#!/usr/bin/env bash
# Reproduce the MRI 2-slice observation-geometry experiment end to end.
set -euo pipefail
cd "$(dirname "$0")"

export OMP_NUM_THREADS=2
PY=/home/ubuntu/joulebeat-evolve/outreach/env/bin/python

mkdir -p data logs figs

ZIP_URL="https://people.ee.ethz.ch/~organmot/downloads/data_all_subj.zip"
ZIP_PATH="data/data_all_subj.zip"

if ! ls data/motionfield_subjA_cyc1_ds5.txt >/dev/null 2>&1; then
  echo "downloading ETH CVL 4DMRI dataset..."
  if [ ! -f "$ZIP_PATH" ]; then
    curl -fsSL -o "$ZIP_PATH" "$ZIP_URL"
  fi
  unzip -o "$ZIP_PATH" -d /tmp/mf_extract_run \
    "motionfields/motionfield_subjA_cyc*_ds5.txt" \
    "motionfields/motionfield_subjB_cyc*_ds5.txt" \
    "motionfields/motionfield_subjA_cyc1_ds15.txt" \
    "motionfields/motionfield_subjA_cyc2_ds15.txt" \
    "motionfields/motionfield_subjA_cyc3_ds15.txt" \
    "motionfields/motionfield_subjA_cyc4_ds15.txt"
  cp /tmp/mf_extract_run/motionfields/*.txt data/
fi

START_TS=$(date +%s)

echo "=== step 1/2: experiment.py (axis gate + PCA/low-rank reconstruction, 9-fold x 3-seed) ==="
$PY experiment.py

echo "=== step 2/2: analyze.py (results.json + figs) ==="
$PY analyze.py

END_TS=$(date +%s)
RUNTIME=$((END_TS - START_TS))

$PY - "$RUNTIME" <<'EOF'
import json, sys
runtime = int(sys.argv[1])
with open("results.json") as f:
    r = json.load(f)
r["runtime_sec"] = runtime
with open("results.json", "w") as f:
    json.dump(r, f, ensure_ascii=False, indent=2)
EOF

echo "done. results.json + figs/*.png written."
