would you be interested in an implementation of "Positional Analogue Scanning"? [feature request] #3598
Replies: 6 comments 3 replies
-
I suspect that even for purely computational studies, it could be interesting/useful. |
Beta Was this translation helpful? Give feedback.
-
@UnixJunkie yeah, I saw that paper and definitely think it would be interesting and useful functionality to have in the RDKit. It probably does make sense to start with it in Contrib in order to get a sense of what the API should be and how it's best used. Then we can think about moving it into the core RDKit later if it looks like that makes sense. |
Beta Was this translation helpful? Give feedback.
-
Ok, I'll try to program something then. |
Beta Was this translation helpful? Give feedback.
-
I end up with that: #!/usr/bin/env python3
# "Positional Analogue Scanning: An Effective Strategy for
# Multiparameter Optimization in Drug Design".
# Pennington, L. D., Aquila, B. M., Choi, Y., Valiulin, R. A., & Muegge, I.
# Journal of medicinal chemistry (2020).
# https://doi.org/10.1021/acs.jmedchem.9b02092
import rdkit
from rdkit import Chem
from rdkit.Chem import AllChem
def positional_analog_scan(mol, smarts_patt = '[cH]',
smi_substs = ['N','CF','CC','CO',
'CCN','CCl','CC(F)(F)(F)','COC']):
res = []
patt = Chem.MolFromSmarts(smarts_patt)
for smi in smi_substs:
subst = Chem.MolFromSmiles(smi)
analogs = AllChem.ReplaceSubstructs(mol, patt, subst)
for a in analogs:
analog_smi = Chem.MolToSmiles(a) # canonicalization
if not analog_smi in res: # remove duplicates
res.append(analog_smi)
return res
# test
chinine_smi = \
'[H][C@@]1([C@@H](C2=CC=NC3=CC=C(C=C23)OC)O)C[C@@H]4CC[N@]1C[C@@H]4C=C'
print('%s\tchinine' % chinine_smi)
mol = Chem.MolFromSmiles(chinine_smi)
analogs = positional_analog_scan(mol)
for i, a in enumerate(analogs):
print('%s\tchinine_%02d' % (a, i)) |
Beta Was this translation helpful? Give feedback.
-
It looks like it is working correctly (by looking at the corresponding molecules in 2D):
|
Beta Was this translation helpful? Give feedback.
-
@greglandrum should I transform this into a PR? |
Beta Was this translation helpful? Give feedback.
-
Description:
There is a recent paper in J. Med. Chem.:
Positional Analogue Scanning: An Effective Strategy for Multiparameter Optimization in Drug Design
https://pubs.acs.org/doi/10.1021/acs.jmedchem.9b02092
Maybe I can provide an implementation.
Beta Was this translation helpful? Give feedback.
All reactions