mordred-descriptor / mordred

a molecular descriptor calculator
http://mordred-descriptor.github.io/documentation/master/
BSD 3-Clause "New" or "Revised" License
340 stars 91 forks source link

Calculator is running forever for one valid molecule #65

Closed shayakhmetov closed 5 years ago

shayakhmetov commented 5 years ago
from rdkit import Chem
calc = Calculator(descriptors, ignore_3D=True)
smiles = 'C[N+]1(C)CC23c4c5c6c7c8c9c%10c6c6c-5c5c%11c%12c(c%13c%14c%15c%16c=%13c2c2c4c7c4c7c2c%16c2c-7c7c%13c%16c(c=9c9c%10c%10c6c%11c6c%11c%12c%14c%12c%14c%15c2c%13c%14c2c%16c9c(c%106)c2c%11%12)C72C[N+](C)(C)CC482)C53C1'
calc(Chem.MolFromSmiles(smiles))

mordred.version='1.1.1', rdkit.version='2018.03.4'

philopon commented 5 years ago

Thank you for your reporting.

Detour matrix descriptor cannot calculate some molecules since its computational complexity.

Please exclude DetourMatrix from Calculator.

for example:

from mordred import Calculator, DetourMatrix, descriptors, get_descriptors_from_module

# get all descriptor classes from descriptors module
descs = get_descriptors_from_module(descriptors, submodule=True)

# exclude DetourMatrix from descs
descs = filter(lambda d: d.__module__ != DetourMatrix.__name__, descs)

calc = Calculator(descs)

It seems ugly code. I'll add shorthand for it in future.

Thanks,

philopon commented 5 years ago

solved 2848b088fd7b6735590242b5e22573babc724f10