README.md

June 9, 2026 · View on GitHub

DOI

These pipelines facilitate the running of the Cactus whole genome alignment tool efficiently on SLURM (and possibly other) clusters.

Tutorials available on the FAS Informatics website:

<Whole genome alignment with Progressive Cactus>

<Adding a genome to a whole genome alignment>

<Adding an outgroup to a whole genome alignment>

<Replacing a genome in a whole genome alignment>

<Pangenome inference with Minigraph-Cactus>

⚠️ Important! cactus-snakemake v3.0.0 and later requires Cactus v3.0.0 or later.

Due to bug fixes in Cactus, v3.0.0+ of cactus-snakemake is only compatibile with Cactus v3.0.0 or later. Don't worry, cactus-snakemake will always use the latest version of Cactus available unless you specify otherwise in your config file. However, if you do wish to use an older version of Cactus, you can use cactus-snakemake v2.1.0.

Installation

Installation is done simply by cloning the repository:

git clone https://github.com/harvardinformatics/cactus-snakemake.git

Alternatively, you could just manually download the latest release and unzip it and it should be good to go.

However, Snakemake and Singularity are required as dependencies. For more information, see the setup instructions in any of the tutorials linked above.

Usage

Each pipeline has a different config file that is required to specify input and output options and cluster resources.

For GPU-enabled blast rules, configure exactly one of gpus or gres in the relevant rule_resources.blast block. Use gpus to request Snakemake's gpu resource, or use gres with any of 1, a100:2, gpu:1, or gpu:a100:2. If the gpu: prefix is omitted, the pipeline adds it before submitting the Slurm GRES request.

With the config file setup, the pipelines are generally run as:

snakemake -j <number of jobs to submit simultaneously> -e slurm -s </path/to/snakefile.smk> --configfile </path/to/your/snakmake-config.yml>

💡 Tip: Cannon cluster Snakemake plugin

If you are on the Harvard Cannon cluster, you can use the snakemake-executor-plugin-cannon to do automatic partition selection instead of the generic SLURM executor plugin. Install the plugin with pip or mamba and then use -e cannon in all of your commands instead of -e slurm.

For more information, see the setup and run instructions in each of the tutorials linked above.

Meta config options

Several meta config options exist across pipelines as pseudo-command line flags

Command line flagDescription
--config display=TPrint the current config settings and exit
--config info=TDisplay some information about the pipelines, including version and last commit date
--config version=TDisplay the version of the pipeline
--config prep=TRun all pre-processing steps and exit (e.g. output directory creation, cactus image download, running cactus-prepare).
--config debug=TThe same as prep, but display extra information about the pre-processing steps.

Citation

If you use this software, please cite:

Latest version

Thomas, G. (2026). Snakemake workflows for Cactus (Version 3.5.0) [Computer software]. https://doi.org/10.5281/zenodo.20614344

To cite a specific version:
See the full list of versions and DOIs here.
(Find the version you used in the Zenodo version history.)