Mimics functionality of all modules in pdbprep apart from the pairwise energy calculations.
Functionality currently split into 2 modules: preprocess and hydrogenation:
preprocess.py: combines do_pdbtools and do_pras from pdbprep, but using the full PyPi packages rather than using part of the codebase.
hydrogenation.py combines do_pdb2pqr, do_protonation, and do_add_hydrogens from pdbprep, but reformatted.
The 2 packages don't talk to each other yet, but only the top level function of each module exectutes all steps within that module.
Individual sequential steps until pdb2pqr have been visually tested in a notebook, but no formal tests are written (yet) for most of it.
Everything is scripted to run from within python. However, PRAS, PBD2PQR, and openmm work specifically with input and output files rather than being able to run on strings or otherwise from and to memory. For that reason, their functionalities are wrapped in TemporaryFile context managers, which are then converted to strings internally.
I believe this does not impact the file writing count on e.g. Snellius, but I am not positive of this
TO DO:
[ ] check some minor TODOs on code base with Joao
[ ] make the two modules talk to each other as well
[ ] add testing for each step + for the integrated functionality
[ ] add documentation for using this
[ ] add parallelization to speed up the process (?)
[ ] investigate whether file writing is counted towards limits on Snellius.
probably there is no way around it either way, but this is something that should be commented on in the docs.
If time left, but probably in separate PR:
[ ] investigate energy calculation integration into code base
fixes #509
Work in progress.
Done so far:
preprocess
andhydrogenation
:preprocess.py
: combinesdo_pdbtools
anddo_pras
from pdbprep, but using the full PyPi packages rather than using part of the codebase.hydrogenation.py
combinesdo_pdb2pqr
,do_protonation
, anddo_add_hydrogens
from pdbprep, but reformatted.TemporaryFile
context managers, which are then converted to strings internally.TO DO:
If time left, but probably in separate PR: