exonerate-server [ options ] <index path>
exonerate-server is a multi-threaded server for the exonerate sequence
It uses a set of sequences and a corresponding index file to allow fast
of large datasets.
Firstly, an .esd file must be made from the sequence files. The .esd
file is an Exonerate Sequence Dataset file, and can be used to group
together any set of sequences where each sequences containing unique
identifiers. This is done by using the fasta2esd utility.
fasta2esd genome.fasta genome.esd
Next, an .esi file my be made from the .esd file. The .esi file is an
Exonerate Sequence Index file, and contains an index or set of indices
corresponding to a particular dataset. This is done by using the
esd2esi genome.esd genome.esi
Once the .esi file has been generated, the exonerate-server may be
While the server is running, exonerate may be used to query the server
by replacing the target sequences in the command line with the name of
the server and port number. The default port number for the exonerate-
server is 12886.
exonerate query.fasta localhost:12886
Some of the command line options for the exonerate-server are the same
as for the exonerate client, and these are documented in the man page
for exonerate. The other options which are specific to exonerate-
server are documented here.
Specify the port on which the server should listen. By default,
exonerate-server will listen on port 12886, but alternative
ports may be specified with this option.
ory footprint. It is not advised to turn preloading off unless
testing or debugging the server.
The server is multithreaded. This option sets the number client
processes which are allowed to connect to the server simultane-
ously. For good performance, it should not be set to more than
the number of CPUs on the machine on which the server is run-
Set the verbosity level for the server. If it is zero, the
server will be silent, and the higher the number, the more mes-
sages are reported by the server about what is happening.
This section documents the communication interface between the client
and server. The interface is documented for people wishing to write
their own custom server to sit behind exonerate - for normal use of
exonerate, it is not necessary to know this.
The interface works by the client sending simple command lines and the
server sending simple reply lines over a socket. All the commands and
replies are simple lines of ASCII text, so it is possible to use telnet
as a client for testing a server.
Any command is a single line of text, but a reply may contain many
lines of text. The replies are in the form of <tag>: <message>
Any reply can include lines with the tag warning: or error: These warn-
ing: and error: tags are echoed by the client, and the client will exit
after receiving any error: reply.
When the server is returning a multiline reply, the first line must
show the number of lines in the whole reply as: linecount: <count> For
examples, see the replies from the get hsps commands in the example
The client will only open a single connection to any server, although a
multithreaded server is obviously required to allow multiple clients to
Commands and replies used in for the interface.
Reply: version <server name> <server version>
Reply: ( no reply - server closes connection )
Command: lookup <eid>
Reply: lookup: <iid>
The lookup command is used to map an external identifier to
an internal identifier.
Command: get info <iid>
Reply: seqinfo: <len> <checksum> <eid> [ <def> ]
The get info command returns information about a sequence in
the database. The returned fields are:
<len> the sequence length
<checksum> a gcg format checksum (see below)
<eid> the external id (eg. from fasta header)
<def> a description line for the sequence (also
from the fasta header), this field is
optional an may be ommitted.
Command: get seq <iid>
Reply: seq: <seq>
The get seq command returns a whole sequence on one line.
Command: get subseq <iid> <start> <len>
Reply: subseq: <sequence>
The get subseq command returns part of a sequence. The start
of the sequence is position zero. eg. get subseq 0 0 10 will
return the first 10 bases of the first sequence in the
Command: set query <seq>
Reply: ok: <len> <checksum>
The seq query command is used to send a query sequence to the
server. It returns the length of the sequence and a gcg
Command: revcomp <query | target>
Reply: ok: <query | target> strand <forward | revcomp>
The revcomp query command makes the server reverse complement
the query. This is to save the bandwidth of sending the
The revcomp target command is to tell the server to treat the
database as its reverse complement. The client only sends
this command when searching a translated database, so need
not be implemented for most types of search.
Command: set param <name> <value>
<iid> The internal id of the target sequence for
<query_pos> The hsp query start position
<target_pos> The hsp target start position
<length> The hsp length
The last three fields represent an HSP, and may be repeated
many times on one hspset: reply line.
A simple example client server dialog.
% telnet localhost 12886
Connected to localhost.localdomain.
Escape character is '^]'.
version: exonerate-server 2.0.0
dbinfo: dna softmasked 100000 1701 38113579
% lookup AA159529.1
% get info 88065
seqinfo: 62 2028 AA159529.1 zo72g05.s1 Stratagene pancreas (#937208) Homo sapiens cDNA
% get seq 88065
% get subseq 88065 10 20
% set query NAACTCATCNTTTTCTGCTGNATCCTCTTCACCAGTTTGGGGGANGGCCTGCACTTCCANAG
ok: 62 2028
% get hsps
hspset: 12423 1 349 41
hspset: 44900 1 356 47
hspset: 61781 1 358 41 36 392 26
hspset: 70065 1 349 41 36 383 26
hspset: 88065 1 1 61
hspset: 91032 1 357 41 36 391 26
hspset: 91442 1 350 41 36 384 26
hspset: 92971 1 348 41 36 382 26
hspset: 94311 1 375 41
hspset: 95381 1 346 41 36 380 26
hspset: 96808 10 385 32 36 410 26
hspset: 88449 18 11 22
hspset: 91036 6 6 56
hspset: 93736 36 400 26
% revcomp query
ok: query strand revcomp
% get hsps
hspset: 12564 0 64 26 20 83 41
hspset: 61780 0 266 61
fasta2esd human.genomic.fasta human.genomic.esd esd2esi --translate yes
human.genomic.esd human.genomic.trans.esi exonerate-server --port 1234
human.genomic.trans.esi exonerate pep.fasta localhost:1234 --model p2g
--seedrepeat 3 --geneseed 250
This documentation accompanies version 2.1.0 of the exonerate package.
Guy St.C. Slater. <firstname.lastname@example.org>. See the AUTHORS file accompanying
the source code for a list of contributors.
This source code for the exonerate package is available under the terms
of the GNU general public licence.
Please see the file COPYING which was distrubuted with this package, or
http://www.gnu.org/licenses/gpl.txt for details.
This package has been developed as part of the ensembl project. Please
see http://www.ensembl.org/ for more information.
exonerate-server January 2008 exonerate-server(1)
Man(1) output converted with