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
- bartender for job execution.
- workflow-builder to construct a Haddock3 workflow config file.
- haddock3 to compute and
- Its embedded restraints web service is also used.
- haddock3-ui for reusable UI components.
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
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
Deployments with containers are explained in deploy/README.md. The easiest deployment is with a single worker at deploy/arq/README.mnd.
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
The bartender web service should be running if you want to submit jobs. See docs/bartender.md how to set it up.
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.
For development instructions see CONTRIBUTING.md.
The tech stack is explained in docs/stack.md.