-
Detect the environment: Check whether conda/mamba is available (which conda), whether Docker is available (docker --version), and whether an HPC module system is present (module avail). Report findings to the user and recommend the best installation path.
-
Check existing installations: For each tool in the requested pipeline group(s), run which <tool> && <tool> --version 2>&1 | head -1 to detect installed versions. Report a summary table: tool name, found/missing, installed version, required minimum version.
-
Select the installation asset: Choose the appropriate conda environment YAML from assets/envs/:
ngs-shared.yaml — FastQC, MultiQC, fastp, Trimmomatic, samtools
wgs.yaml — BWA-MEM2, GATK, Picard, bcftools, VEP, SnpEff
rnaseq.yaml — STAR, HISAT2, featureCounts (subread), salmon, kallisto, DESeq2 (R), edgeR (R)
scrnaseq-python.yaml — STARsolo (STAR), Scanpy, scVI-tools, scVelo, Scrublet, CellBender, harmonypy
scrnaseq-r.yaml — Seurat v5, SingleR, scDblFinder, SoupX, Monocle3, DoubletFinder
metagenomics.yaml — Bowtie2, MetaPhlAn4, HUMAnN3, Kraken2, Bracken, metaSPAdes, MEGAHIT, Prokka
-
Create the conda environment:
mamba env create -f assets/envs/<pipeline>.yaml
conda env create -f assets/envs/<pipeline>.yaml
Prefer mamba over conda for significantly faster dependency resolution.
-
Handle tools that cannot be installed via conda — prompt the user with manual steps:
- Cell Ranger: Download from the 10x Genomics website (requires registration). Add to PATH:
export PATH=/path/to/cellranger:$PATH.
- CellBender: Install via pip inside the conda environment:
pip install cellbender. Requires CUDA for GPU acceleration.
- DoubletFinder: Install from GitHub inside R:
remotes::install_github("chris-mcginnis-ucsf/DoubletFinder").
- Monocle3: Install from Bioconductor:
BiocManager::install("monocle3"). Alternatively: remotes::install_github("cole-trapnell-lab/monocle3").
- velocyto (for RNA velocity loom generation):
pip install velocyto. Requires samtools and a reference GTF.
-
Verify all installations: After installation, re-run the version check for each tool. For R packages, run Rscript -e 'packageVersion("<pkg>")'. Report a final verification table: tool, expected version, installed version, status (PASS/FAIL).
-
Report any failures with the specific error message and the most likely fix (e.g., missing system library, incompatible CUDA version, wrong conda channel).