#!/bin/bash
# =============================================================================
# CIBERSORTx HiRes -- SINGULARITY version
# Sample-level cell-type-specific expression imputation.
# =============================================================================
set -euo pipefail

# ---- USER CONFIG -----------------------------------------------------------
EMAIL="jin.yan1@wustl.edu"
TOKEN="$(cat "$HOME/.cibersortx_token")"

BASE="$HOME/TaRGET_II/cibersortx"
SIF="${BASE}/sif/cibersortx_hires.sif"
INDIR="${BASE}/input"
OUTDIR="${BASE}/output_hires"

MIXTURE="raw_bulk_counts.csv"
SIGMATRIX="CIBERSORTx_Job17_cibersortx_ref_main_4_inferred_phenoclasses.CIBERSORTx_Job17_cibersortx_ref_main_4_inferred_refsample.bm.K999.txt"   # from Fractions step; symlink into INDIR
GEPS="CIBERSORTx_Job17_cell_type_sourceGEP.txt"
# ----------------------------------------------------------------------------

mkdir -p "$OUTDIR"

singularity exec \
  --containall \
  --bind "${INDIR}:/src/data" \
  --bind "${OUTDIR}:/src/outdir" \
  "$SIF" \
  /src/CIBERSORTxHiRes \
  --username "$EMAIL" \
  --token "$TOKEN" \
  --mixture "$MIXTURE" \
  --sigmatrix "$SIGMATRIX" \
  --rmbatchSmode TRUE \
  --sourceGEPs "$GEPS" \
  --threads 20 \
  --QN FALSE \
  --variableonly TRUE

echo "[DONE] HiRes output -> $OUTDIR"
