Dear Greg

Using the script below from Marschall

I got the following error

CC[C@@H]1COP23OC[C@@H](CC)N2CCN13 |r|
Traceback (most recent call last):
  File "/home/bouille/DescriptorsCalcul/test3D.py", line 59, in <module>
    if optimizesubroutine(molH)==0:
  File "/home/bouille/DescriptorsCalcul/test3D.py", line 25, in
optimizesubroutine
    optimizeresult = AllChem.UFFOptimizeMolecule(mol,1000)
RuntimeError: Invariant Violation

Thank you for your help

Best Regards
Christian de Bouille



import sys
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import AvailDescriptors
from rdkit.ML.Cluster import Murtagh
from rdkit.ML.Cluster import ClusterUtils
import unicodedata
import re 
#from hcluster import *
#from IPython import Shell
import MySQLdb
import sys
def embedsubroutine(mol):
        num = mol.GetNumAtoms()
        if num > 500:
        #embed with randcoords
            embedresult =
AllChem.EmbedMolecule(mol,useRandomCoords=True)
            if embedresult == 0:
                return embedresult
        #embed normally
        embedresult = AllChem.EmbedMolecule(mol)
        return embedresult

def optimizesubroutine(mol):
        optimizeresult = AllChem.UFFOptimizeMolecule(mol,1000)
        return optimizeresult
count =0

# Establich a connection
row = 'CC[C@@H]1COP23OC[C@@H](CC)N2CCN13 |r|'
#row = 'CC(=C\C(O)=O)\C(=C/c1ccc(Br)o1)C(O)=O'
#row = 'CC(C)(C)c1ccc(c2OP(Oc12)(c1ccccc1)(c1ccccc1)c1ccccc1)C(C)(C)C'
print row
count+=1
if row is not None:            
        result = row
        #print result
        moly = re.split('\|', result)
        #print moly
        moly[0].encode('utf8')
        #print moly[0]
        flag = 0

        try:
                #Shell.IPShellEmbed()()
                mol = Chem.MolFromSmiles(moly[0])
                if mol is None:
                        flag = 1
        except ValueError:
                flag=1  

        if (flag == 0):
            #print "c'est bon"
            mol = Chem.MolFromSmiles(moly[0])
            molH = Chem.AddHs(mol)
            #print molH
            if embedsubroutine(molH) == 0:
                    #print 'Embeded, now optimizing: ',count
                    if optimizesubroutine(molH)==0:
                        sdf3D = Chem.MolToMolBlock(molH)
                        print sdf3D
                        #cursor.execute (" insert into 3dStock SET cd_id
= %s, mon3D = %s ", (row[0],sdf3D ))
                    #cursor.execute (" UPDATE montests SET MASS = %s
WHERE cd_id = %s ", (mass1, row[0]))
                           
                    else:
                            print 'Failure with optimzation',count
                           
            else:
                    print 'Due failed embed, cannot optimze',count


else:
    flag = 0
    #count += 1
    print "mauvais"+ str(row[0])
    #break




------------------------------------------------------------------------------

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

Reply via email to