molecular descriptor calculator.
>>> from mordred import Calculator, descriptors
>>> n_all = len(Calculator(descriptors, ignore_3D=False).descriptors)
>>> n_2D = len(Calculator(descriptors, ignore_3D=True).descriptors)
>>> print("2D: {:5}\n3D: {:5}\n------------\ntotal: {:5}".format(n_2D, n_all - n_2D, n_all))
2D: 1613
3D: 213
------------
total: 1826
- install mordred
pip install https://github.com/OlivierBeq/mordred/tarball/master
python -m mordred.tests
>>> from rdkit import Chem
>>> from mordred import Calculator, descriptors
# create descriptor calculator with all descriptors
>>> calc = Calculator(descriptors, ignore_3D=True)
>>> len(calc.descriptors)
1613
>>> len(Calculator(descriptors, ignore_3D=True, version="1.0.0"))
1612
# calculate single molecule
>>> mol = Chem.MolFromSmiles('c1ccccc1')
>>> calc(mol)[:3]
[4.242640687119286, 3.9999999999999996, 0]
# calculate multiple molecule
>>> mols = [Chem.MolFromSmiles(smi) for smi in ['c1ccccc1Cl', 'c1ccccc1O', 'c1ccccc1N']]
# as pandas
>>> df = calc.pandas(mols)
>>> df['SLogP']
0 2.3400
1 1.3922
2 1.2688
Name: SLogP, dtype: float64
see examples
Moriwaki H, Tian Y-S, Kawashita N, Takagi T (2018) Mordred: a molecular descriptor calculator. Journal of Cheminformatics 10:4 . doi: 10.1186/s13321-018-0258-y