/// <summary> /// Convert an InChI string to an IAtomContainer /// </summary> /// <param name="inchiString"></param> /// <returns></returns> public static IAtomContainer InChIToAtomContainer(string inchiString) { string warningMsg, errorMsg; InChIGeneratorFactory factory = InChIGeneratorFactory.getInstance(); InChIToStructure intostruct = factory.getInChIToStructure(inchiString, DefaultChemObjectBuilder); INCHI_RET ret = intostruct.getReturnStatus(); if (ret == INCHI_RET.WARNING) // Structure generated, but with warning message { warningMsg = "InChI warning: " + intostruct.getMessage(); } else if (ret != INCHI_RET.OKAY) // Structure generation failed { errorMsg = "Structure generation failed failed: " + ret.toString() + " [" + intostruct.getMessage() + "]"; throw new Exception(errorMsg); } IAtomContainer mol = intostruct.getAtomContainer(); return(mol); }
/// <summary> /// Convert an InChI string to an IAtomContainer /// </summary> /// <param name="inchiString"></param> /// <returns></returns> public static IAtomContainer InChIToAtomContainer(string inchiString) { string warningMsg, errorMsg; InChIGeneratorFactory factory = InChIGeneratorFactory.Instance; InChIToStructure intostruct = factory.GetInChIToStructure(inchiString, ChemObjectBuilder.Instance); InChIReturnCode ret = intostruct.ReturnStatus; if (ret == InChIReturnCode.Warning) // Structure generated, but with warning message { warningMsg = "InChI warning: " + intostruct.Message; } else if (ret != InChIReturnCode.Ok) // Structure generation failed { errorMsg = "Structure generation failed failed: " + ret.ToString() + " [" + intostruct.Message + "]"; throw new Exception(errorMsg); } IAtomContainer mol = intostruct.AtomContainer; return(mol); }
static IAtomContainer ParseInChI(string inchi) { try { var structure = InChIToStructure.FromInChI(inchi); if (structure.ReturnStatus == InChIReturnCode.Ok) { return(structure.AtomContainer); } } catch (Exception) { } return(null); }
public static IAtomContainer MolFromInChI(string inchi) { try { var mol = InChIToStructure.FromInChI(inchi); if (mol.ReturnStatus > InChIReturnCode.Warning) { throw new Exception(mol.Message); } return(mol.AtomContainer); } catch (Exception) { } return(null); }