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

Combined PR #133 and PR #109 (superseeds #147) #149

Merged
merged 110 commits into from
Aug 9, 2024
Merged

Conversation

diogomart
Copy link
Contributor

Original description from @psharma-sr copied from #147

As a part of the effort to make Meeko easier to use and more readable, in addition to the following PR-specific changes, there are a lot of formatting changes

PR #133 :

Contains extensive changes to Meeko that make it usable for a wider variety of applications, and that hopefully allow core data structures to be modified and expanded upon more easily. These changes include

  • Restructuring chorizo residues in LinkedRDKitChorizo so each residue has its own MoleculeSetup instance, whether flexible or not
  • A refactor of flexibility.py
  • Greater JSON support for LinkedRDKitChorizo objects
  • Improved documentation and added starter documentation to a number of files
  • Added test cases for JSON serialization and flexibility modeling

PR #109 :

A complete restructure of the MoleculeSetup class (including subclasses like RDKitMoleculeSetup and OBMoleculeSetup) to make MoleculeSetups more readable, more maintainable, and clean up inheritance between MoleculeSetups and subclasses.

  • Adds several helper dataclasses to group and manage data in the MoleculeSetup class and eliminate synchronized OrderedDicts. These include the Atom, Ring, and Bond dataclasses.
  • Enforces stricter typing on most variables, functions, and methods.
  • Enforces default values for all classes
  • More cleanly separates MoleculeSetup and RDKitMoleculeSetup, makes sure to isolate all methods and variables that depend on RDKit to be assigned or to work to RDKitMoleculeSetup.
  • More clearly establishes external toolkit subclass extension requirements
  • Cleans up JSON serialization and deserialization for MoleculeSetup objects and subclasses,

What remains to be done:

  • Examine attributes like flexibility_model and atom_params to see if they can be converted from dictionaries to something more easily managed and checked.
  • Clear out lesser used functionality
  • Finalize documentation by double checking TODOs with team.

Original PR #147 was closed because we reverted a commit and then regretted it. The revert (thanks @psharma-sr) was to try a new merge commit that included the allow_A macrocycle feature (#106), but this was a bad idea because git revert didn't work as I expected from a merge commit, and adding back the allow_A stuff is trivial compared to the merge conflicts that were resolved in 3f574a3. The best is to merge 3f574a3 onto develop, and for that I'll close this PR and open a new one from it. Sorry for the confusion.

diogomart and others added 30 commits December 20, 2023 12:14
ProDy functions are defined in utils/prodyutils.py.
The script mk_prepare_receptor.py has been updated with a `--macromol`
option to specify PDB or mmCIF files.
@diogomart diogomart added the refactor Improvements to the code without necessarily adding features label Aug 9, 2024
@diogomart diogomart added this to the Meeko Refactoring Project milestone Aug 9, 2024
@diogomart diogomart merged commit a204cec into develop Aug 9, 2024
2 checks passed
@diogomart diogomart deleted the reverted_revert branch August 9, 2024 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor Improvements to the code without necessarily adding features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants