-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor workflow initialization to remove hard dependency on topoaa
#921
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not simple to untangle this part of the code, as you probably noticed - great job getting into it
topoaa
I tested the PR: it works well when the workflow is made of non-CNS modules, but when CNS modules are included a workflow without topoaa badly fails at the CNS preparation steps, without catching the error. Here an example output of contmap-test removing topoaa:
|
The error above means you are trying to execute a CNS module without having generated the topologies, not related to the contact module Removing |
Basically rigidbody in this case can not be run if topoaa was not first run.
Need to define dependencies...
|
yes, precisely. we need to catch this exception at the beginning asking the user to add topoaa to the workflow |
Thanks for the review. |
Defining this dependency graph is quite complex and definitely besides the scope of this pr, could you please handle this in another? Remember this is a beta version and these kinds of uncaught exceptions are tolerable, it's a work in progress anyway :) |
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:
tox
tests pass. Runtox
command inside the repository folder-test.cfg
examples execute without errors. Insideexamples/
runpython run_tests.py -b
This PR try to find a path to be able to do a haddock3 run without having to start with
topoaa
.topoaa
was hard coded in theprepare_run.py
, with the deep intuition that any haddock3 runs would always start from it.Now, it is no more the case.
Input molecules (in the global parameter
molecules = [...]
) are now stored inrun_dir/data/0_NameOfTheFirstModule
.Basically, now the input molecules are handled by the
ModuleIO
class (inhaddock/libs/libontology.py
), that mimic the output of anio.json
.If it is the first module, input files are converted to
Molecules
(inhaddock/libs/libontology.py
), that manage them to potentially split the ensemble and return them as adict[int, PDBFile]
.Small modifications had to be applied to the
topoaa
module to fit this new behavior.Same to the
haddock3-score
and[alascan]
modules, because the copy of input files must now be stored at a proper location.Closes #932