Exemplo n.º 1
0
  def testStruChkInMemoryLog(self):
    r = pyAvalonTools.InitializeCheckMol(STRUCHK_INIT_IN_MEMORY_LOGGING)
    try:
      (err, fixed_mol) = pyAvalonTools.CheckMoleculeString(atom_clash, False)
      log =  pyAvalonTools.GetCheckMolLog()
      self.assertTrue("of average bond length from bond" in log)
      
      # make sure that the log is cleared for the next molecule
      (err, fixed_mol) = pyAvalonTools.CheckMoleculeString("c1ccccc1", True)
      log =  pyAvalonTools.GetCheckMolLog()
      self.assertFalse(log)

    finally:
      pyAvalonTools.CloseCheckMolFiles()
Exemplo n.º 2
0
def initStruchk(configDir=None, logFile=None):
    global __initCalled
    if configDir is None:
        configDir = os.path.join(RDConfig.RDDataDir, 'struchk')
    if configDir[-1] != os.path.sep:
        configDir += os.path.sep
    if logFile is None:
        fd = tempfile.NamedTemporaryFile(suffix='.log', delete=False)
        fd.close()
        logFile = fd.name
    struchk_init = '''-tm
-ta {0}checkfgs.trn
-tm
-or
-ca {0}checkfgs.chk
-cc
-cl 3
-cs
-cn 999
-l {1}\n'''.format(configDir, logFile)
    initRes = pyAvalonTools.InitializeCheckMol(struchk_init)
    if initRes:
        raise ValueError('bad result from InitializeCheckMol: ' + str(initRes))
    __initCalled = True
Exemplo n.º 3
0
    def testStruChk(self):
        smi_good = 'c1ccccc1C1(CC-C(C)C1)C'
        smi_bad = 'c1c(R)cccc1C1(CC-C(C)C1)C'
        r = pyAvalonTools.InitializeCheckMol(STRUCHK_INIT)
        self.assertEqual(r, 0)
        (err, fixed_mol) = pyAvalonTools.CheckMolecule(smi_good, True)
        self.assertEqual(err, 0)
        mol = Chem.MolFromSmiles(smi_good)
        (err, fixed_mol) = pyAvalonTools.CheckMolecule(mol)
        self.assertEqual(err, 0)

        (err, fixed_mol) = pyAvalonTools.CheckMoleculeString(smi_good, True)
        self.assertEqual(err, 0)
        self.assertNotEqual(fixed_mol, "")
        self.assertTrue(fixed_mol.find('M  END') > 0)

        (err, fixed_mol) = pyAvalonTools.CheckMolecule(smi_bad, False)
        self.assertNotEqual(err, 0)
        self.assertFalse(fixed_mol)

        (err, fixed_mol) = pyAvalonTools.CheckMoleculeString(smi_bad, False)
        self.assertNotEqual(err, 0)
        self.assertFalse(fixed_mol)
        pyAvalonTools.CloseCheckMolFiles()