|
|
Code generation has been intentionally disabled for this repository due to the number of "hacks" that would be necessary to adjust the generation output to fit this service’s needs. If code generation is needed, commit all changes before running the code generator and use git diff to re-apply the manual changes to the generated code. |
Building this project locally can be done by running the following command (from the repository root):
$ docker-compose -f docker/docker-compose.local.yml upThis will spin up all the required containers, mounting the rest service on your
host network (as opposed to the docker managed network). Running this service
locally will require and ssh tunnel or, preferrably, running sshuttle to grant
the service access to the Oracle user and login databases.
This repo contains the source and configuration for 4 of the 5 containers the multi-blast service requires (the fifth is an off the shelf image).
# repository root /: |- blast/ | |- formatter/ (1) | |- querier/ (2) |- databases/ | |- queue/ (3) | |- wdk/ (4) |- docker/ (5) |- docs/ (6) |- rest-service/ (7)
-
Source for the Blast Formatter
-
Source for the Blast Querier
-
Container config for the Job Queue Database
-
DDL for the multi-blast user database tables.
-
Collection of docker-compose configs for the project.
-
API and blast+ tool documentation.
-
Source for the Public REST Service
This project consists of 5 docker containers and 2 shared volumes.
The blast formatter is a small server that runs the NCBI blast_formatter tool
on the output of a given job and returns the formatted result.
This server is called directly by the rest service.
The blast querier is a small server managed by the Job Queue that runs blast queries on a selected db using the input provided in the request.
A Fireworq job queue managing calls to the Blast Querier server.
A MySQL database backing the job queue. No direct interactions with this database are required, it is managed entirely by the Fireworq service.
The public facing Java server that is used to validate, store, submit, check on, and otherwise deal with the running of blast jobs and the returning of the results in client specified formats.
Internally this service is broken up into 6 modules:
-
Config
-
DB
-
Formatter
-
Job-Data
-
Queue
-
Rest-Service
A tiny module containing only the CLI/Environment configuration file. This is broken into a separate module to avoid circular module dependencies.
This module contains all code that directly deals with the Blast Formatter service.
This module contains all code that directly deals with the mounted blast output filesystem.
This module contains all code that directly deals with the Job Queue service.