Skip to content

Commit dba91d6

Browse files
committed
Conformer properties are stored in MOl object when reading SDF by read_input.py
1 parent b4f1bd3 commit dba91d6

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

read_input.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,32 @@ def read_pdbqt_block(pdbqt_block):
5353
return mols
5454

5555

56+
def assign_mol_props_to_conf(mol, conf):
57+
for k, v in mol.GetPropsAsDict().items():
58+
if isinstance(v, int):
59+
conf.SetIntProp(k, v)
60+
elif isinstance(v, float):
61+
conf.SetDoubleProp(k, v)
62+
elif isinstance(v, bool):
63+
conf.SetBoolProp(k, v)
64+
else:
65+
conf.SetProp(k, v)
66+
return conf
67+
68+
69+
def assign_conf_props_to_mol(conf, mol):
70+
for k, v in conf.GetPropsAsDict().items():
71+
if isinstance(v, int):
72+
mol.SetIntProp(k, v)
73+
elif isinstance(v, float):
74+
mol.SetDoubleProp(k, v)
75+
elif isinstance(v, bool):
76+
mol.SetBoolProp(k, v)
77+
else:
78+
mol.SetProp(k, v)
79+
return mol
80+
81+
5682
def __get_smi_as_molname(mol):
5783
try:
5884
name = Chem.MolToSmiles(mol, isomericSmiles=True)
@@ -96,12 +122,15 @@ def __read_sdf_confs(fname, input_format, id_field_name=None, sanitize=True, sdf
96122
if sdf_confs:
97123
if title is None:
98124
m = mol
125+
conf = assign_mol_props_to_conf(m, m.GetConformer(0))
99126
title = mol_title
100127
elif title == mol_title:
101-
m.AddConformer(mol.GetConformer(0), assignId=True)
128+
conf = assign_mol_props_to_conf(mol, mol.GetConformer(0))
129+
m.AddConformer(conf, assignId=True)
102130
else:
103131
yield m, title
104132
m = mol
133+
conf = assign_mol_props_to_conf(m, m.GetConformer(0))
105134
title = mol_title
106135
else:
107136
yield mol, mol_title

0 commit comments

Comments
 (0)