haddocking / haddock3

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

Don't split tasks in the modules #970

Open rvhonorato opened 1 month ago

rvhonorato commented 1 month ago

Desired feature/enhancement

Refactor code that is splitting tasks in the modules

Motivation

libparallel recieves a set of tasks and handles the split and balancing of them, however this is also being done elsewhere in the code.

https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/modules/analysis/ilrmsdmatrix/__init__.py#L110 https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/modules/analysis/ilrmsdmatrix/__init__.py#L308 https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/modules/analysis/rmsdmatrix/rmsd.py#L50 https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/libs/libalign.py#L1289 https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/modules/analysis/alascan/__init__.py#L63 https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/modules/analysis/rmsdmatrix/__init__.py#L88 https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/modules/analysis/rmsdmatrix/__init__.py#L141

Related implementations that generate multiple files relying on the task split to retrieve information;

https://github.com/haddocking/haddock3/blob/7a9434e2b73587d9686b31cec3920940516782de/src/haddock/modules/analysis/caprieval/capri.py#L615

https://github.com/haddocking/haddock3/blob/01eb9ae3e3c97b06248a9a90ca414d2f41c70d5f/src/haddock/modules/analysis/ilrmsdmatrix/__init__.py#L285

Description

For maintanability, consistency and simplicity this should be handled in a single library.

Additional context

Would be good if we could make this clear into some developer manual

rvhonorato commented 1 week ago

I see now that the execution mode is analysis modules is being overwritten (https://github.com/haddocking/haddock3/pull/928#issuecomment-2346747672). This makes this issue much simpler to be resolved, as we can simply set is as local and use the same pattern applied here:

https://github.com/haddocking/haddock3/blob/844c7ca25996af1f40a83f68a51627c4f5d3d3fc/src/haddock/modules/analysis/caprieval/capri.py#L662 https://github.com/haddocking/haddock3/blob/844c7ca25996af1f40a83f68a51627c4f5d3d3fc/src/haddock/modules/analysis/caprieval/capri.py#L915-L925