jackhmmer - iteratively search sequence(s) against a sequence
database
jackhmmer [options] seqfile seqdb
jackhmmer iteratively searches each query sequence in
seqfile against the target sequence(s) in seqdb. The first
iteration is identical to a phmmer search. For the next iteration, a
multiple alignment of the query together with all target sequences
satisfying inclusion thresholds is assembled, a profile is constructed from
this alignment (identical to using hmmbuild on the alignment), and
profile search of the seqdb is done (identical to an hmmsearch
with the profile).
The query seqfile may be '-' (a dash character), in which
case the query sequences are read from a stdin pipe instead of from a file.
The seqdb cannot be read from a stdin stream, because
jackhmmer needs to do multiple passes over the database.
The output format is designed to be human-readable, but is often
so voluminous that reading it is impractical, and parsing it is a pain. The
--tblout and --domtblout options save output in simple tabular
formats that are concise and easier to parse. The -o option allows
redirecting the main output, including throwing it away in /dev/null.
- -h
- Help; print a brief reminder of command line usage and all available
options.
- -N <n>
- Set the maximum number of iterations to <n>. The default is
5. If N=1, the result is equivalent to a phmmer search.
By default, output for each iteration appears on stdout in a
somewhat human readable, somewhat parseable format. These options allow
redirecting that output or saving additional kinds of output to files,
including checkpoint files for each iteration.
- -o <f>
- Direct the human-readable output to a file <f>.
- -A <f>
- After the final iteration, save an annotated multiple alignment of all
hits satisfying inclusion thresholds (also including the original query)
to <f> in Stockholm format.
- --tblout
<f>
- After the final iteration, save a tabular summary of top sequence hits to
<f> in a readily parseable, columnar, whitespace-delimited
format.
- --domtblout
<f>
- After the final iteration, save a tabular summary of top domain hits to
<f> in a readily parseable, columnar, whitespace-delimited
format.
- --chkhmm
prefix
- At the start of each iteration, checkpoint the query HMM, saving it to a
file named prefix-n.hmm where n is the
iteration number (from 1..N).
- --chkali
prefix
- At the end of each iteration, checkpoint an alignment of all domains
satisfying inclusion thresholds (e.g. what will become the query HMM for
the next iteration), saving it to a file named
prefix-n.sto in Stockholm format, where
n is the iteration number (from 1..N).
- --acc
- Use accessions instead of names in the main output, where available for
profiles and/or sequences.
- --noali
- Omit the alignment section from the main output. This can greatly reduce
the output volume.
- --notextw
- Unlimit the length of each line in the main output. The default is a limit
of 120 characters per line, which helps in displaying the output cleanly
on terminals and in editors, but can truncate target profile description
lines.
- --textw
<n>
- Set the main output's line length limit to <n> characters per
line. The default is 120.
By default, the first iteration uses a search model constructed
from a single query sequence. This model is constructed using a standard
20x20 substitution matrix for residue probabilities, and two additional
parameters for position-independent gap open and gap extend probabilities.
These options allow the default single-sequence scoring parameters to be
changed.
- --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.
- --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, or
BLOSUM90. 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 (this matrix is
internal to HMMER and does not have 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.)
Reporting thresholds control which hits are reported in output
files (the main output, --tblout, and --domtblout). In each
iteration, sequence hits and domain hits are ranked by statistical
significance (E-value) and output is generated in two sections called
per-target and per-domain output. In per-target output, by default, all
sequence hits with an E-value <= 10 are reported. In the per-domain
output, for each target that has passed per-target reporting thresholds, all
domains satisfying per-domain reporting thresholds are reported. By default,
these are domains with conditional E-values of <= 10. The following
options allow you to change the default E-value reporting thresholds, or to
use bit score thresholds instead.
- -E <x>
- Report sequences with E-values <= <x> in per-sequence
output. The default is 10.0.
- -T <x>
- Use a bit score threshold for per-sequence output instead of an E-value
threshold (any setting of -E is ignored). Report sequences with a
bit score of >= <x>. By default this option is unset.
- -Z <x>
- Declare the total size of the database to be <x> sequences,
for purposes of E-value calculation. Normally E-values are calculated
relative to the size of the database you actually searched (e.g. the
number of sequences in target_seqdb). In some cases (for instance,
if you've split your target sequence database into multiple files for
parallelization of your search), you may know better what the actual size
of your search space is.
- --domE
<x>
- Report domains with conditional E-values <= <x> in
per-domain output, in addition to the top-scoring domain per significant
sequence hit. The default is 10.0.
- --domT
<x>
- Use a bit score threshold for per-domain output instead of an E-value
threshold (any setting of --domT is ignored). Report domains with a
bit score of >= <x> in per-domain output, in addition to
the top-scoring domain per significant sequence hit. By default this
option is unset.
- --domZ
<x>
- Declare the number of significant sequences to be <x>
sequences, for purposes of conditional E-value calculation for additional
domain significance. Normally conditional E-values are calculated relative
to the number of sequences passing per-sequence reporting threshold.
Inclusion thresholds control which hits are included in the
multiple alignment and profile constructed for the next search iteration. By
default, a sequence must have a per-sequence E-value of <= 0.001 (see
-E option) to be included, and any additional domains in it besides
the top-scoring one must have a conditional E-value of <= 0.001 (see
--domE option). The difference between reporting thresholds and
inclusion thresholds is that inclusion thresholds control which hits
actually get used in the next iteration (or the final output multiple
alignment if the -A option is used), whereas reporting thresholds
control what you see in output. Reporting thresholds are generally more
loose so you can see borderline hits in the top of the noise that might be
of interest.
- --incE
<x>
- Include sequences with E-values <= <x> in subsequent
iteration or final alignment output by -A. The default is 0.001.
- --incT
<x>
- Use a bit score threshold for per-sequence inclusion instead of an E-value
threshold (any setting of --incE is ignored). Include sequences
with a bit score of >= <x>. By default this option is
unset.
- --incdomE
<x>
- Include domains with conditional E-values <= <x> in
subsequent iteration or final alignment output by -A, in addition
to the top-scoring domain per significant sequence hit. The default is
0.001.
- --incdomT
<x>
- Use a bit score threshold for per-domain inclusion instead of an E-value
threshold (any setting of --incT is ignored). Include domains with
a bit score of >= <x>. By default this option is unset.
HMMER3 searches are accelerated in a three-step filter pipeline:
the MSV filter, the Viterbi filter, and the Forward filter. The first filter
is the fastest and most approximate; the last is the full Forward scoring
algorithm, slowest but most accurate. There is also a bias filter step
between MSV and Viterbi. Targets that pass all the steps in the acceleration
pipeline are then subjected to postprocessing -- domain identification and
scoring using the Forward/Backward algorithm.
Essentially the only free parameters that control HMMER's
heuristic filters are the P-value thresholds controlling the expected
fraction of nonhomologous sequences that pass the filters. Setting the
default thresholds higher will pass a higher proportion of nonhomologous
sequence, increasing sensitivity at the expense of speed; conversely,
setting lower P-value thresholds will pass a smaller proportion, decreasing
sensitivity and increasing speed. Setting a filter's P-value threshold to
1.0 means it will passing all sequences, and effectively disables the
filter.
Changing filter thresholds only removes or includes targets from
consideration; changing filter thresholds does not alter bit scores,
E-values, or alignments, all of which are determined solely in
postprocessing.
- --max
- Maximum sensitivity. Turn off all filters, including the bias filter, and
run full Forward/Backward postprocessing on every target. This increases
sensitivity slightly, at a large cost in speed.
- --F1
<x>
- First filter threshold; set the P-value threshold for the MSV filter step.
The default is 0.02, meaning that roughly 2% of the highest scoring
nonhomologous targets are expected to pass the filter.
- --F2
<x>
- Second filter threshold; set the P-value threshold for the Viterbi filter
step. The default is 0.001.
- --F3
<x>
- Third filter threshold; set the P-value threshold for the Forward filter
step. The default is 1e-5.
- --nobias
- Turn off the bias filter. This increases sensitivity somewhat, but can
come at a high cost in speed, especially if the query has biased residue
composition (such as a repetitive sequence region, or if it is a membrane
protein with large regions of hydrophobicity). Without the bias filter,
too many sequences may pass the filter with biased queries, leading to
slower than expected performance as the computationally intensive
Forward/Backward algorithms shoulder an abnormally heavy load.
jackhmmer always includes your original query sequence in
the alignment result at every iteration, and consensus positions are always
defined by that query sequence. That is, a jackhmmer profile is
always the same length as your original query, at every iteration. Therefore
jackhmmer gives you less control over profile construction than
hmmbuild does; it does not have the --fast, or --hand,
or --symfrac options. The only profile construction option available
in jackhmmer is --fragthresh:
- --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 sequence length L 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.
Whenever a profile is built from a multiple alignment, 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 (and this is why jackhmmer isn't concerned about
always including your original query sequence in each iteration's alignment,
even if it finds it again in the database you're searching). 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.
- --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.
In profile construction, 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.
Estimating the location parameters for the expected score
distributions for MSV filter scores, Viterbi filter scores, and Forward
scores requires 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.
- --nonull2
- Turn off the null2 score corrections for biased composition.
- -Z
<x>
- Assert that the total number of targets in your searches is
<x>, for the purposes of per-sequence E-value calculations,
rather than the actual number of targets seen.
- --domZ
<x>
- Assert that the total number of targets in your searches is
<x>, for the purposes of per-domain conditional E-value
calculations, rather than the number of targets that passed the reporting
thresholds.
- --seed
<n>
- Seed the random number generator with <n>, an integer >=
0. If <n> is >0, 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.
- --qformat
<s>
- Assert that input query seqfile is in format <s>,
bypassing format autodetection. Common choices for <s>
include: fasta, embl, genbank. Alignment formats also
work; common choices include: stockholm, a2m, afa,
psiblast, clustal, phylip. jackhmmer always
uses a single sequence query to start its search, so when the input
seqfile is an alignment, jackhmmer reads it one unaligned
query sequence at a time, not as an alignment. For more information, and
for codes for some less common formats, see main documentation. The string
<s> is case-insensitive (fasta or FASTA both
work).
- --tformat
<s>
- Assert that the input target sequence seqdb is in format
<s>. See --qformat above for accepted choices for
<s>.
- --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.
- --stall
- For debugging the MPI master/worker version: pause after start, to enable
the developer to attach debuggers to the running master and worker(s)
processes. Send SIGCONT signal to release the pause. (Under gdb: (gdb)
signal SIGCONT) (Only available if optional MPI support was enabled at
compile-time.)
- --mpi
- Run under MPI control with master/worker parallelization (using
mpirun, for example, or equivalent). Only available if optional MPI
support was enabled at compile-time.
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/).