Client-server to handle Reindeer in query mode.
Project description
RDEER-SERVICE
rdeer-service is a tool to facilitate the use of Reindeer as a socket mode. It allows multiple Reindeer indexes to be loaded into memory, spread over several servers, enabling queries to be made quickly and easily.
It consists of a server part: rdeer-server, one instance of which will be started per index server, and a client part: rdeer, which allows index manipulation (stopping, starting, etc.) and queries.
It is a companion to Transipedia, a web application for querying Reindeer but it may be useful to use it independently.
Prerequisite
- Reindeer must be installed on indexes servers and the reindeer_socket binary in your $PATH
- You need some Reindeer indexes (Stored on SSD disks to better performances, otherwise build indexes with the Reindeer
--mem-query
option).
Installation
Recommanded (pip)
python3 -m pip install rdeer-service
Other (git)
git clone https://github.com/Bio2M/rdeer-service.git
How to use?
Start the server
rdeer-server requires Reindeer to be installed on the same physical machine. There can be several instances of rdeer-server running on the same server, each instance listening on a different TCP port (-p
option). rdeer-client can query remote servers, so you can have multiple servers hosting rdeer-server/Reindeer and query them all from the same machine.
rdeer-server /path/to/indexes
- rdeer-server listen on port 12800, you can change this with
--port
option. - The server will only be able to handle indexes in the specified directory. If your indexes are spread over several directories, you may create symlinks in
/path/to/indexes
. - You can add, remove or change the name of the indexes, rdeer-server takes the changes on the fly.
- It is recommended to start rdeer-server as a daemon, using systemd, supervisord or similar.
Use the client
The client could requests remote rdeer-server servers. You can enterely manage yours distributed Reindeer indexes with subcommand:
rdeer list -a
to show all indexes with their statusrdeer start <index-name>
to start a index (the index name is the directory hosting the index files)rdeer stop <index-name>
to stop a indexrdeer check <index-name>
to verify if index respondingrdeer status <index-name>
to get the index status (available, loading, running, error)rdeer query <index-name> -q <query.fa>
to request an index
show running indexes:
rdeer-client list
Show all indexes handled by rdeer-server
rdeer-client list -a
list all accessible indexes by rdeer-server, with status. Status are :
available
the index is not runningloading
the index is in a transitional mode until the running moderunning
the index is started, and can be resquested.error
a error occured on the index.
Start an index:
rdeer-client start my-index
Will starts the my-index Reindeer index. When status is running
, the index is ready to respond to requests.
Query an index
rdeer-client query my-index -q fasta-query
Requests the specified index, the query file is required and must be in a fasta format.
Options of query subcommand (rdeer-client query --help
):
-q/--query
to send a query file at the fasta format (required)-f/--format {raw,sum,average,mean,normalize}
whereraw
to get resultssum
to get sum of kmer countsmean
,average
to get sum of kmer counts / number of kmersnormalize
to get normalized counts as billion of kmers
-s/--server
to request rdeer-server on remote host-p/--port
to request rdeer-server on a specified port (default: 12800)-o/--outfile
output is stdout by default, you can specified a file
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for rdeer_service-2.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f7a54117da7a5bf1401591145511509257404e7f89ee1593bd6b9d3fa95aca7 |
|
MD5 | 75f30db6ecc571a2c2acb4de43a1d27b |
|
BLAKE2b-256 | f1cc61383da9b1df1393a7d84511c4df9d264f68528526dbd5d6d0927a0b25e1 |