Skip to content
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

Implement the semi flexible refinement module (flexref) #50

Merged
merged 4 commits into from
Jul 30, 2021
Merged

Implement the semi flexible refinement module (flexref) #50

merged 4 commits into from
Jul 30, 2021

Conversation

rvhonorato
Copy link
Member

@rvhonorato rvhonorato commented Jul 29, 2021

This PR implements the semi flexible refinement module flexref.

Screenshot with yellow = result from rigidbody, green = after flexref
Screenshot 2021-07-29 at 14 58 07

Copy link
Member

@joaomcteixeira joaomcteixeira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is nothing I can add or comment on the CNS part right now.

Other comments:

  • I disagree with renaming rigid_body_docking to simple_docking in the examples. The former name is very specific and tells what is happening. The second is very generic.
  • I think the example of "flexref" should the a NEW example folder and not an addition to the previous one. It is better to have 10 examples one adding a different thing to the next and having one single example doing 10 things. IMHO
  • I left also some inline comments on parts that did not match this PR in my opinion. Were those bugs that needed to be corrected? Some changes are difficult to follow, why changed rigidbody.defaults to add flexref, was it something critical missing?

I haven't tested it yet, sorry, but if if the example is halted after "rigidbody", is it possible to resume the run directly to "flexref" ? In other words, is ModuleIO compatible between "rigidbody" and "flexref"? I hope I am not mistaking the concepts.

I don't see any critical errors apart from my comments. On you hands to act and merge. Good work!

expected.append(topology)
expected.append(PDBFile(processed_pdb,
topology,
path=(self.path / TOPOLOGY_PATH)))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you correcting a previous bug here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep

@@ -27,7 +27,7 @@ def __init__(self, file_name, file_type, path='.'):
self.created = datetime.datetime.now().isoformat(' ', 'seconds')
self.file_name = Path(file_name).name
self.file_type = file_type
self.path = str(Path(path).parent.absolute())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a bug correction?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep

@@ -63,8 +63,7 @@ def _load_previous_io(self):

def previous_path(self):
if self.order > 1:
return (self.path.resolve().parent.absolute() /
f"{MODULE_PATH_NAME}{self.order-1}")
return (self.path.resolve().parent.absolute() / self.stream['input']['order'][self.order-1])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nano detail:

return self.path.resolve().parent / self.stream['input']['order'][self.order - 1]

@rvhonorato
Copy link
Member Author

* I disagree with renaming `rigid_body_docking` to `simple_docking` in the examples. The former name is very specific and tells what is happening. The second is very generic.

* I think the example of "flexref" should the a NEW example folder and not an addition to the previous one. It is better to have 10 examples one adding a different thing to the next and having one single example doing 10 things. IMHO

So far none of the examples are valid, they are not real applications but simply demonstrations of the current capability of the code. What purpose will it serve to simply have a rigid-body sampling that does not even output the haddock-scores?

My goal is to have one complete example that shows both how-to-use and what can be done with haddock3, this small conceptual cases can go over to become integration tests or part of the developer documentation.

@rvhonorato
Copy link
Member Author

I haven't tested it yet, sorry, but if if the example is halted after "rigidbody", is it possible to resume the run directly to "flexref" ? In other words, is ModuleIO compatible between "rigidbody" and "flexref"? I hope I am not mistaking the concepts.

The module is compatible but there's no resuming, not sure if I understand what you mean.

@rvhonorato rvhonorato merged commit 9cf33d5 into haddocking:main Jul 30, 2021
@rvhonorato rvhonorato deleted the flexref branch July 30, 2021 11:19
@amjjbonvin
Copy link
Member

amjjbonvin commented Jul 30, 2021 via email

@rvhonorato
Copy link
Member Author

rvhonorato commented Jul 30, 2021

Probably the question is: What happens if a run is for some reason stopped before completion? Can we restart from the current state of the run and continue?

The run will fail since there's already a run1 directory, resuming is not implemented yet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants