haddock3 icon indicating copy to clipboard operation
haddock3 copied to clipboard

`[prodigyligand]` and `[prodigyprotein]` scoring modules

Open VGPReys opened this issue 1 year ago • 11 comments

Checklist

  • [X] Tests added for the new code
  • [x] Documentation added for the code changes
  • [ ] Modifications / enhancements are reflected on the haddock3 user-manual
  • [ ] CHANGELOG.md is updated to incorporate new changes
  • [X] Does not break licensing
  • [ ] Does not add any dependencies, if it does please add a thorough explanation

Summary of the Pull Request

Add a new scoring module [prodigyprotein] and [prodigyligand] as new scoring modules.

They both rely on external dependencies, prodigy-prot and prodigy-lig that are installed/gathered from PyPI. Both libraries are hosted on the GitHub haddocking, hopefully simplifying the maintenance for the installation procedure in case of a conflict one day.

A small lib libprodigy.py was set up to handle both modules, to reduce code duplication, such as

  • deltaG to pKd conversion
  • check of installation
  • holding parameters that are shared between the two modules
  • returning final scores
  • handle of potential execution errors

Computed scores are forwarded to the models (through PDBFile objects score attribute), and therefore can be sorted later using [seletop] (and maybe [filter] in the future (#1225)).

As for all scoring modules, they generate a final tsv file containing the computed scores that holds the same structure as other scoring module, therefore easing the parsing.

Workflow samples were added in the examples, showing how to deal with:

  • [prodigyligand] in the case of small molecules
  • [prodigyprotein] in the case of standard protein protein interactions or antibody-antigen

VGPReys avatar Oct 01 '24 08:10 VGPReys

I'm guessing you are still working on it - but keep in mind prodigy is also python so it should be used a library, not as a subprocess call

rvhonorato avatar Oct 01 '24 09:10 rvhonorato

I'm guessing you are still working on it - but keep in mind prodigy is also python so it should be used a library, not as a subprocess call

maybe indeed a good idea.

VGPReys avatar Oct 01 '24 09:10 VGPReys

not an idea, it's how it should be done. also keep in mind this could cause a dependency deadlock, so add it as an optional dependency in pyproject.toml

rvhonorato avatar Oct 01 '24 09:10 rvhonorato

It's already not possible to install both prodigy-prot and prodigy-lig within the same haddock3 env, as they both use different python versions.

VGPReys avatar Oct 01 '24 09:10 VGPReys

It's already not possible to install both prodigy-prot and prodigy-lig within the same haddock3 env, as they both use different python versions.

so add it as an optional dependency in pyproject.toml

rvhonorato avatar Oct 01 '24 11:10 rvhonorato

@VGPReys I've made your life easier by updating the max/min python versions of prodigy and prodigy-lig to match the ones here - so 3.9, 3.10, 3.11 and 3.12, check the latest releases

rvhonorato avatar Oct 03 '24 10:10 rvhonorato

Nice, indeed will simplify the process

VGPReys avatar Oct 03 '24 11:10 VGPReys

Adding this dependencies will be easier after #1099

rvhonorato avatar Oct 14 '24 15:10 rvhonorato

Having an issue with the installation procedure due to conflicts in the biopython versions, probably related to poetry.. Once this is solved, it should be functional !

VGPReys avatar Mar 24 '25 15:03 VGPReys

Having an issue with the installation procedure due to conflicts in the biopython versions, probably related to poetry.. Once this is solved, it should be functional !

Actually the issue was here - the dependency was wrongly defined, fixed in https://github.com/haddocking/haddock3/pull/1069/commits/54009e8051e8868b423d7bf2d053b8a72b3e4c59

Before you merge this please update the PR description with actual implementation details as this TODO list is your personal checklist and not really useful to understand what was done, also this PR seems to add things for the openmm module which does not seem to me that are related anyhow with the feature implementation

rvhonorato avatar Mar 25 '25 13:03 rvhonorato

Nice good catch !

I guess the openmm things are not desired here, must have tested things on the same branch for some reason

VGPReys avatar Mar 25 '25 13:03 VGPReys

There is no issue associated with this PR - please add one before merging

rvhonorato avatar Mar 31 '25 14:03 rvhonorato