Overview
HHmake reads an alignment in A2M, A3M, or FASTA format and generates an HMM file (.hhm) that can be used with other HH-suite tools. It can also convert between HMMER format (.hmm) and HHsearch format (.hhm).Key Features
- MSA to HMM conversion: Build HMM profiles from alignments
- Format conversion: Convert between HMMER and HHsearch formats
- Filtering: Apply sequence filters during HMM construction
- Pseudocounts: Add context-specific or independent pseudocounts
When to Use HHmake
Use HHmake when you need to:- Build custom HMM databases: Convert alignments to searchable HMMs
- Preprocess alignments: Generate HMMs for use with hhsearch or hhalign
- Convert HMM formats: Transform HMMER HMMs to HH-suite format
- Control HMM building: Fine-tune pseudocounts and filtering parameters
Most users won’t need HHmake directly, as tools like hhblits and hhsearch build HMMs automatically. Use HHmake when you need custom HMM databases or format conversion.
Basic Usage
Common Use Cases
Build HMM from FASTA Alignment
Convert a FASTA multiple sequence alignment:Create Filtered HMM
Build HMM while filtering redundant sequences:Build HMM Database
Create multiple HMMs for a database:Add Consensus Sequence
Include consensus as master sequence:Key Parameters
Input/Output Options
Input/Output Options
-i <file>- Query alignment (A2M, A3M, FASTA) or HMM file-o <file>- HMM output file (default:<infile>.hhm)-a <file>- Append to existing HMM file instead of overwriting-name <name>- Use this name for HMM (default: first sequence name)-v <int>- Verbose mode (0=no output, 1=warnings, 2=verbose)
Filtering Options
Filtering Options
-id [0,100]- Maximum pairwise sequence identity % (default: 90)-diff [0,inf]- Filter for diversity, keeping Ndiff sequences per 50-column block (default: 100)-cov [0,100]- Minimum coverage with query % (default: 0)-qid [0,100]- Minimum sequence identity with query % (default: 0)-qsc [-inf,100]- Minimum score per column with query (default: -20.0)-neff [1,inf]- Target diversity (effective number of sequences)
Input Format Options
Input Format Options
-M a2m- Use A2M/A3M format (default)-M first- Use FASTA format, columns with residue in 1st sequence are match states-M [0,100]- Use FASTA format, columns with <X% gaps are match states
Advanced Options
Advanced Options
-add_cons- Generate consensus sequence as master sequence-seq <int>- Maximum number of sequences to display in HMM (default: 10)-maxseq <int>- Maximum number of input sequences (default: 65535)-maxres <int>- Maximum number of HMM columns (default: 20000)
Output Format
The HHM file is a text-based format containing:The HHM format stores:
- Emission probabilities for each match state
- Transition probabilities between states
- Effective number of sequences (Neff) per column
- Secondary structure predictions (if available)
Tips and Best Practices
Advanced Options
Context-Specific Pseudocounts
Enable context-specific pseudocounts for better HMMs:No Pseudocounts (for raw counts)
Build HMM without any pseudocounts:Custom Sequence Weighting
Control how sequences are weighted in the profile:Build Database from Directory
Process all alignments in a directory:Format Conversion
HMMER to HH-suite Format
Convert HMMER3 HMM to HH-suite format:A3M to A2M Format
While HHmake primarily creates HMMs, you can use it in a pipeline:Understanding Match State Assignment
The-M parameter controls how columns are designated as match vs. insert states:
Troubleshooting
Too few sequences in HMM
Too few sequences in HMM
If filtering removes too many sequences:
- Relax
-idthreshold (increase value) - Lower
-covand-qidrequirements - Check input alignment quality
HMM too large
HMM too large
If you hit the maximum HMM size:
- Use
-maxresto increase the limit - Check if your alignment has excessive columns
- Consider trimming the alignment first
Poor HMM quality
Poor HMM quality
If the resulting HMM performs poorly:
- Ensure input alignment is high quality
- Try context-specific pseudocounts
- Adjust filtering to keep more diverse sequences
Related Tools
- hhfilter - Filter alignments before building HMMs
- hhconsensus - Generate consensus sequences
- hhsearch - Search with generated HMMs
- hhalign - Align using generated HMMs