haddocking / haddock3

Official repo of the modular BioExcel version of HADDOCK
https://www.bonvinlab.org/haddock3
Apache License 2.0
88 stars 28 forks source link

Makes haddock3 restraints subcommands available as web service #841

Closed sverhoeven closed 6 days ago

sverhoeven commented 3 months ago

You are about to submit a new Pull Request. Before continuing make sure you read the contributing guidelines and that you comply with the following criteria:


In the haddock3 webapp I want to make a restraints file (*.tbl) from a list of active residues in 2 models/structures/molecules. I decided not to replicate that algorithm or have a complicated shell script behind a generic web service, but make the web service part of haddock3 repo. As the web service only exposes endpoints that are quick and do not need cns.

With this PR you can do

pip install fastapi uvicorn
uvicorn --port 5000 haddock.clis.restraints.webservice:app

This have the Swagger UI running at http://127.0.0.1:5000/docs#/

127 0 0 1_5000_docs

mgiulini commented 3 months ago

hi Stefan, I would also expose the other endpoints (restrain_bodies, calc_accessibility), as they can be useful in the webapp (for ex. to target the whole surface)

sverhoeven commented 3 months ago

hi Stefan, I would also expose the other endpoints (restrain_bodies, calc_accessibility), as they can be useful in the webapp (for ex. to target the whole surface)

Other restrain endopoints added and also added a preprocess_pdb endpoint.

sverhoeven commented 3 months ago

@rvhonorato could you have a look at the web service code. @mgiulini could you have a look at the passive_from_active function? I had to move the guts in the cli module to the librestraints module.

rvhonorato commented 2 months ago

hey @sverhoeven I'm out of the loop about the purpose of this. The code lgtm tho

sverhoeven commented 1 month ago

@mgiulini could this PR be merged?

Then I can update the deployments in https://github.com/i-VRESSE/haddock3-webapp to use the main haddock3 branch.

mgiulini commented 1 month ago

hi @sverhoeven no problem for me, but I see it fails the codacy-coverage-reporter-linux, not being able to run the integration tests..@rvhonorato do you know what is happening here?

rvhonorato commented 1 month ago

FYI i've been working on this: https://github.com/rvhonorato/haddock-restraints to add all these functionalities to the frontend via rust/webassembly and also to serve as the base for the GenTBL service. Seems like it overlaps a bit with this here.

rvhonorato commented 1 month ago

@rvhonorato do you know what is happening here?

Yes, it's written in the error message:

2024-05-27 07:52:56.094Z error [CodacyCoverageReporter] Invalid configuration: Either a project or account API token must be provided or available in an environment variable  - (CodacyCoverageReporter.scala:28)

We should figure out a way that external contributors can also run these, but since our continuous integration pipeline is just for show I've added a conditional: https://github.com/haddocking/haddock3/pull/904

@sverhoeven could you please rebase?

sverhoeven commented 1 month ago

thanks @rvhonorato , checks are green now.