haddock3
haddock3 copied to clipboard
z-surface restraints scripts
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]
toxtests pass. Runtoxcommand inside the repository folder - [x]
-test.cfgexamples execute without errors. Insideexamples/runpython 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.pdbfile containing the coordinates of the shape beads - a
restraints.tblfile 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
Modifications/suggestions have been addressed. Also discussed a little bit with @amjjbonvin for some restraints related things.
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
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 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.
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).
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