#!/usr/bin/env bash
# param-sweep -- run a command across parameter combinations
# Usage: param-sweep <command> <param_file>
# param_file: TSV, one combination per line
set -euo pipefail
cmd="${1:?Usage: param-sweep <command> <params.tsv>}"
params="${2:?Provide a TSV parameter file}"
ncores="${3:-$(nproc)}"
parallel -j "$ncores" --colsep '\t' "$cmd" :::: "$params"