Skip to content

Trinotate

Trinotate is a suite for the functional annotation of transcriptomes, particularly de novo assembled transcriptomes from Trinity. It searches the transcripts and their predicted proteins against SwissProt, Pfam and Rfam, and collects the results into an SQLite database, from which it writes an annotation report.

License

Free to use and open source under the BSD 3-Clause License.

Available

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

Usage

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

module load bio-apps/v202603
module load trinotate/4.0.2

The Trinotate module also loads TransDecoder, which predicts the proteins that Trinotate annotates.

Databases

CSC provides the Trinotate reference data (SwissProt, Pfam and Rfam) on Roihu, and the module sets $TRINOTATE_DATA_DIR to their location. Trinotate finds the data through this variable, so you do not need to run Trinotate --create to download them. Instead, start each annotation project from a copy of the empty Trinotate database:

cp $TRINOTATE_DATA_DIR/TrinotateBoilerplate.sqlite myTrinotate.sqlite

Annotating a Trinity assembly

Run the annotation in a directory of your own, for example in your project's /scratch. First predict the proteins with TransDecoder:

TransDecoder.LongOrfs -t Trinity.fasta
TransDecoder.Predict -t Trinity.fasta

Load the transcripts and proteins into the database. The gene-to-transcript map (Trinity.fasta.gene_trans_map) is written by Trinity next to the assembly:

Trinotate --db myTrinotate.sqlite --init \
    --gene_trans_map Trinity.fasta.gene_trans_map \
    --transcript_fasta Trinity.fasta \
    --transdecoder_pep Trinity.fasta.transdecoder.pep

Run the searches and load their results into the database:

Trinotate --db myTrinotate.sqlite --run ALL --CPU 16 \
    --transcript_fasta Trinity.fasta \
    --transdecoder_pep Trinity.fasta.transdecoder.pep

--run ALL runs the SwissProt BLAST searches of the transcripts and proteins, the Pfam domain search and the Rfam search. If you also load the eggNOG-mapper module (module load eggnog-mapper/2.1.15), it runs eggNOG-mapper on the predicted proteins as well. SignalP and TMHMM are not available on Roihu, so Trinotate skips them. If the job stops, run the same command again in the same directory: Trinotate skips the searches that have already finished.

Finally, write the annotation report:

Trinotate --db myTrinotate.sqlite --report > Trinotate_report.tsv

Example batch script

The searches, especially the BLAST search of the transcripts, can take a long time for a large transcriptome, so run them in a batch job:

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

module load bio-apps/v202603
module load trinotate/4.0.2

Trinotate --db myTrinotate.sqlite --run ALL --CPU $SLURM_CPUS_PER_TASK \
    --transcript_fasta Trinity.fasta \
    --transdecoder_pep Trinity.fasta.transdecoder.pep
Trinotate --db myTrinotate.sqlite --report > Trinotate_report.tsv

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

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

Support

CSC Service Desk

More information

Do you find this page useful?
Thank you for your feedback!
Thank you! Your feedback is appreciated.

Please let us know how we could improve this page by contacting us or by creating an issue in GitHub. You can also edit this page yourself and contribute your improvements by creating a pull request.

November 2, 2026