xiaoruiDong / RDMC

Reaction Data and Molecular Conformers (RDMC) is a package dealing with reactions, molecules, conformers, majorly in 3D.
https://xiaoruidong.github.io/RDMC/
MIT License
21 stars 0 forks source link

Incremental changes to RDMC as a prelude for the refactorizing some module. #53

Closed xiaoruiDong closed 11 months ago

xiaoruiDong commented 11 months ago

I've been working on refactorizing the conformer_generation module for a while. Since that one involves many new changes with over a hundred commits, I decided to split the refactorization into several pieces.

This piece involves incremental changes to RDMC essential functions, where most of them should have no or little effect on the conformer_generation It involves:

  1. Making GeoMol a submodule rather than copying over the whole package to RDMC. This improves the organization and makes updating GeoMol easier.
  2. Making ASE a formal dependency of RDMC. ASE is a popular cheminformatics software with a slight bias toward material science applications. It is also light-weighted with dependencies only on python, numpy, scipy, and matplotlib for basic use cases. The calculator implementation in ASE is great and supports many different methods. A conversion between RDKitMol to Atoms can potentially expand our use case.
  3. Rewrite the log parsers and input writers ideally to make an extension to other quantum chemistry easier. I also added support for ORCA.
  4. Add a naive implementation for converting RDKitMol (or its subgraph) to a graph object in networkx. This is helpful for the reaction template extraction work I am doing.
  5. Add a new module called reaction for treating reaction data easily, involving functions for visualizing reactions, data conversion, and some basic data curation.
  6. Clean up formatting and docstrings

This PR will be merged without reviewing, given the current developers' availability. It should have low risk as most of the functions don't impact the existing functionalities, and I have tested most of the incremental changes, though unit tests as a way for more rigorous testing will be added shortly.