def test_openbabel(self): from cinfony import obabel mol = obabel.readstring("smi", "CCC") desc = mol.calcdesc(obabel.descs[0:3]) for d in desc: if desc[d] != desc[d]: desc[d] = '?' expectedDesc = {'HBA1': 0.0, 'HBD': 0.0, 'HBA2': 0.0} self.assertEqual(desc,expectedDesc)
def hide_test_openbabel(self): from cinfony import obabel mol = obabel.readstring("smi", "CCC") desc = mol.calcdesc(obabel.descs[0:3]) for d in desc: if desc[d] != desc[d]: desc[d] = '?' #expectedDesc = {'HBA1': 0.0, 'HBD': 0.0, 'HBA2': 0.0} expectedDesc = {'abonds': 0.0, 'atoms': 3.0, 'bonds': 2.0} self.assertEqual(desc,expectedDesc)
def getObabelDescResult(data,descList): """ Calculates the descriptors for the descList using obabel It expects an attribute containing smiles with a name defined in AZOrangeConfig.SMILESNAMES It returns a dataset with the same smiles input variable, and as many variables as the descriptors returned by the toolkit """ if "obabel" not in toolkitsEnabled: return None smilesName = getSMILESAttr(data) if not smilesName: return None myDescList = [desc.replace(obabelTag,"") for desc in descList if obabelTag in desc] if not myDescList: return None resData = orange.ExampleTable(orange.Domain([data.domain[smilesName]] + [orange.FloatVariable(obabelTag+name) for name in myDescList],0)) for ex in data: newEx = orange.Example(resData.domain) newEx[smilesName] = ex[smilesName] mol = obabel.readstring("smi", str(newEx[smilesName].value)) moldesc = mol.calcdesc(myDescList) for desc in myDescList: newEx[obabelTag+desc] = moldesc[desc] resData.append(newEx) return resData
def getObabelDescResult(data,descList): """ Calculates the descriptors for the descList using obabel It expects an attribute containing smiles with a name defined in AZOrangeConfig.SMILESNAMES It returns a dataset with the same smiles input variable, and as many variables as the descriptors returned by the toolkit """ if "obabel" not in toolkitsEnabled: return None smilesName = getSMILESAttr(data) if not smilesName: return None myDescList = [desc.replace(toolkitsDef["obabel"]["tag"],"") for desc in descList if toolkitsDef["obabel"]["tag"] in desc] if not myDescList: return None resData = orange.ExampleTable(orange.Domain([data.domain[smilesName]] + [orange.FloatVariable(toolkitsDef["obabel"]["tag"]+name) for name in myDescList],0)) for ex in data: newEx = orange.Example(resData.domain) newEx[smilesName] = ex[smilesName] mol = obabel.readstring("smi", str(newEx[smilesName].value)) moldesc = mol.calcdesc(myDescList) for desc in myDescList: newEx[toolkitsDef["obabel"]["tag"]+desc] = moldesc[desc] resData.append(newEx) return resData