haddock3 icon indicating copy to clipboard operation
haddock3 copied to clipboard

z-surface restraints scripts

Open VGPReys opened this issue 1 year ago • 6 comments
trafficstars

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:

  • [x] You have sticked to Python. Please talk to us before adding other programming languages to HADDOCK3
  • [ ] Your PR is about CNS
  • [x] Your code is well documented: proper docstrings and explanatory comments for those tricky parts
  • [x] You structured the code into small functions as much as possible. You can use classes if there is a (state) purpose
  • [x] Your code follows our coding style
  • [x] You wrote tests for the new code
  • [x] tox tests pass. Run tox command inside the repository folder
  • [x] -test.cfg examples execute without errors. Inside examples/ run python run_tests.py -b
  • [x] PR does not add any dependencies, unless permission granted by the HADDOCK team
  • [x] PR does not break licensing
  • [ ] Your PR is about writing documentation for already existing code :fire:
  • [ ] Your PR is about writing tests for already existing code :godmode:

Closes haddocking/haddock-restraints#13 by adding a new subcommand z-surface-restraints to the haddock3-restraints CLI.

haddock3-restraints z-surface-restraints
  --pdb my_structure.pdb
  --residues 1,2,3 7,8,9
  --spacing 20
  --x-size 200
  --y-size 200
  --z-padding 5
  --output my_Zrestraints

Selected residues sets (in the above example 1,2,3 and 7,8,9), will define two plans with x-dim --x-size and y-dim --y-size placing beads every --spacing angstroms. Also, corresponding restraints are generated, resulting in the generation of both:

  • a beads.pdb file containing the coordinates of the shape beads
  • a restraints.tbl file containing specific restraints to each plans.

A series of examples are also provided, in examples/docking-protein-surface

TODO LIST

  • [x] Generate bead plans
  • [x] Generate restraints to plans
  • [x] Have proper tests
  • [ ] Benchmark

VGPReys avatar Mar 27 '24 09:03 VGPReys

Modifications/suggestions have been addressed. Also discussed a little bit with @amjjbonvin for some restraints related things.

VGPReys avatar Jul 04 '24 10:07 VGPReys

This should be added together with the other restraints at https://github.com/haddocking/haddock-restraints, not here

I do not agree. This is haddock3 python version of the restraints, not the rust version

VGPReys avatar Aug 01 '24 09:08 VGPReys

This should be added together with the other restraints at https://github.com/haddocking/haddock-restraints, not here

I do not agree. This is haddock3 python version of the restraints, not the rust version

There is no such thing, restraints are code agnostic and there is already a program to generate multiple types of restraint. There should be no feature duplication.

This looks very trivial, if you don't have the skills to implement it I can do it

rvhonorato avatar Aug 01 '24 09:08 rvhonorato

This should be added together with the other restraints at https://github.com/haddocking/haddock-restraints, not here

I do not agree. This is haddock3 python version of the restraints, not the rust version

There is no such thing, restraints are code agnostic and there is already a program to generate multiple types of restraint. There should be no feature duplication.

This looks very trivial, if you don't have the skills to implement it I can do it

This does not make any sense. The haddock3-restraints has been part of the code since one year. Feel free to reproduce/rewrite this wherever you like, but this feature belongs here.

mgiulini avatar Aug 01 '24 09:08 mgiulini

Will be a bit of duplication indeed. But the haddock3 restraints CLIs have been there since quite some time and are used in tutorials.

Of course you code is very nice Rodrigo and might supersede this implementation at some point. But then we should make it a submodule of haddock3 which should be installed together with haddock3, e.g. in the bin dir (we could do the same for the haddock-runner).

amjjbonvin avatar Aug 01 '24 09:08 amjjbonvin

Good point, we should also remove the other ones, please see: https://github.com/haddocking/haddock3/issues/959

@amjjbonvin why wait? Lets just do it now and avoid duplicated work and technical debt - this is a beta version :)

I can also update the tutorials; @VGPReys keep this PR open as a draft for now as I see you also have the examples, we can clean it later

rvhonorato avatar Aug 01 '24 09:08 rvhonorato