Hi Is there a way to detect implausibility of molecules in general but in particular about valence errors:
E.g. the SMILES string "[CH4]=O" can of course be parsed to a formally correct molecule, but it obviously has a valence error on the C atom. First, I thought the org.openscience.cdk.validate.ValidatorEngine is the instrument of choice, but either I'm using it wrongly or it is not in the least concerned about such a molecule. But after all, for "[O-3]" it works as expected, I'm getting a Warning "Atom O has charge -3" from the BasicValidator. I'm running this kind of code: import org.openscience.cdk.exception.InvalidSmilesException; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.silent.SilentChemObjectBuilder; import org.openscience.cdk.smiles.SmilesParser; import org.openscience.cdk.validate.BasicValidator; import org.openscience.cdk.validate.ValidationReport; import org.openscience.cdk.validate.ValidationTest; import org.openscience.cdk.validate.ValidatorEngine; public class Snippet { private static boolean validate(IAtomContainer molecule) { ValidatorEngine validatorEngine = new ValidatorEngine(); validatorEngine.addValidator(new BasicValidator()); ValidationReport report = validatorEngine.validateMolecule(molecule); for (ValidationTest error : report.getErrors()){ System.err.println(error.getDetails()); } for (ValidationTest cdkerror : report.getCDKErrors()){ System.err.println(cdkerror.getDetails()); } for (ValidationTest warning : report.getWarnings()){ System.err.println(warning.getDetails()); } return report.getCount() == report.getOKCount(); } public static void main(String[] args) throws InvalidSmilesException { SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance()); System.out.println("[O-3] is valid: "+validate(sp.parseSmiles("[O-3]"))); System.out.println("[CH4]=O is valid: "+validate(sp.parseSmiles("[CH4]=O"))); } } and I'm getting this kind of output: Atom O has charge -3 [O-3] is valid: false [CH4]=O is valid: true Can you give me guidance? Many thanks and greetings, Emanuel
------------------------------------------------------------------------------
_______________________________________________ Cdk-user mailing list Cdk-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cdk-user