That is the structure I want, however I found that it doesn't give that 
structure every time (sometimes it inverts the rings).

Get Outlook for Android<https://aka.ms/ghei36>

________________________________
From: Chuang, Kangway <kangway.chu...@ucsf.edu>
Sent: Thursday, July 23, 2020 8:55:01 AM
To: David Turnbull <david.turnbu...@ucalgary.ca>; 
rdkit-discuss@lists.sourceforge.net <rdkit-discuss@lists.sourceforge.net>
Subject: Re: Conformer generation

[△EXTERNAL]


Hi David,

Do you have a specific example of the bowl conformation you're looking for 
(e.g. do you have an image of the desired conformation vs what you are seeing)?

Running your current code I get the following conformer (shown in two different 
views).

Kangway

________________________________
From: David Turnbull <david.turnbu...@ucalgary.ca>
Sent: Thursday, July 23, 2020 6:49 AM
To: rdkit-discuss@lists.sourceforge.net <rdkit-discuss@lists.sourceforge.net>
Subject: [Rdkit-discuss] Conformer generation


Hi all,



I am trying to generate structures of calixarenes in a set shape, I am trying 
to use constrain distances but struggling. The lowest energy conformer is not 
what I want as I want it in the bowl shape. I labelled 4 oxygens with O17 (for 
finding purposes) and set the distance of them as that should set the geometry 
but it isn’t working. Any help would be great. Code below.



mol= 
Chem.MolFromSmiles('[17OH]C1=C2C=C([Y])C=C1CC3=C([17O-])C(CC4=C([17OH])C(CC5=C([17OH])C(C2)=CC(S(=O)([O-])=O)=C5)=CC(S(=O)([O-])=O)=C4)=CC([Y])=C3')

y= Chem.MolFromSmiles('OC1=CC=C([Y])C=C1')

rxn = AllChem.ReactionFromSmarts("[Y][*:1].[Y][*:2]>>[*:1][*:2]")

results=rxn.RunReactants([mol,y])

for products in results:

    for mol in products:

        m2=mol

results2=rxn.RunReactants([m2,y])

for products in results2:

    for mol in products:

        m3=mol

m4=Chem.MolToSmiles(m3)

x=Chem.MolFromSmiles(m4)

index={}

k=0

for atom in x.GetAtoms():

    if atom.GetSymbol() == 'O':

        if atom.GetIsotope() == 17:

            index[k]=atom.GetIdx()

            k+=1

m5=Chem.AddHs(x)

AllChem.EmbedMolecule(m5, useRandomCoords=True)

ff=AllChem.UFFGetMoleculeForceField(m5)

ff.UFFAddDistanceConstraint( index[0], index[1], False, 3.5, 4.5, 99.0)

ff.UFFAddDistanceConstraint( index[0], index[2], False, 3.5, 4.5, 99.0)

ff.UFFAddDistanceConstraint( index[0], index[3], False, 3.5, 4.5, 99.0)

m6=ff.Minimize(maxIts=50)



David
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to