domainator domainate
Annotate contigs or proteins with reference hits, retaining records without hits.
Annotate sequence files with protein or nucleic-acid references.
Protein references are searched against CDSs or protein records with hmmsearch or phmmer.
Nucleic-acid references are searched against whole nucleotide contigs with nhmmer or infernal cmsearch.
Hits passing the threshold are added to the output GenBank file as new Domainator features.
Every input record is retained, including records without qualifying hits. Use
domain_search to select matching records or hit neighborhoods instead.
Both tools perform similarity searches; annotation versus search describes their
output contract, not whether an alignment is performed.
The -i/--input files contain the records being annotated; -r/--reference supplies
the references to search for.
Supported references include protein HMMs, protein FASTA, nucleotide FASTA, nucleotide HMMs, and infernal CM files.
Protein inputs cannot be searched with nucleotide references.
NOTES: genbank files that contain translation annotations in their CDS features will run much faster than those without translation annotations.
domainator domainate stores the entire reference set in memory, so it is not suitable for cases where the reference
set is larger than your system memory (this may change in future versions).
Give at least one of these outputs: --genbank_out, --fasta_out. - as an input or output means standard input or output, where the option says it is allowed.
| Option | Value | Default | Description |
|---|---|---|---|
-v, --verbose |
show debug output, and a traceback for errors. | ||
-q, --quiet |
show errors only: no progress messages or warnings. | ||
-i, --input |
FILE ... | required | the genbank or fasta files to annotate. Genbank files can be nucleotide (with CDS annotations) or peptide. Fasta files can be protein or nucleotide; use --alphabet to specify which. |
--alphabet |
{nucleotide,protein} | protein | Whether the sequences in FASTA inputs are protein or nucleotide. GenBank records declare their own molecule type. |
-r, --reference |
FILE ... | References to search for in the --input records. Supported types are protein HMMs, protein FASTA, nucleotide FASTA, nucleotide HMMs, and infernal CM files. | |
--foldseek |
FILE ... | Foldseek database files. | |
--esm2_3di_weights |
FILE | checkpoint file for esm2_3Di model. | |
--esm2_3di_device |
STRING | cuda:0 | device to use for esm2_3Di model. |
--prostt5_weights |
DIR | foldseek's ProstT5 weights directory (from 'foldseek databases ProstT5 weights tmp'). foldseek then predicts the 3Di sequences with ProstT5, instead of the esm2_3Di model. | |
--prostt5_device |
STRING | cpu | device to run ProstT5 on: 'cpu', or a CUDA device string ('cuda', 'cuda:0', ...), which requires a GPU build of foldseek. |
--foldseek_device |
STRING | cpu | device to use for the foldseek search. 'cpu' for a CPU-only search, or a CUDA device string ('cuda', 'cuda:0', 'cuda:1', ...) to enable GPU-accelerated search. GPU search requires a recent foldseek and a GPU-compatible (padded) target database (see 'foldseek makepaddedseqdb'). |
--foldseek_path |
PROGRAM | path to the foldseek executable, if it is not on the PATH. | |
-o, --genbank_out |
FILE | Write the records to this GenBank file. Use - for standard output. | |
--fasta_out |
FILE | Write the records to this FASTA file. Use - for standard output. | |
-Z |
INTEGER | 1000 | Passed as the -Z parameter to hmmsearch: Assert that the total number of targets in your searches is |
-e, --evalue |
NUMBER | 0.001 | threshold E value for the domain hit. Must be <=10. |
--min_evalue |
NUMBER | 0.0 | hits with E value LOWER (as in BETTER) than this will be filtered out. NOT FREQUENTLY USED. Use only if you want to eliminate close matches. Must be >=0. [default 0] |
--max_hits_per_cds |
INTEGER | the maximum number of domains to be reported per CDS. If not specified, then all hits are reported. | |
--max_mode |
Run hmmsearch, phmmer, or nhmmer in maximum sensitivity mode, which is much slower, but more sensitive. | ||
--partial |
{include,exclude,only} | include | Which CDSs/proteins to search, by fragment status. include: all. exclude: skip fragments. only: only fragments. A CDS is a fragment if its location has '<' or '>', or it has a /partial qualifier. A protein record is a fragment if it has a UniProt ' (Fragment)' or MGnify 'FL=0' header, a 'Flags: Fragment' definition or NON_TER features (UniProt text entries), or a CDS/Protein feature with '<' or '>' spanning it. |
--cpu |
INTEGER | 0 | the number of cores of the cpu which are used at a time to run the search (0: one thread per physical core) |
--max_overlap |
NUMBER | 1 | the maximum fractional of overlap between domains to be included in the annotated genbank. If >= 1, then no overlap filtering will be done. |
--overlap_by_db |
If activated, then overlap filtering will be done by database, rather than all together. | ||
--batch_size |
INTEGER | 10000 | How many target sequences to search at one time in a batch. Increasing this number might improve speeds at the cost of memory. |
--gene_call |
{all,unannotated} | When activated, new CDS annotations will be added with Prodigal in Metagenomic mode. If 'all', then any existing CDS annotations will be deleted and all contigs will be re-annotated. If 'unannotated', then only contigs without CDS annotations will be annotated. If you supply a nucleotide fasta file, be sure to also specify --alphabet nucleotide. -Z 0 can't be used with gene calling, because the number of target sequences isn't known until the genes are called. | |
--max_output_gb |
NUMBER | 25.0 | Fail if a projected output file would exceed this many GB. Set to 0 to disable the guardrail. |
Every command also takes --config FILE (options from a JSON or YAML file, keyed by option name) and --print_config.