| Overview: | Runs taxonomic analysis on a set of samples using sequana_taxonomy (Kraken2 under the hood), optionally followed by BLAST on unclassified reads. |
|---|---|
| Input: | A set of FastQ files (paired or single-end). |
| Output: | HTML report for each sample and a summary HTML report for all samples. |
| Status: | Production |
| Citation: | Cokelaer et al, (2017), 'Sequana': a Set of Snakemake NGS pipelines, Journal of Open Source Software, 2(16), 352, doi:10.21105/joss.00352 |
pip install sequana-multitax
To upgrade an existing installation:
pip install sequana-multitax --upgrade
Step 1 — prepare the working directory:
sequana_multitax \
--input-directory /path/to/reads \
--databases /path/to/krakendb
This creates a multitax/ working directory containing config.yaml and a
multitax.sh launch script.
Step 2 — review the configuration (optional but recommended):
cd multitax cat config.yaml # adjust parameters as needed
Step 3 — run the pipeline:
sh multitax.sh
You will need one or more Kraken2 databases. You can download a toy database for testing:
sequana_taxonomy --download toydb
The pipeline also requires a taxonomy file stored in
~/.config/sequana/taxonomy.dat. Download it once with:
sequana_multitax --update-taxonomy
Call this command again from time to time when unknown taxon IDs appear in the HTML reports.
Multiple databases can be passed to run iterative classification:
sequana_multitax \
--input-directory /path/to/reads \
--databases /path/to/virusdb /path/to/bacteriadb
Every tool runs inside a pre-built container. Point --apptainer-prefix to a
shared directory so images are downloaded once and reused across projects:
sequana_multitax \
--input-directory /path/to/reads \
--databases /path/to/krakendb \
--apptainer-prefix ~/.sequana/apptainers
Pass extra bind mounts with --apptainer-args if your data lives outside
$HOME:
--apptainer-args "-B /data:/data"
When running snakemake manually, include the apptainer options:
snakemake -s multitax.rules --configfile config.yaml --cores 4 \
--use-apptainer \
--apptainer-prefix ~/.sequana/apptainers \
--apptainer-args "-B /home:/home"
On a cluster with SLURM, pass --profile slurm:
sequana_multitax \
--input-directory /path/to/reads \
--databases /path/to/krakendb \
--profile slurm \
--slurm-queue fast \
--jobs 40 \
--apptainer-prefix /shared/containers
Reads that remain unclassified after Kraken can optionally be BLASTed against a local database:
sequana_multitax \
--input-directory /path/to/reads \
--databases /path/to/krakendb \
--store-unclassified \
--do-blast-unclassified
This requires a local BLAST+ installation and a downloaded nt database.
- Kraken2 — classify reads against one or more databases sequentially.
- Krona — interactive pie charts per sample.
- [Optional] BLAST — align unclassified reads against a nucleotide DB.
- MultiQC — aggregated summary report across all samples.
Each sample produces an HTML report with a static pie chart (species distribution; grey = unclassified) that links to an interactive Krona chart.
When multiple databases are provided they are applied sequentially. The order matters: reads classified by the first database are removed before the second database is run.
After running sequana_multitax, a config.yaml is created in the working
directory. Key sections:
sequana_taxonomy— databases, confidence threshold, store_unclassifiedblast— enable/disable BLAST on unclassified readsmultiqc— aggregated report settings
Full reference: config.yaml
- kraken2
- sequana_taxonomy
- krona
| Version | Description |
|---|---|
| 0.15.0 |
|
| 0.14.1 |
|
| 0.14.0 |
|
| 0.13.0 |
|
| 0.12.2 |
|
| 0.12.1 |
|
| 0.12.0 |
|
| 0.11.1 |
|
| 0.11.0 |
|
| 0.10.2 |
|
| 0.10.1 |
|
| 0.10.0 |
|
| 0.9.2 |
|
| 0.9.1 |
|
| 0.9.0 |
|
| 0.8.7 |
|
| 0.8.6 |
|
| 0.8.5 |
|
| 0.8.4 |
|
| 0.8.3 |
|
| 0.8.2 |
|
| 0.8.1 | Fix requirements. |
| 0.8.0 | First release. |

