A light-weight software package with expertise in handling Reaction Data and Molecular (including transitions states) Conformers.
The package can be easily installed with conda or mamba with
conda install -c xiaoruidong rdmc
You can also install RDMC from the source code:
git clone https://github.com/xiaoruidong/rdmc;
cd RDMC;
conda env create -f environment.yml;
conda activate rdmc;
python -m pip install -e --no-deps -vv ./;
There are two major modules in RDMC:
It has a collections of functions that can be directly operated on to RDKit native objects. Most of them can be regarded as a modified version of a RDKit native operation but with simplified
imports, more intuitive usage, and more robustness implementation. They are distributed in submodules, each named by its relevance field and objects. It is best used in cases where efficiency is a
major conern and the task you required is relatively simple. Here are some highlights in rdtools:
- viewers in
rdtools.view. These viewers greatly extend RDKit's default Ipython 3D viewer, with the capability of viewing animations and interaction with conformers. generate_resonance_structuresinrdtools.resonanceis able to generate resonance structures for radical molecules that is not capable by the original RDKit.mol_from_smilesinrdtools.conversionmake sure the created molecule has an atom ordering consistent with the atom mappingmol_from_xyzsupports two backendsopenbabelas well asxyz2molfor molecule connectivity perception. If both native backends fail (e.g., cannot be sanitized, or wrong charge or multiplicity),rdtoolsalso provided a heuristic fix toolfix_molinrdtools.fixto help fix the molecules if possible.
It can be regarded as a midware between RDKit/rdtools basic operations and complicated workflows. Mol (Previously, RDKitMol) and Reaction are the most important classes.
Mol(known asRDKitMolpreviously) is a child class ofRWMol, which means that you can directly use it with RDKit's native functions, but also integrated a lot of tools inrdtools, so you can directly use them as class methods. The appended methods not only provides convenience in usage, but also make sure the output molecule objects, if applicable, is still ardmc.Molobject. While many RDKit functions will just outputChem.Molwhich is no longer editable, breaking the flow of your molecule operations.Reactionprovides intuitive APIs for getting bond analysis, reaction comparison, visualization, etc.
For detailed APIs, please check the documentation.
Feel free to check demos in the ipython/, some of them are also available on the Google Colab:
- Viewer Examples
- Handle molecule from/to XYZ
- Parse QM Results - Built-in Parsers
- Parse QM Results - General Parsers
- Conformer Generation Workflow
- Forcefield Examples
- Generate Atom Map for Reactions
- To use
rdtools, you only needsnumpyandrdkitat minimum. You can install optional dependencies:scipyfor better resonance structure generation for polycyclic molecules,py3dmolto use the amazing 3D viewers,openbabelto extendrdmc's xyz perception cability. - To use
rdmc, the dependencies are basically the same asrdtools, but we do recommend installing all optional dependencies for a better experience. Besides, to plot curves and figures for data, you can installmatplotlib; to play around with the log parsers you should consider installcclibandipywidgets. And to start computations inconformer_generation, you need to havextbandorca(which are free to academia) installed to get some serious results.