haddock3
haddock3 copied to clipboard
`[prodigyligand]` and `[prodigyprotein]` scoring modules
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
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
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.
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
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.
It's already not possible to install both
prodigy-protandprodigy-ligwithin the samehaddock3env, as they both use different python versions.
so add it as an optional dependency in pyproject.toml
@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
Nice, indeed will simplify the process
Adding this dependencies will be easier after #1099
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 !
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
Nice good catch !
I guess the openmm things are not desired here, must have tested things on the same branch for some reason
There is no issue associated with this PR - please add one before merging