IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();
InChIToStructure inChIToStructure = InChIGeneratorFactory.getInstance().getInChIToStructure("InChI=1S/C18H26N4O2/c1-4-5-8-11-22-14-10-7-6-9-13(14)16(21-22)18(24)20-15(12(2)3)17(19)23/h6-7,9-10,12,15H,4-5,8,11H2,1-3H3,(H2,19,23)(H,20,24)/t15-/m0/s1", builder);
IAtomContainer molecule = inChIToStructure.getAtomContainer();
AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
InChITautomerGenerator tautoGen = new InChITautomerGenerator();
List tautomers = tautoGen.getTautomers(molecule); // throws "Atom is not a member of this AtomContainer, you may be trying to add a bond before it's atoms!"
Stacktrace (for CDK 2.11):
org.openscience.cdk.exception.NoSuchAtomException: Atom is not a member of this AtomContainer, you may be trying to add a bond before it's atoms!
at org.openscience.cdk.silent.AtomContainer.getAtomRef(AtomContainer.java:185)
at org.openscience.cdk.silent.AtomContainer.getRef(AtomContainer.java:229)
at org.openscience.cdk.silent.AtomContainer.addStereoElement(AtomContainer.java:276)
at org.openscience.cdk.silent.AtomContainer.clone(AtomContainer.java:1602)
at org.openscience.cdk.tautomers.InChITautomerGenerator.constructTautomers(InChITautomerGenerator.java:507)
at org.openscience.cdk.tautomers.InChITautomerGenerator.getTautomers(InChITautomerGenerator.java:185)
at org.openscience.cdk.tautomers.InChITautomerGenerator.getTautomers(InChITautomerGenerator.java:118)
[..]
The InChI seems valid, can be processed by https://chemtoolshub.com/en/tools/structure-converter/ (a carboxamide, which is giving an imidic acid when the InChI is interpreted - we try to get the carboxamide using the tautomer generator)
IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();
InChIToStructure inChIToStructure = InChIGeneratorFactory.getInstance().getInChIToStructure("InChI=1S/C18H26N4O2/c1-4-5-8-11-22-14-10-7-6-9-13(14)16(21-22)18(24)20-15(12(2)3)17(19)23/h6-7,9-10,12,15H,4-5,8,11H2,1-3H3,(H2,19,23)(H,20,24)/t15-/m0/s1", builder);
IAtomContainer molecule = inChIToStructure.getAtomContainer();
AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
InChITautomerGenerator tautoGen = new InChITautomerGenerator();
List tautomers = tautoGen.getTautomers(molecule); // throws "Atom is not a member of this AtomContainer, you may be trying to add a bond before it's atoms!"
Stacktrace (for CDK 2.11):
org.openscience.cdk.exception.NoSuchAtomException: Atom is not a member of this AtomContainer, you may be trying to add a bond before it's atoms!
at org.openscience.cdk.silent.AtomContainer.getAtomRef(AtomContainer.java:185)
at org.openscience.cdk.silent.AtomContainer.getRef(AtomContainer.java:229)
at org.openscience.cdk.silent.AtomContainer.addStereoElement(AtomContainer.java:276)
at org.openscience.cdk.silent.AtomContainer.clone(AtomContainer.java:1602)
at org.openscience.cdk.tautomers.InChITautomerGenerator.constructTautomers(InChITautomerGenerator.java:507)
at org.openscience.cdk.tautomers.InChITautomerGenerator.getTautomers(InChITautomerGenerator.java:185)
at org.openscience.cdk.tautomers.InChITautomerGenerator.getTautomers(InChITautomerGenerator.java:118)
[..]
The InChI seems valid, can be processed by https://chemtoolshub.com/en/tools/structure-converter/ (a carboxamide, which is giving an imidic acid when the InChI is interpreted - we try to get the carboxamide using the tautomer generator)