Skip to content

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti and Mahti login nodes and storage services are planned to remain available until 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

GTDB-Tk

GTDB-Tk is a software toolkit for assigning objective taxonomic classifications to bacterial and archaeal genomes, including metagenome-assembled genomes (MAGs) and single-amplified genomes (SAGs). Classifications are based on the Genome Taxonomy Database (GTDB). The classify_wf workflow identifies marker genes (Prodigal gene calling, HMMER marker search), aligns them, screens query genomes against the GTDB reference genomes by average nucleotide identity (skani), and places them into the GTDB reference tree with pplacer.

License

Free to use and open source under GNU GPLv3.

Available

  • Roihu-CPU: 2.7.2, via the bio-apps module.

Usage

GTDB-Tk is part of the bio-apps collection on Roihu. Load the bio-apps module tree and then the GTDB-Tk module:

module load bio-apps/v202603
module load py-gtdbtk/2.7.2

The classification commands are run through the gtdbtk command, for example gtdbtk classify_wf.

Reference data

GTDB-Tk needs the GTDB reference data package (~100 GiB), matched to the tool version. On Roihu this data is already provided by CSC and the module sets the GTDBTK_DATA_PATH environment variable for you — you do not need to download or configure anything. GTDB-Tk 2.7.2 uses GTDB release R232.

You can check the path after loading the module with:

echo $GTDBTK_DATA_PATH

Example batch script

classify_wf takes a directory of genome FASTA files as input. The default classification (which splits the reference tree) needs roughly 140 GiB of memory and benefits from many cores (see the GTDB-Tk hardware requirements).

#!/bin/bash
#SBATCH --job-name=gtdbtk
#SBATCH --account=<project>
#SBATCH --output=output_%j.txt
#SBATCH --error=errors_%j.txt
#SBATCH --partition=small
#SBATCH --time=12:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=32
#SBATCH --mem=160G

module load bio-apps/v202603
module load py-gtdbtk/2.7.2

gtdbtk classify_wf \
    --genome_dir genomes/ \
    --extension fa \
    --out_dir gtdbtk_out \
    --cpus $SLURM_CPUS_PER_TASK

Replace <project> with your CSC project (for example project_2001234).

  • --extension is the file extension of your input genomes (fa, fasta, fna, …).
  • GTDB-Tk 2.7 screens query genomes against the GTDB representatives with skani automatically; there is no separate reference database to download or configure for this step.
  • The pplacer step is the most memory-intensive. If a run runs out of memory, first add --pplacer_cpus 1 (lower peak memory, slower), then try increasing your --mem request — the small partition can provide up to 1500 GiB. GTDB-Tk's --scratch_dir option, which spills pplacer's allocation to disk, is best avoided on Roihu: its backing file is roughly as large as the memory it saves (likely making it too big for $TMPDIR), and its random, memory-mapped access pattern performs poorly on the Lustre /scratch filesystem.

Running --full_tree (placement into the complete, undecorated reference tree) requires around 950 GiB of memory. This still fits within the small partition's 1500 GiB ceiling; the hugemem partition is an alternative. The default split-tree approach is recommended for almost all use.

See creating a batch job script for Roihu for more information about running batch jobs.

Support

CSC Service Desk

More information