Skip to content

Latest commit

 

History

History
102 lines (73 loc) · 4.2 KB

README.md

File metadata and controls

102 lines (73 loc) · 4.2 KB

Web application for haddock3

Research Software Directory Badge DOI fair-software.eu Node.js CI

Haddock3 (High Ambiguity Driven protein-protein DOCKing) is a an information-driven flexible docking approach for the modeling of biomolecular complexes. This software wraps the the haddock3 command line tool in a web application. The web application makes it easy to make a configuration file, run it and show the results.

Uses

sequenceDiagram
    Web app->>+Web app: Login
    Web app->>+Builder: Construct workflow config
    Web app->>+Haddock3 restraints web service: Calculate restraints
    Builder->>+Bartender: Submit job
    Bartender->>+haddock3 CLI: Run
    Web app->>+Bartender: State of job
    Web app->>+Bartender: Result of job
Loading

Or in portal mode:

sequenceDiagram
Web app->>+Portal: Login
Web app->>+Builder: Construct workflow config
Web app->>+Haddock3 restraints web service: Calculate restraints
Builder->>+Bartender: Submit job
Bartender->>+haddock3 CLI: Run
Web app->>+Bartender: State of job
Web app->>+Bartender: Result of job
Loading

Deployment

Deployments with containers are explained in deploy/README.md. The easiest deployment is with a single worker at deploy/arq/README.mnd.

Setup

The web app is written in Node.js to install dependencies run:

npm install

Configuration of the web application is done via .env file or environment variables. For configuration of authentication & authorization see docs/auth.md. For configuration of job submission see docs/bartender.md#configuration. For configuration of how to rewrite the submitted workflow file see docs/rewrite.md. For instructions to run within the BonvinLab computational stuctural biology portal see docs/portal.

Use .env.example as a template:

cp .env.example .env
# Edit .env file

Create rsa key pair for signing & verifying JWT tokens for bartender web service with:

openssl genpkey -algorithm RSA -out private_key.pem \
    -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in private_key.pem -out public_key.pem

Bartender web service

The bartender web service should be running if you want to submit jobs. See docs/bartender.md how to set it up.

Haddock3 restraints web service

The scenario forms uses the haddock3 restraints web service. to calculate restraints based on given active residues and structures.

For the web application to use this service, it needs to be running with

# Activated Python environment with haddock3, fastapi and uvicorn installed
uvicorn --port 5000 haddock.clis.restraints.webservice:app

If not running on http://localhost:5000 then set the HADDOCK3_RESTRAINTS_URL environment variable.

See docs/scenarios.md for more information on how the web application uses the restraints web service.

Development

For development instructions see CONTRIBUTING.md.

Stack

The tech stack is explained in docs/stack.md.