---
name: "hmmfetch"
section: "1"
platform: "linux"
package: "hmmer"
version: "3.4+dfsg-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/hmmfetch"
---

# hmmfetch(1)

retrieve profiles from a file

## NAME

hmmfetch - retrieve profiles from a file

## SYNOPSIS

```
hmmfetch [options] hmmfile key
 (retrieve HMM named key)
hmmfetch -f [options] hmmfile keyfile
 (retrieve all HMMs listed in keyfile)
hmmfetch --index [options] hmmfile
 (index hmmfile for fetching)
```

## DESCRIPTION

Quickly retrieves one or more profile HMMs from an *hmmfile* (a large Pfam database, for example).

For maximum speed, the  *hmmfile* should be indexed first, using **hmmfetch --index**. The index is a binary file named *hmmfile*.ssi. However, this is optional, and retrieval will still work from unindexed files, albeit much more slowly.

The default mode is to retrieve a single profile by name or accession, called the *key*. For example:

```
    % hmmfetch Pfam-A.hmm Caudal_act
    % hmmfetch Pfam-A.hmm PF00045
```

With the **-f** option, a  *keyfile* containing a list of one or more keys is read instead.  The first whitespace-delimited field on each non-blank non-comment line of the *keyfile* is used as a  *key*, and any remaining data on the line is ignored. This allows a variety of whitespace delimited datafiles to be used as a *keyfile*.

When using **-f** and a *keyfile*, if  **hmmfile** has been indexed, the keys are retrieved in the order they occur in the  *keyfile*, but if  **hmmfile** isn't indexed, keys are retrieved in the order they occur in the  **hmmfile**. This is a side effect of an implementation that allows multiple keys to be retrieved even if the **hmmfile** is a nonrewindable stream, like a standard input pipe.

In normal use (without **--index** or  **-f** options), *hmmfile* may be '-' (dash), which means reading input from stdin rather than a file.   With the **--index** option,  *hmmfile* may not be '-'; it does not make sense to index a standard input stream. With the  **-f** option,   either  *hmmfile* or  *keyfile* (but not both) may be '-'. It is often particularly useful to read *keyfile* from standard input, because this allows use to use arbitrary command line invocations to create a list of HMM names or accessions, then fetch them all to a new file, just with one command.

By default, fetched HMMs are printed to standard output in HMMER3 format.

## OPTIONS

- **-h**

  Help; print a brief reminder of command line usage and all available options.

- **-f**

  The second commandline argument is a  *keyfile* instead of a single  *key*. The first field on each line of the *keyfile* is used as a retrieval  *key* (an HMM name or accession).  Blank lines and comment lines (that start with a # character) are ignored.

- **-o** *\<f\>*

  Output HMM(s) to file *\<f\>* instead of to standard output.

- **-O**

  Output one retrieved HMM (by *key*) to a file named *key*. This is a convenience for saving some typing: instead of

  ```
   % hmmfetch -o RRM_1 hmmfile RRM_1
  ```

  you can just type

  ```
   % hmmfetch -O hmmfile RRM_1
  ```

  The **-O** option only works if you're retrieving a single profile; it is incompatible with  **-f.**

- **--index**

  Instead of retrieving one or more profiles from *hmmfile*, index the *hmmfile* for future retrievals. This creates a *hmmfile*.ssi binary index file.

## SEE ALSO

See  [**hmmer**(1)](/hmmer/1.md) 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

```
Copyright (C) 2023 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/).

## AUTHOR

```
http://eddylab.org
```
