OnWorks favicon

hmmpgmd - Online in the Cloud

Run hmmpgmd in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command hmmpgmd that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



hmmpgmd - daemon for searching a protein query against a protein database


hmmpgmd [options]


The hmmpgmd program is the daemon that we use internally for the hmmer.org web server, and
essentially stands in front of the protein search programs phmmer, hmmsearch, and hmmscan.

To use hmmpgmd, first an instance must be started up as a master server, and provided with
at least one of a sequence database (using the --seqdb flag) and/or an HMM database (using
the --hmmdb flag). A sequence database must be in the hmmpgmd format, which may be
produced using esl-reformat. An HMM database is of the form produced by hmmbuild. The
input database(s) will be loaded into memory by the master. When the master has finished
loading the database(s), it prints the line: "Data loaded into memory. Master is ready."

Only after master is ready, one or more instances of hmmpgmd may be started as workers.
These workers may be (and typically are) on different machines from the master, but must
have access to the same database file(s) provided to the master, with the same path. As
with the master, each worker loads the database(s) into memory, and indicates completion
by printing: "Data loaded into memory. Worker is ready."

The master server and workers are expected to remain running. One or more clients then
connect to the master and submit possibly many queries. The master distributes the work of
a query among the workers, collects results, and merges them before responding to the
client. Two example client programs are included in the HMMER3.1 src directory - the C
program hmmc2 and the perl script hmmpgmd_client_example.pl. These are intended as
examples only, and should be extended as necessary to meet your needs.

A query is submitted to the master from the client as a character string. Queries may be
the sort that would normally be handled by phmmer (protein sequence vs protein database),
hmmsearch (protein HMM query vs protein database), or hmmscan (protein query vs protein
HMM database).

The general form of a client query is to start with a single line of the form @[options],
followed by multiple lines of text representing either the query HMM or fasta-formatted
sequence. The final line of each query is the separator //.

For example, to perform a phmmer type search of a sequence against a sequence database
file, the first line is of the form @--seqdb 1, then the fasta-formatted query sequence
starting with the header line >sequence-name, followed by one or more lines of sequence,
and finally the closing //.

To perform an hmmsearch type search, the query sequence is replaced by the full text of a
HMMER-format query HMM.

To perform an hmmscan type search, the text matches that of the phmmer type search, except
that the first line changes to @--hmmdb 1.

In the hmmpgmd-formatted sequence database file, each sequence can be associated with one
or more sub-databases. The --seqdb flag indicates which of these sub-databases will be
queried. The HMM database format does not support sub-databases.

The result of each query is an undocumented data structure in binary format. In the future
the data will be returned in a proper serialized structure, but for now, it requires
meticulous unpacking within the client. The example clients show how this is done.


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


Run as the master server.

--worker <s>
Run as a worker, connecting to the master server that is running on IP address <s>.

Run as a daemon using config file: /etc/hmmpgmd.conf

--cport <n>
Port to use for communication between clients and the master server. The default
is 51371.

--wport <n>
Port to use for communication between workers and the master server. The default
is 51372.

--ccncts <n>
Maximum number of client connections to accept. The default is 16.

--wcncts <n>
Maximum number of worker connections to accept. The default is 32.

--pid <f>
Name of file into which the process id will be written.

--seqdb <f>
Name of the file (in hmmpgmd format) containing protein sequences. The contents of
this file will be cached for searches.

--hmmdb <f>
Name of the file containing protein HMMs. The contents of this file will be cached
for searches.

--cpu <n>
Number of parallel threads to use (for --worker ).

Use hmmpgmd online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

Linux commands

  • 1
    abidiff - compare ABIs of ELF files
    abidiff compares the Application Binary
    Interfaces (ABI) of two shared libraries
    in ELF format. It emits a meaningful
    Run abidiff
  • 2
    abidw - serialize the ABI of an ELF
    file abidw reads a shared library in ELF
    format and emits an XML representation
    of its ABI to standard output. The
    emitted ...
    Run abidw
  • 3
    cppo - lightweight cpp-like
    preprocessor for OCaml ...
    Run cppo
  • 4
    cppunit-config - script to get
    information about the installed version
    of cppunit ...
    Run cppunit-config
  • 5
    fwb_ipt - Policy compiler for Cisco IOS
    ACL ...
    Run fwb_iosacl
  • 6
    fwb_ipf - Policy compiler for ipfilter ...
    Run fwb_ipf
  • More »