Useful RDKit Utilities
There's a lot of useful functionality in the RDKit. My problem is remembering where all of the most useful bits are, and how to use them. In order to make my life, and perhaps yours, a little easier, I put together a Python package called "useful_rdkit_utils". Some of what's in there is simply a repackaging of existing functionality to make it easier to use (at least for me). In other cases, there are functions I borrowed from elsewhere, and there are a few new ideas introduced. One interesting component in the library is a REOS class that encapsulates the functionality in the rd_filters package I released a few years ago.
I made the package easy to install. All you have to do is "pip install useful_rdkit_utils". The GitHub repo also has Jupyter notebooks that demonstrate some of the functions in the package. I'm planning to continue to add to the package, and I'm very open to pull requests with corrections and additions. This is my first attempt at packaging a Python project and I need to acknowledge Charles Tapley Hoyt and the MolSSI Cookiecutter for the Computational Molecular Sciences for paving the way. Any mistakes are mine and not theirs. Actually, I think my efforts are pretty good for a boomer.
The GitHub repo for the package is https://github.com/PatWalters/useful_rdkit_utils
The PyPI page is https://pypi.org/project/useful-rdkit-utils
The documentation (yes, really) is useful-rdkit-utils.rtfd.io
Good evening Dr. Walters. I really enjoy reading your informative blogposts on cheminformatics. Thank you for sharing this really useful package with RDKit users.
ReplyDeleteIs it possible to include functions for drawing multi-step reactions from reaction SMARTS using RDKit as part of this package? I am currently able to merge multiple reaction images from DrawReaction() output into a single image with the Pillow package in Python. But I'm not able to figure out how to add annotations to the individual reactants, like the Enamine identifier or the predicted bioactivity of the products. Can you provide some suggestions for this problem?