Hello All,

I am trying to re-shuffle the side-chain(s) identified after replacing core
(MCS between two mols) from molecules. The two molecules I am considering
are BMS-193884 and irbesartan. Both molecules share biphenyl framework and
act on different target (antagonist of ETA and AT1 respectively). The
approach I have taken is to replace side-chain(s) of BMS-193884 with the
side-chain(s) of irbesartan and vice-versa using ReplaceSubstructs to
generate new molecules keeping MCS as a core part.

I have pasted minimal code below this mail. I do not know whether this
would be correct approach or not?

Moreover, I am getting dummy atoms in some of the output molecules.

Any help/guidance would be greatly appreciated.

Thanks

Om Prakash
Ph.D Student
School of Computational and Integrative Sciences,
Jawaharlal Nehru University,
New Delhi,
India

#================================
from rdkit.Chem import MCS
from rdkit import Chem
from rdkit.Chem import AllChem
import re

mol1 =
Chem.MolFromSmiles("CCCCC1=NC2(CCCC2)C(=O)N1C1=CC=C(C=C1)C1=C(C=CC=C1)C1=NNN=N1")
mol1.SetProp("_Name","Irbesartan")
mol2 =
Chem.MolFromSmiles("CC1=NOC(NS(=O)(=O)C2=CC=CC=C2C2=CC=C(C=C2)C2=NC=CO2)=C1C")
mol2.SetProp("_Name","BMS-193884")

mols = [mol1,mol2]
# Get mcs
out=MCS.FindMCS(mols,completeRingsOnly=True)
core = Chem.MolFromSmarts(out.smarts)
# Get chain and chain fragments for mol1
chains = Chem.ReplaceCore(mol1,core)
# replace dummy atoms and make RDMol
subchainsMol1=[Chem.MolFromSmiles(re.sub("\[?\d\*\]","",Chem.MolToSmiles(x,True)))
for x in Chem.GetMolFrags(chains,asMols=True)]

#[Chem.MolToSmiles(x,True) for x in Chem.GetMolFrags(chains,asMols=True)]
#['[*]N1C(=O)C2(CCCC2)N=C1CCCC', '[*]c1nn[nH]n1']

# Get chains and chain fragments for mol2
chains = Chem.ReplaceCore(mol2,core)
# replace dummy atoms and make RDMol
subchainsMol2=[Chem.MolFromSmiles(re.sub("\[?\d\*\]","",Chem.MolToSmiles(x,True)))
for x in Chem.GetMolFrags(chains,asMols=True)]

#[Chem.MolToSmiles(x,True) for x in Chem.GetMolFrags(chains,asMols=True)]
#['[*]S(=O)(=O)Nc1onc(C)c1C', '[*]c1ncco1']

# Build dictionary of various mols
allReplacements={}
for i,x in enumerate(subchainsMol1):
for j,y in enumerate(subchainsMol2):
allReplacements[i,j,mol1]=AllChem.ReplaceSubstructs(mol1,x,y)

for i,x in enumerate(subchainsMol2):
for j,y in enumerate(subchainsMol1):
allReplacements[i,j,mol2]=AllChem.ReplaceSubstructs(mol2,x,y)


for keys,values in allReplacements.items():
    print Chem.MolToSmiles(values[0],True)

Output:

CCCCC1=NC2(CCCC2)C(=O)N1c1ccc(-c2ccccc2-c2nn[nH]n2)cc1
Cc1noc(NS(=O)(=O)c2ccccc2-c2ccc(-c3nn[nH]n3)cc2)c1C
CCCCC1=NC2(CCCC2)C(=O)N1c1ccc(-c2ccccc2-c2nn[nH]n2)cc1
CCCCC1=NC2(CCCC2)C(=O)N1[*]c1ccc(-c2ccccc2S(=O)(=O)Nc2onc(C)c2C)cc1
CCCCC1=NC2(CCCC2)C(=O)N1c1ccc(-c2ccccc2-c2ncco2)cc1
CCCCC1=NC2(CCCC2)C(=O)N1[*]c1ccccc1-c1ccc(-c2ncco2)cc1
CCCCC1=NC2(CCCC2)C(=O)N1c1ccc(-c2ccccc2S(=O)(=O)Nc2onc(C)c2C)cc1
c1coc(-c2ccc(-c3ccccc3-c3nn[nH]n3)cc2)n1
------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to