NAME¶
nhmmer - search DNA/RNA queries against a DNA/RNA sequence database
SYNOPSIS¶
nhmmer [options] <queryfile> <seqdb>
DESCRIPTION¶
nhmmer is used to search one or more nucleotide queries against a
nucleotide sequence database. For each query in
<queryfile>, use
that query to search the target database of sequences in
<seqdb>,
and output a ranked list of the hits with the most significant matches to the
query. A query may be either a profile model built using
hmmbuild, a
sequence alignment, or a single sequence. Sequence based queries can be in a
number of formats (see
--qformat), and can typically be autodetected.
Note that only
Stockholm format supports the use of multiple
sequence-based queries.
Either the query
<queryfile> or the target
<seqdb> may
be '-' (a dash character), in which case the query file or target database
input will be read from a <stdin> pipe instead of from a file. Only one
input source can come through <stdin>, not both. If the query is
sequence-based and passed via <stdin>, the
--qformat flag must be
used. If the
<queryfile> contains more than one query, then
<seqdb> cannot come from <stdin>, because we can't rewind
the streaming target database to search it with another profile.
If the query is sequence-based, and not from <stdin>, a new file
containing the HMM(s) built from the input(s) in
<queryfile> may
optionally be produced, with the filename set using the
--hmmout flag.
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
option saves output in a simple tabular format that is concise and easier to
parse. The
-o option allows redirecting the main output, including
throwing it away in /dev/null.
OPTIONS¶
- -h
- Help; print a brief reminder of command line usage and all available
options.
OPTIONS FOR CONTROLLING OUTPUT¶
- -o <f>
- Direct the main human-readable output to a file <f> instead
of the default stdout.
- -A <f>
- Save a multiple alignment of all significant hits (those satisfying
inclusion thresholds) to the file <f>.
- --tblout <f>
- Save a simple tabular (space-delimited) file summarizing the per-target
output, with one data line per homologous target sequence found.
- --dfamtblout <f>
- Save a tabular (space-delimited) file summarizing the per-hit output,
similar to --tblout but more succinct.
- --aliscoresout <f>
- Save to file a list of per-position scores for each hit. This is useful,
for example, in identifying regions of high score density for use in
resolving overlapping hits from different models.
- --hmmout <f>
- If <queryfile> is sequence-based, the internally-computed HMM(s) are
written to <f>.
- --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.
OPTIONS CONTROLLING REPORTING THRESHOLDS¶
Reporting thresholds control which hits are reported in output files (the main
output,
--tblout, and
--dfamtblout). Hits are ranked by
statistical significance (E-value).
- -E <x>
- Report target sequences with an E-value of <= <x>. The
default is 10.0, meaning that on average, about 10 false positives will be
reported per query, so you can see the top of the noise and decide for
yourself if it's really noise.
- -T <x>
- Instead of thresholding output on E-value, instead report target sequences
with a bit score of >= <x>.
OPTIONS FOR INCLUSION THRESHOLDS¶
Inclusion thresholds are stricter than reporting thresholds. Inclusion
thresholds control which hits are considered to be reliable enough to be
included in an output alignment or a subsequent search round, or marked as
significant ("!") as opposed to questionable ("?") in hit
output.
- --incE <x>
- Use an E-value of <= <x> as the inclusion threshold. The
default is 0.01, meaning that on average, about 1 false positive would be
expected in every 100 searches with different query sequences.
- --incT <x>
- Instead of using E-values for setting the inclusion threshold, use a bit
score of >= <x> as the inclusion threshold. By default
this option is unset.
OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING¶
Curated profile databases may define specific bit score thresholds for each
profile, superseding any thresholding based on statistical significance alone.
To use these options, the profile must contain the appropriate (GA, TC, and/or
NC) optional score threshold annotation; this is picked up by
hmmbuild
from Stockholm format alignment files. For a nucleotide model, each
thresholding option has a single per-hit threshold <x> This acts as if
-T<x> --incT<x> has been applied
specifically using each model's curated thresholds.
- --cut_ga
- Use the GA (gathering) bit score threshold in the model to set per-hit
reporting and inclusion thresholds. GA thresholds are generally considered
to be the reliable curated thresholds defining family membership; for
example, in Dfam, these thresholds are applied when annotating a genome
with a model of a family known to be found in that organism. They may
allow for minimal expected false discovery rate.
- --cut_nc
- Use the NC (noise cutoff) bit score threshold in the model to set per-hit
reporting and inclusion thresholds. NC thresholds are less stringent than
GA; in the context of Pfam, they are generally used to store the score of
the highest-scoring known false positive.
- --cut_tc
- Use the NC (trusted cutoff) bit score threshold in the model to set
per-hit reporting and inclusion thresholds. TC thresholds are more
stringent than GA, and are generally considered to be the score of the
lowest-scoring known true positive that is above all known false
positives; for example, in Dfam, these thresholds are applied when
annotating a genome with a model of a family not known to be found in that
organism.
OPTIONS CONTROLLING THE ACCELERATION PIPELINE¶
HMMER3 searches are accelerated in a three-step filter pipeline: the
scanning-SSV 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. There is also a bias filter step between SSV 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.
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
- Turn off (nearly) all filters, including the bias filter, and run full
Forward/Backward postprocessing on most of the target sequence. In
contrast to hmmscan, the --max flag in nhmmscan sets
the scanning-SSV filter threshold to 0.4, not 1.0. Use of this flag
increases sensitivity somewhat, at a large cost in speed.
- --F1 <x>
- Set the P-value threshold for the SSV 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>
- Set the P-value threshold for the Viterbi filter step. The default is
0.001.
- --F3 <x>
- 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.
OTHER OPTIONS¶
- --tformat <s>
- Assert that the target sequence database file is in format
<s>. Accepted formats include fasta, embl,
genbank, ddbj, uniprot, stockholm,
pfam, a2m, and afa. The default is to autodetect the
format of the file.
- --qformat <s>
- Declare that the input queryfile is in format <s>.
This is used when the query is sequence-based, rather than made up of
profile model(s). Currently the accepted multiple alignment sequence file
formats include Stockholm, Aligned FASTA, Clustal, NCBI PSI-BLAST, PHYLIP,
Selex, and UCSC SAM A2M. Default is to autodetect the format of the file.
- --nonull2
- Turn off the null2 score corrections for biased composition.
- -Z <x>
- For the purposes of per-hit E-value calculations, Assert that the total
size of the target database is <x> million nucleotides,
rather than the actual number of targets seen.
- --seed <n>
- Set the random number seed to <n>. Some steps in
postprocessing require Monte Carlo simulation. The default is to use a
fixed seed (42), so that results are exactly reproducible. Any other
positive integer will give different (but also reproducible) results. A
choice of 0 uses a randomly chosen seed.
- --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. This flag may be
used to override the value of W established for the model by
hmmbuild, or when the query is sequence-based.
- --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). This flag may be
used to override the value of W established for the model by
hmmbuild, or when the query is sequence-based.
- --toponly
- Only search the top strand. By default both the query sequence and its
reverse-complement are searched.
- --bottomonly
- Only search the bottom (reverse-complement) strand. By default both the
query sequence and its reverse-complement are searched.
- --cpu <n>
- Set the number of parallel worker threads to <n>. By default,
HMMER sets this to the number of CPU cores it detects in your machine -
that is, it tries to maximize the use of your available processor cores.
Setting <n> higher than the number of available cores is of
little if any value, but you may want to set it to something less. You can
also control this number by setting an environment variable,
HMMER_NCPU.
This option is only available if HMMER was compiled with POSIX threads
support. This is the default, but it may have been turned off at
compile-time for your site or machine for some reason.
- --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 in MPI master/worker mode, using mpirun. (Only available if
optional MPI support was enabled at compile-time.)
SEE ALSO¶
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 ().
COPYRIGHT¶
Copyright (C) 2013 Howard Hughes Medical Institute.
Freely distributed under the GNU General Public License (GPLv3).
For additional information on copyright and licensing, see the file called
COPYRIGHT in your HMMER source distribution, or see the HMMER web page ().
AUTHOR¶
Eddy/Rivas Laboratory
Janelia Farm Research Campus
19700 Helix Drive
Ashburn VA 20147 USA
http://eddylab.org