Skip to content

taffish/hmmer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

taf-hmmer

TAFFISH wrapper for HMMER, a command suite for building profile hidden Markov models and searching biological sequence databases for homologs, domains, and motifs.

This repository packages upstream HMMER 3.4 as a TAFFISH tool app. HMMER is a suite rather than a single-command program, so the recommended TAFFISH usage is explicit command mode:

taf-hmmer hmmbuild seed.hmm seed.sto
taf-hmmer hmmsearch seed.hmm proteins.fa
taf-hmmer hmmscan profiles.hmm query.fa

Running taf-hmmer without an upstream command prints a compact suite summary.

Release 3.4-r2 is a help-only TAFFISH update. It keeps the upstream software, Dockerfile, runtime dependencies, smoke tests, and command behavior unchanged from 3.4-r1, and refreshes the terminal taf-hmmer --help text.

Installation

Install from the public TAFFISH Hub index:

taf update
taf install hmmer

Install the exact release:

taf install hmmer 3.4-r2

For local testing before the app is published to the public index:

taf install --from .

Usage

Show TAFFISH app help:

taf-hmmer --help

Show the TAFFISH package version:

taf-hmmer --version

Show the HMMER suite summary provided by this app:

taf-hmmer
taf-hmmer -- --help

Show upstream command help:

taf-hmmer hmmbuild -h
taf-hmmer hmmsearch -h
taf-hmmer hmmscan -h
taf-hmmer esl-reformat -h

Build a profile HMM from a Stockholm alignment:

taf-hmmer hmmbuild family.hmm family.sto

Search a sequence database with a profile HMM:

taf-hmmer hmmsearch --tblout hits.tbl family.hmm proteins.fa

Prepare an HMM database for hmmscan and scan query sequences:

taf-hmmer hmmpress profiles.hmm
taf-hmmer hmmscan --domtblout domains.tbl profiles.hmm query.fa

Align sequences to a profile HMM:

taf-hmmer hmmalign family.hmm proteins.fa > aligned.sto

Search protein sequences directly without a prebuilt HMM:

taf-hmmer phmmer query.fa proteins.fa
taf-hmmer jackhmmer -N 3 query.fa proteins.fa

Search nucleotide sequence databases:

taf-hmmer nhmmer dna_query.fa dna_targets.fa
taf-hmmer makehmmerdb dna_targets.fa dna_targets.hmmerdb

Use bundled Easel miniapps for sequence and alignment manipulation:

taf-hmmer esl-reformat fasta alignment.sto > alignment.fa
taf-hmmer esl-seqstat proteins.fa
taf-hmmer esl-sfetch --index proteins.fa

Because this is a command-mode TAFFISH tool, the first non-option argument is the command to run inside the container. HMMER has no single upstream hmmer command, so naming the upstream executable explicitly is the clearest form:

taf-hmmer hmmbuild family.hmm family.sto
taf-hmmer hmmsearch family.hmm proteins.fa
taf-hmmer esl-reformat fasta alignment.sto

For option-leading arguments sent to the app's suite-summary entrypoint, use the -- separator:

taf-hmmer -- --help
taf-hmmer -- --version

This README lists common usage patterns, not the full upstream manual. Use each upstream command's help output for its complete option list.

Package

name: hmmer
command: taf-hmmer
version: 3.4-r2
kind: tool
image: ghcr.io/taffish/hmmer:3.4-r2

Container

The container image is built from docker/Dockerfile. It starts from debian:12-slim, downloads the official HMMER hmmer-3.4.tar.gz release tarball from Eddy Lab, verifies its SHA-256 checksum, compiles HMMER from source, installs HMMER under /opt/hmmer, and installs the bundled Easel miniapps.

The official release tarball is used instead of GitHub's generated tag archive because it includes the Easel source tree, upstream tutorial data, and Userguide.pdf.

The image includes these public HMMER commands:

alimask
hmmalign
hmmbuild
hmmconvert
hmmemit
hmmfetch
hmmlogo
hmmpgmd
hmmpgmd_shard
hmmpress
hmmscan
hmmsearch
hmmsim
hmmstat
jackhmmer
phmmer
nhmmer
nhmmscan
makehmmerdb

The image also includes bundled Easel miniapps:

easel
esl-afetch
esl-alimanip
esl-alimap
esl-alimask
esl-alimerge
esl-alipid
esl-alirev
esl-alistat
esl-compalign
esl-compstruct
esl-construct
esl-histplot
esl-mask
esl-mixdchlet
esl-reformat
esl-selectn
esl-seqrange
esl-seqstat
esl-sfetch
esl-shuffle
esl-ssdraw
esl-translate
esl-weight

The runtime includes gzip and gunzip because HMMER/Easel can read gzip compressed HMM, sequence, and alignment inputs through external gzip commands.

The upstream tutorial files and user guide are kept under:

/opt/hmmer/share/doc/hmmer

The image is built and validated natively for:

linux/amd64

HMMER 3.4 can compile many command-line paths on native arm64, but the makehmmerdb FM-index path used by the nucleotide database workflow reports an SSE-only format/runtime limitation on native arm64. To keep this TAFFISH app as a complete HMMER suite, the published image is therefore linux/amd64 native. The app embeds Docker/Podman --platform linux/amd64 runtime args, so arm64 hosts with Docker or Podman can still run the full suite through amd64 emulation:

TAFFISH_CONTAINER_BACKEND=docker taf-hmmer hmmbuild family.hmm family.sto
TAFFISH_CONTAINER_BACKEND=podman taf-hmmer hmmsearch family.hmm proteins.fa

Apptainer availability on non-amd64 hosts depends on local platform/emulation support.

Boundaries

This app packages the standard HMMER command-line suite and bundled Easel utilities. It does not bundle Pfam, Dfam, UniProt, or any other external profile/sequence database. Build, press, download, or mount databases yourself before running hmmsearch, hmmscan, nhmmer, or nhmmscan.

The build does not enable MPI. Standard HMMER thread options such as --cpu and HMMER_NCPU are available where upstream supports them, but MPI workflows are outside this app.

hmmpgmd and hmmpgmd_shard are installed because they are public upstream programs. TAFFISH does not orchestrate persistent services, host networking, or port exposure for them; use backend runtime policy if you intentionally deploy the daemon mode.

HMMER auxiliary programs built only for upstream development or examples are not exposed as primary commands unless upstream make install installs them.

Smoke

The TAFFISH metadata declares Docker smoke checks that verify:

exist: all public HMMER commands, bundled Easel miniapps, gzip, gunzip
test:  HMMER help reports 3.4
test:  the TAFFISH suite-summary entrypoint works
test:  core public command help paths are available
test:  hmmbuild, hmmstat, hmmemit, and hmmsearch run on tutorial data
test:  hmmpress and hmmscan run on tutorial data
test:  gzip-compressed input is accepted
test:  Easel reformat/stat paths work
test:  nhmmer and makehmmerdb run on tutorial DNA data

These checks validate the container, command surface, hidden gzip dependency, bundled tutorial data, and representative protein/nucleotide HMMER workflows. They do not replace scientific validation on real production databases.

Upstream

project: HMMER
homepage: http://hmmer.org/
source:   https://github.com/EddyRivasLab/hmmer
release:  https://github.com/EddyRivasLab/hmmer/releases/tag/hmmer-3.4
download: http://eddylab.org/software/hmmer/hmmer-3.4.tar.gz
license:  BSD-3-Clause
citation: Eddy 2008; Eddy 2011
doi:      10.1371/journal.pcbi.1000069; 10.1371/journal.pcbi.1002195
pmid:     18516236; 22039361

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors