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

# hmmalign(1)

align sequences to a profile

## NAME

hmmalign - align sequences to a profile

## SYNOPSIS

**hmmalign** \[*options*\] *hmmfile* *seqfile*

## DESCRIPTION

Perform a multiple sequence alignment of all the sequences in *seqfile* by aligning them individually to the profile HMM in *hmmfile.* The new alignment is output to stdout.

The *hmmfile* should contain only a single profile. If it contains more, only the first profile in the file will be used.

Either  *hmmfile* or  *seqfile* (but not both) may be '-' (dash), which means reading this input from stdin rather than a file.

The sequences in  *seqfile* are aligned in unihit local alignment mode.  Therefore they should already be known to contain only a single domain (or a fragment of one). The optimal alignment may assign some residues as nonhomologous (N and C states), in which case these residues are still included in the resulting alignment, but shoved to the outer edges. To trim these unaligned nonhomologous residues from the result, see the **--trim** option.

## OPTIONS

- **-h**

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

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

  Direct the output alignment to file *\<f\>,* rather than to stdout.

- **--mapali** *\<f\>*

  Merge the existing alignment in file  *\<f\>* into the result, where  *\<f\>* is exactly the same alignment that was used to build the model in   *hmmfile.* This is done using a map of alignment columns to consensus  profile positions that is stored in the *hmmfile.* The multiple alignment in  *\<f\>* will be exactly reproduced in its consensus columns (as defined by the profile), but the displayed alignment in insert columns may be altered, because insertions relative to a profile are considered by convention to be unaligned data.

- **--trim**

  Trim nonhomologous residues (assigned to N and C states in the optimal alignments) from the resulting multiple alignment output.

- **--amino**

  Assert that sequences in  *seqfile* are protein, bypassing alphabet autodetection.

- **--dna**

  Assert that sequences in *seqfile* are DNA, bypassing alphabet autodetection.

- **--rna**

  Assert that sequences in  *seqfile* are RNA, bypassing alphabet autodetection.

- **--informat** *\<s\>*

  Assert that input *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**. 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).

- **--outformat** *\<s\>*

  Write the output alignment in format *\<s\>*. Common choices for  *\<s\>* include: **stockholm**, **a2m**, **afa**, **psiblast**, **clustal**, **phylip**. The string *\<s\>* is case-insensitive (**a2m** or **A2M** both work). Default is **stockholm**.

## 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
```
