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-appsmodule.
Usage
Trinotate is part of the bio-apps collection on Roihu. Load the bio-apps module tree and then the Trinotate module:
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:
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:
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:
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.