ChemBioHTP / EnzyHTP

EnzyHTP is a python library that automates the complete life-cycle of enzyme modeling
https://enzyhtp-doc.readthedocs.io
Other
8 stars 1 forks source link

Reactive Docking PR 1 #128

Closed chrisjurich closed 9 months ago

chrisjurich commented 10 months ago

This is a fairly large PR that includes code needed to perform Reactive Docking in EnzyHTP. There are a few major categories of changes implemented in this branch:

  1. Config behavioral changes.
    • I have added a new abstract class called BaseConfig() which all Config classes should inherit from. It enables uniform getting/setting with [] operators. This file is found in enzy_htp/_config/base_config.py and all <Package>Config() classes in enzy_htp/_config have been updated to inherit from this.
    • I have added the ability of enzy_htp to look for a global config file at $HOME/.eh_config at start up. This enables easy re-use of configuration settings. Code supporting this functionality is found in enzy_htp/_config/__init__.py.
  2. New Software Interfaces
    • I have added access for AlphaFill, RDKit, and xtb. All corresponding <Package>Interface() and <Package>Config() classes are found in enzy_htp/_interface/ and enzy_htp/_config, respectively.
  3. New analytical methods
    • A function which approximates binding energy can be found in enzy_htp/analysis/binding_energy.py
  4. Reactive docking functionality
    • Reactive docking functionality has been added to the enzy_htp.preparation module. It is accessed via the dock_reactants() function and makes use of many of the new functionalities described elsewhere in this PR
  5. Updated existing software interfaces
    • Made mutations with RosettaScripts possible
    • Created functionality for protein backbone capping in pymol.
shaoqx commented 9 months ago

This is such an exciting PR! Love all the new interfaces and EnzyRCD!

Please check the comments above. I'm mainly not very comfortable with how files and functions under /preparation are set up. But I understand this might not be the final version.

shaoqx commented 9 months ago

Also please address all the conflicts as a final commit after commits addressing the comments. Thank you! This will help track the code change.

chrisjurich commented 9 months ago

Made some changes; namely removed the call to exec(). I think it is best to merge the changes now and then resolve some of the design elements as the Ligand class is improved.