hmmbuild - construct profiles from multiple sequence
alignments
hmmbuild [options] hmmfile msafile
For each multiple sequence alignment in msafile build a
profile HMM and save it to a new file hmmfile.
msafile may be '-' (dash), which means reading this input
from stdin rather than a file.
hmmfile may not be '-' (stdout), because sending the HMM
file to stdout would conflict with the other text output of the program.
- -h
- Help; print a brief reminder of command line usage and all available
options.
- -n <s>
- Name the new profile <s>. The default is to use the name of
the alignment (if one is present in the msafile, or, failing that,
the name of the hmmfile. If msafile contains more than one
alignment, -n doesn't work, and every alignment must have a name
annotated in the msafile (as in Stockholm #=GF ID annotation).
- -o <f>
- Direct the summary output to file <f>, rather than to stdout.
- -O <f>
- After each model is constructed, resave annotated, possibly modified
source alignments to a file <f> in Stockholm format. The
alignments are annotated with a reference annotation line indicating which
columns were assigned as consensus, and sequences are annotated with what
relative sequence weights were assigned. Some residues of the alignment
may have been shifted to accommodate restrictions of the Plan7 profile
architecture, which disallows transitions between insert and delete
states.
- --amino
- Assert that sequences in msafile are protein, bypassing alphabet
autodetection.
- --dna
- Assert that sequences in msafile are DNA, bypassing alphabet
autodetection.
- --rna
- Assert that sequences in msafile are RNA, bypassing alphabet
autodetection.
These options control how consensus columns are defined in an
alignment.
- --fast
- Define consensus columns as those that have a fraction >=
symfrac of residues as opposed to gaps. (See below for the
--symfrac option.) This is the default.
- --hand
- Define consensus columns in next profile using reference annotation to the
multiple alignment. This allows you to define any consensus columns you
like.
- --symfrac
<x>
- Define the residue fraction threshold necessary to define a consensus
column when using the --fast option. The default is 0.5. The symbol
fraction in each column is calculated after taking relative sequence
weighting into account, and ignoring gap characters corresponding to ends
of sequence fragments (as opposed to internal insertions/deletions).
Setting this to 0.0 means that every alignment column will be assigned as
consensus, which may be useful in some cases. Setting it to 1.0 means that
only columns that include 0 gaps (internal insertions/deletions) will be
assigned as consensus.
- --fragthresh
<x>
- We only want to count terminal gaps as deletions if the aligned sequence
is known to be full-length, not if it is a fragment (for instance, because
only part of it was sequenced). HMMER uses a simple rule to infer
fragments: if the range of a sequence in the alignment (the number of
alignment columns between the first and last positions of the sequence) is
less than or equal to a fraction <x> times the alignment
length in columns, then the sequence is handled as a fragment. The default
is 0.5. Setting --fragthresh 0 will define no (nonempty) sequence
as a fragment; you might want to do this if you know you've got a
carefully curated alignment of full-length sequences. Setting
--fragthresh 1 will define all sequences as fragments; you might
want to do this if you know your alignment is entirely composed of
fragments, such as translated short reads in metagenomic shotgun data.
HMMER uses an ad hoc sequence weighting algorithm to downweight
closely related sequences and upweight distantly related ones. This has the
effect of making models less biased by uneven phylogenetic representation.
For example, two identical sequences would typically each receive half the
weight that one sequence would. These options control which algorithm gets
used.
- --wpb
- Use the Henikoff position-based sequence weighting scheme [Henikoff and
Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default.
- --wgsc
- Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et al,
J. Mol. Biol. 235:1067, 1994].
- --wblosum
- Use the same clustering scheme that was used to weight data in calculating
BLOSUM substitution matrices [Henikoff and Henikoff, Proc. Natl. Acad. Sci
89:10915, 1992]. Sequences are single-linkage clustered at an identity
threshold (default 0.62; see --wid) and within each cluster of c
sequences, each sequence gets relative weight 1/c.
- --wnone
- No relative weights. All sequences are assigned uniform weight.
- --wid
<x>
- Sets the identity threshold used by single-linkage clustering when using
--wblosum. Invalid with any other weighting scheme. Default is
0.62.
After relative weights are determined, they are normalized to sum
to a total effective sequence number, eff_nseq. This number may be
the actual number of sequences in the alignment, but it is almost always
smaller than that. The default entropy weighting method (--eent)
reduces the effective sequence number to reduce the information content
(relative entropy, or average expected score on true homologs) per consensus
position. The target relative entropy is controlled by a two-parameter
function, where the two parameters are settable with --ere and
--esigma.
- --eent
- Adjust effective sequence number to achieve a specific relative entropy
per position (see --ere). This is the default.
- --eclust
- Set effective sequence number to the number of single-linkage clusters at
a specific identity threshold (see --eid). This option is not
recommended; it's for experiments evaluating how much better --eent
is.
- --enone
- Turn off effective sequence number determination and just use the actual
number of sequences. One reason you might want to do this is to try to
maximize the relative entropy/position of your model, which may be useful
for short models.
- --eset
<x>
- Explicitly set the effective sequence number for all models to
<x>.
- --ere
<x>
- Set the minimum relative entropy/position target to <x>.
Requires --eent. Default depends on the sequence alphabet. For
protein sequences, it is 0.59 bits/position; for nucleotide sequences, it
is 0.45 bits/position.
- --esigma
<x>
- Sets the minimum relative entropy contributed by an entire model
alignment, over its whole length. This has the effect of making short
models have higher relative entropy per position than --ere alone
would give. The default is 45.0 bits.
- --eid
<x>
- Sets the fractional pairwise identity cutoff used by single linkage
clustering with the --eclust option. The default is 0.62.
By default, weighted counts are converted to mean posterior
probability parameter estimates using mixture Dirichlet priors. Default
mixture Dirichlet prior parameters for protein models and for nucleic acid
(RNA and DNA) models are built in. The following options allow you to
override the default priors.
- --pnone
- Don't use any priors. Probability parameters will simply be the observed
frequencies, after relative sequence weighting.
- --plaplace
- Use a Laplace +1 prior in place of the default mixture Dirichlet prior.
By default, if a query is a single sequence from a file in
fasta format, hmmbuild constructs a search model from that
sequence and a standard 20x20 substitution matrix for residue probabilities,
along with two additional parameters for position-independent gap open and
gap extend probabilities. These options allow the default single-sequence
scoring parameters to be changed, and for single-sequence scoring options to
be applied to a single sequence coming from an aligned format.
- --singlemx
- If a single sequence query comes from a multiple sequence alignment file,
such as in stockholm format, the search model is by default
constructed as is typically done for multiple sequence alignments. This
option forces hmmbuild to use the single-sequence method with
substitution score matrix.
- --mx
<s>
- Obtain residue alignment probabilities from the built-in substitution
matrix named <s>. Several standard matrices are built-in, and
do not need to be read from files. The matrix name <s> can be
PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80,
BLOSUM90, or DNA1. Only one of the --mx and --mxfile options
may be used.
- --mxfile
<mxfile>
- Obtain residue alignment probabilities from the substitution matrix in
file <mxfile>. The default score matrix is BLOSUM62 for
protein sequences, and DNA1 for nucleotide sequences (these matrices are
internal to HMMER and do not need to be available as a file). The format
of a substitution matrix <mxfile> is the standard format
accepted by BLAST, FASTA, and other sequence analysis software. See
ftp.ncbi.nlm.nih.gov/blast/matrices/ for example files. (The only
exception: we require matrices to be square, so for DNA, use files like
NCBI's NUC.4.4, not NUC.4.2.)
- --popen
<x>
- Set the gap open probability for a single sequence query model to
<x>. The default is 0.02. <x> must be >= 0
and < 0.5.
- --pextend
<x>
- Set the gap extend probability for a single sequence query model to
<x>. The default is 0.4. <x> must be >= 0 and
< 1.0.
The location parameters for the expected score distributions for
MSV filter scores, Viterbi filter scores, and Forward scores require three
short random sequence simulations.
- --EmL
<n>
- Sets the sequence length in simulation that estimates the location
parameter mu for MSV filter E-values. Default is 200.
- --EmN
<n>
- Sets the number of sequences in simulation that estimates the location
parameter mu for MSV filter E-values. Default is 200.
- --EvL
<n>
- Sets the sequence length in simulation that estimates the location
parameter mu for Viterbi filter E-values. Default is 200.
- --EvN
<n>
- Sets the number of sequences in simulation that estimates the location
parameter mu for Viterbi filter E-values. Default is 200.
- --EfL
<n>
- Sets the sequence length in simulation that estimates the location
parameter tau for Forward E-values. Default is 100.
- --EfN
<n>
- Sets the number of sequences in simulation that estimates the location
parameter tau for Forward E-values. Default is 200.
- --Eft
<x>
- Sets the tail mass fraction to fit in the simulation that estimates the
location parameter tau for Forward evalues. Default is 0.04.
- --cpu
<n>
- Set the number of parallel worker threads to <n>. On
multicore machines, the default is 2. You can also control this number by
setting an environment variable, HMMER_NCPU. There is also a master
thread, so the actual number of threads that HMMER spawns is
<n>+1.
This option is not available if HMMER was compiled with POSIX
threads support turned off.
- --informat
<s>
- Assert that input msafile is in alignment format <s>,
bypassing format autodetection. Common choices for <s>
include: stockholm, a2m, afa, psiblast,
clustal, phylip. For more information, and for codes for
some less common formats, see main documentation. The string
<s> is case-insensitive (a2m or A2M both work).
- --seed
<n>
- Seed the random number generator with <n>, an integer >=
0. If <n> is nonzero, any stochastic simulations will be
reproducible; the same command will give the same results. If
<n> is 0, the random number generator is seeded arbitrarily,
and stochastic simulations will vary from run to run of the same command.
The default seed is 42.
- --w_beta
<x>
- Window length tail mass. The upper bound, W, on the length at which
nhmmer expects to find an instance of the model is set such that the
fraction of all sequences generated by the model with length >=
W is less than <x>. The default is 1e-7.
- --w_length
<n>
- Override the model instance length upper bound, W, which is
otherwise controlled by --w_beta. It should be larger than the
model length. The value of W is used deep in the acceleration
pipeline, and modest changes are not expected to impact results (though
larger values of W do lead to longer run time).
- --mpi
- Run as a parallel MPI program. Each alignment is assigned to a MPI worker
node for construction. (Therefore, the maximum parallelization cannot
exceed the number of alignments in the input msafile.) This is
useful when building large profile libraries. This option is only
available if optional MPI capability was enabled at compile-time.
- --stall
- For debugging MPI parallelization: arrest program execution immediately
after start, and wait for a debugger to attach to the running process and
release the arrest.
- --maxinsertlen
<n>
- Restrict insert length parameterization such that the expected insert
length at each position of the model is no more than <n>.
See hmmer(1) for a master man page with a list of all the
individual man pages for programs in the HMMER package.
For complete documentation, see the user guide that came with your
HMMER distribution (Userguide.pdf); or see the HMMER web page
(http://hmmer.org/).
Copyright (C) 2020 Howard Hughes Medical Institute.
Freely distributed under the BSD open source license.
For additional information on copyright and licensing, see the
file called COPYRIGHT in your HMMER source distribution, or see the HMMER
web page (http://hmmer.org/).