If you have downloaded lots of ligand SDF files from the PDB, then a good way of viewing/comparing all their properties would be to load it into a Pandas DataFrame.
RDKit has a very handy function just for this – it’s found under the PandasTool module.
I show an example below within Jupypter-notebook, in which I load in the SDF file, view the table of molecules and perform other RDKit functions to the molecules.
First import the PandasTools module:
from rdkit.Chem import PandasTools
Read in the SDF file:
SDFFile = "./Ligands_noHydrogens_noMissing_59_Instances.sdf" BRDLigs = PandasTools.LoadSDF(SDFFile)
You can see the whole table by calling the dataframe:
BRDLigs
The ligand properties in the SDF file are stored as columns. You can view what these properties are, and in my case I have loaded 59 ligands each having up to 26 properties:
BRDLigs.info()
It is also very easy to perform other RDKit functions on the dataframe. For instance, I noticed there is no heavy atom column, so I added my own called ‘NumHeavyAtoms’:
BRDLigs['NumHeavyAtoms']=BRDLigs.apply(lambda x: x['ROMol'].GetNumHeavyAtoms(), axis=1)
Here is the column added to the table, alongside columns containing the molecules’ SMILES and RDKit molecule:
BRDLigs[['NumHeavyAtoms','SMILES','ROMol']]