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.
notifications
rdeer try to restart the indexes cyclically when error stastus
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 index.rdeer kill <index-name>
If the index crashes during loading, rdeer-server will try to restart. it cyclically. The stop option cannot be used during loading, so the kill option must be used.rdeer check <index-name>
to verify if index responding.rdeer 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
File details
Details for the file rdeer-service-2.0.8.tar.gz
.
File metadata
- Download URL: rdeer-service-2.0.8.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc3985aa985df968fef33fadfe4b149291914df56a9fb10e32eca2f0533c9fcf |
|
MD5 | 24bf52f1cc38cd164323ab07dc3018be |
|
BLAKE2b-256 | 25c8d81820b2a6df5d0d3ae8d12a9ad1b6e06011263c5450dc23b22f2d1e09e0 |
File details
Details for the file rdeer_service-2.0.8-py3-none-any.whl
.
File metadata
- Download URL: rdeer_service-2.0.8-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c53006a724e481aa3a45afc84540fcddfa9edf3b5f03d3835121a144feb67c68 |
|
MD5 | ab840aab0aff7948513ff0c582ebfa7e |
|
BLAKE2b-256 | 03889cdba4f3ef943eb6abb4cce98a3c5317a4a5b73759f3bb03225ae036f41c |