@Test public void e_butene_2D_force3D() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/e_butene_2d.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); // yuk! Properties prop = new Properties(); prop.setProperty("ForceReadAs3DCoordinates", "true"); PropertiesListener listener = new PropertiesListener(prop); reader.addChemObjectIOListener(listener); reader.customizeJob(); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertNotNull(molecule); assertFalse(molecule.stereoElements().iterator().hasNext()); }
@Test public void e_butene_3D() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/e_butene_3d.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); Properties prop = new Properties(); prop.setProperty("ForceReadAs3DCoordinates", "true"); PropertiesListener listener = new PropertiesListener(prop); reader.addChemObjectIOListener(listener); reader.customizeJob(); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertNotNull(molecule); assertTrue(molecule.stereoElements().iterator().hasNext()); }
@Test public void e_butene_2D_optOff() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/e_butene_2d.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); Properties prop = new Properties(); prop.setProperty("AddStereoElements", "false"); PropertiesListener listener = new PropertiesListener(prop); reader.addChemObjectIOListener(listener); reader.customizeJob(); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertNotNull(molecule); assertFalse(molecule.stereoElements().iterator().hasNext()); }
@Test public void testDeuterium() throws Exception { String filename = "data/mdl/chemblMolregno5369.mol"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins, Mode.RELAXED); Properties prop = new Properties(); prop.setProperty("InterpretHydrogenIsotopes", "true"); PropertiesListener listener = new PropertiesListener(prop); reader.addChemObjectIOListener(listener); reader.customizeJob(); IAtomContainer molecule = new AtomContainer(); molecule = reader.read(molecule); reader.close(); int deuteriumCount = 0; for (IAtom atom : molecule.atoms()) if (atom.getSymbol().equals("H") && atom.getMassNumber() != null && atom.getMassNumber() == 2) deuteriumCount++; Assert.assertEquals(3, deuteriumCount); }
/** * @cdk.bug 1732307 */ @Test public void testZeroZCoordinates() throws Exception { String filename = "data/mdl/nozcoord.sdf"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); Properties prop = new Properties(); prop.setProperty("ForceReadAs3DCoordinates", "true"); PropertiesListener listener = new PropertiesListener(prop); reader.addChemObjectIOListener(listener); reader.customizeJob(); IAtomContainer mol = reader.read(DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class)); reader.close(); Assert.assertNotNull(mol); Assert.assertEquals(5, mol.getAtomCount()); boolean has3d = GeometryUtil.has3DCoordinates(mol); assertTrue(has3d); }