---
name: "cmfetch"
section: "1"
platform: "linux"
package: "infernal"
version: "1.1.5-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cmfetch"
---

# cmfetch(1)

retrieve covariance model(s) from a file

## NAME

cmfetch - retrieve covariance model(s) from a file

## SYNOPSIS

**cmfetch** *\[options\]* *\<cmfile\>* *\<key\>*\
  (retrieves CM named \<key\>)

**cmfetch -f** *\[options\]* *\<cmfile\>* *\<keyfile\>*\
  (retrieves all CMs listed in \<keyfile\>)

**cmfetch --index** *\[options\]* *\<cmfile\>*\
  (indexes \<cmfile\> for fetching)

## DESCRIPTION

Retrieves one or more CMs from an *\<cmfile\>* (a large Rfam database, for example).

To enable very fast retrieval, index the  *\<cmfile\>* first, using **cmfetch --index.** The index is a binary file named *\<cmfile\>.ssi.*

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

```
  % cmfetch Rfam.cm tRNA
  % cmfetch Rfam.cm RF00005
```

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  *\<keyfile\>s.*

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

In normal use (without *--index* or  *-f* options), *\<cmfile\>* may be '-' (dash), which means reading input from *stdin* rather than a file.   With the *--index* option,  *\<cmfile\>* may not be '-'; it does not make sense to index a standard input stream. With the  *-f* option,   either  *\<cmfile\>* 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 CM names or accessions, then fetch them all to a new file, just with one command.

By default, the CM is printed to standard output in Infernal-1.1 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\>* (a CM name or accession).  Blank lines and comment lines (that start with a # character) are ignored.

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

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

- **-O**

  Output CM(s) to individual file(s) named *\<key\>* instead of standard output.

- **--index**

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

## SEE ALSO

See  **[infernal(1)](/infernal/1.md)** for a master man page with a list of all the individual man pages for programs in the Infernal package.

For complete documentation, see the user guide that came with your Infernal distribution (Userguide.pdf); or see the Infernal web page (http://eddylab.org/infernal/).

## 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 Infernal source distribution, or see the Infernal web page  (http://eddylab.org/infernal/).

## AUTHOR

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