Scroll to navigation

cmfetch(1) Infernal Manual cmfetch(1)


cmfetch - retrieve covariance model(s) from a file


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)


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 tRNA
% cmfetch 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.


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

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.

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

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

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


See infernal(1) 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 (


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 (


Sep 2023 Infernal 1.1.5