mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-06 22:39:55 +08:00
* facilitate numpy 2.0 support * so that all tests run smoothly * not yet ready for this * w/ casting to bool * remove formatting changes from this PR
55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
import os
|
|
import time
|
|
|
|
from rdkit import Chem, RDConfig, rdBase
|
|
from rdkit.Chem import AllChem
|
|
from rdkit.Chem import rdMolDescriptors as rdMD
|
|
|
|
|
|
def get3D(m, is3d):
|
|
if not is3d:
|
|
m = Chem.AddHs(m)
|
|
# define the new code from RDKit Molecule 3D ETKDG.
|
|
ps = AllChem.ETKDG()
|
|
ps.randomSeed = 0xf00d
|
|
AllChem.EmbedMolecule(m, ps)
|
|
r = rdMD.CalcAUTOCORR3D(m) + rdMD.CalcRDF(m) + rdMD.CalcMORSE(m) + rdMD.CalcWHIM(
|
|
m) + rdMD.CalcGETAWAY(m, precision=0.001)
|
|
return r
|
|
|
|
|
|
def generateAll():
|
|
filename = '/Users/GVALMTGG/Github/rdkit_mine/Code/GraphMol/Descriptors/test_data/PBF_egfr.sdf'
|
|
suppl = Chem.SDMolSupplier(filename, removeHs=False)
|
|
mols = [x for x in suppl]
|
|
start = time.time()
|
|
for m in mols:
|
|
r = get3D(m, True)
|
|
print(r)
|
|
end = time.time()
|
|
print(end - start)
|
|
|
|
|
|
def simple_case():
|
|
start = time.time()
|
|
smi = 'CCC(C)COCCCC'
|
|
m = Chem.MolFromSmiles(smi)
|
|
T = get3D(m, False)
|
|
print(T)
|
|
end = time.time()
|
|
print(end - start)
|
|
|
|
|
|
if (__name__ == '__main__'):
|
|
# FIX: We need to actually add some tests here, but this doees not need to
|
|
# to be done until the C++ code and tests are straightened out.
|
|
generateAll()
|
|
|
|
start = time.time()
|
|
smi = 'CCC(C)COCCCC'
|
|
m = Chem.MolFromSmiles(smi)
|
|
T = get3D(m, False)
|
|
print(T)
|
|
end = time.time()
|
|
print(end - start)
|