Solvate Analyser


The class ccdc.solid_form.SolvateAnalyser can be used to perform solid form solvate analysis.

Analysing a structure

First we load a crystal. This can be either one from the CSD or loaded from a CIF file.

>>> from ccdc import io
>>> csd_reader = io.CrystalReader('CSD')
>>> bubpiy = csd_reader.crystal('BUBPIY')

Create the analyser and do the analysis. The analyser can detect solvents in the crystal using a list of pre-defined solvents.

>>> from ccdc.solid_form import SolvateAnalyser
>>> analyser = SolvateAnalyser(bubpiy)
>>> solvents = analyser.find_solvents()
>>> sorted([ for solvent in solvents])
['acetonitrile', 'acetonitrile', 'acetonitrile', 'water']
>>> [type(solvent.molecule) for solvent in solvents]
[<class 'ccdc.molecule.Molecule'>, <class 'ccdc.molecule.Molecule'>, <class 'ccdc.molecule.Molecule'>, <class 'ccdc.molecule.Molecule'>]

You can change the settings of the analyser to use different probe radius, grid space, or surface. You can also add additional solvents to the pre-defined list in the form of a dictionary mapping solvent SMILES strings to identifiers.

>>> analyser = SolvateAnalyser(bubpiy, probe_radius=1.0, method='solvent_accessible_surface')
>>> analyser.add_solvents({'CCN(CC)CC': 'triethylamine'})