@Override public void close() { try { molReader.close(); } catch (IOException e) { e.printStackTrace(); } }
private IAtomContainer loadMolecule(String path) throws Exception { InputStream ins = this.getClass().getClassLoader().getResourceAsStream(path); MDLV2000Reader reader = new MDLV2000Reader(ins, Mode.STRICT); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); List<IAtomContainer> containersList = ChemFileManipulator.getAllAtomContainers(chemFile); return (IAtomContainer) containersList.get(0); }
/** * Ensure having a property with 2 new line lines will still allow 2 entries * to be read - a bug from the mailing list. */ @Test public void testMultipleNewlinesInSDFProperty() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/multiplenewline-property.sdf"); MDLV2000Reader reader = new MDLV2000Reader(in); IChemFile chemFile = reader.read(new ChemFile()); reader.close(); assertThat(ChemFileManipulator.getAllAtomContainers(chemFile).size(), is(2)); }
@Test public void e_butene_2D() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/e_butene_2d.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertTrue(molecule.stereoElements().iterator().hasNext()); }
@Test public void e_butene_0D() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/e_butene_0d.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertNotNull(molecule); assertFalse(molecule.stereoElements().iterator().hasNext()); }
@Test public void testUndefinedStereo2() throws Exception { String filename = "data/mdl/a-pinene-with-undefined-stereo.mol"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins, Mode.STRICT); IAtomContainer mol = reader.read(new AtomContainer()); reader.close(); Assert.assertEquals(IBond.Stereo.UP_OR_DOWN, mol.getBond(1).getStereo()); }
@Test public void testAliasAfterRgroup() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/r-group-with-alias.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer container = reader.read(new AtomContainer()); reader.close(); assertThat(container.getAtom(6), is(instanceOf(IPseudoAtom.class))); assertThat(((IPseudoAtom) container.getAtom(6)).getLabel(), is("R6")); assertThat(container.getAtom(7), is(instanceOf(IPseudoAtom.class))); assertThat(((IPseudoAtom) container.getAtom(7)).getLabel(), is("Protein")); }
@Test public void testRGroup() throws Exception { String filename = "data/mdl/SARGROUPTEST.sdf"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); IAtomContainer mol = reader.read(new AtomContainer()); reader.close(); Assert.assertEquals("R2", ((IPseudoAtom) mol.getAtom(19)).getLabel()); }
private void testShortLinesForMode(IChemObjectReader.Mode mode) throws Exception { String filename = "data/mdl/glycine-short-lines.mol"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins, mode); IAtomContainer mol = reader.read(new AtomContainer()); reader.close(); Assert.assertNotNull(mol); Assert.assertEquals(mol.getAtomCount(), 5); Assert.assertEquals(mol.getBondCount(), 4); }
@Test public void testAtomValueLines() throws Exception { String filename = "data/mdl/atomValueLines.mol"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); IAtomContainer testMolecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); IAtomContainer result = reader.read(testMolecule); reader.close(); IAtom oxygen = result.getAtom(0); assertTrue(oxygen.getSymbol().equals("O")); Assert.assertEquals(oxygen.getProperty(CDKConstants.COMMENT), "Oxygen comment"); }
@Test public void radicalsReflectedInHydrogenCount() throws Exception { MDLV2000Reader r = new MDLV2000Reader(getClass().getResourceAsStream("structure-with-radical.mol")); IAtomContainer m = r.read(new AtomContainer()); r.close(); assertThat(m.getAtom(0).getAtomicNumber(), is(8)); assertThat(m.getAtom(0).getImplicitHydrogenCount(), is(0)); }
/** * @cdk.bug 1343 */ @Test public void nonNegativeHydrogenCountOnHydrogenRadical() throws Exception { InputStream in = getClass().getResourceAsStream("/data/mdl/ChEBI_29293.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer container = reader.read(new AtomContainer()); reader.close(); assertThat(container.getAtom(0).getImplicitHydrogenCount(), is(0)); assertThat(container.getAtom(1).getImplicitHydrogenCount(), is(0)); }
@Test public void testAliasPropertyGroup() throws Exception { String filename = "data/mdl/AliasPropertyRGroup.sdf"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); IAtomContainer mol = reader.read(new AtomContainer()); reader.close(); IAtom atom = mol.getAtom(0); assertTrue(atom instanceof IPseudoAtom); Assert.assertEquals("R\\1", ((IPseudoAtom) atom).getLabel()); }
@Test public void testSingleTripletRadical() throws Exception { InputStream in = ClassLoader.getSystemResourceAsStream("data/mdl/singleTripletRadical.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertThat(molecule.getConnectedSingleElectronsCount(molecule.getAtom(1)), is(2)); }
@Test public void testSingleDoubletRadical() throws Exception { InputStream in = ClassLoader.getSystemResourceAsStream("data/mdl/singleDoubletRadical.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertThat(molecule.getConnectedSingleElectronsCount(molecule.getAtom(1)), is(1)); }
@Test public void testTritiumProperties() throws Exception { String filename = "data/mdl/chemblMolregno7039.mol"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); IAtomContainer molecule = new AtomContainer(); molecule = reader.read(molecule); reader.close(); IAtom tritium = molecule.getAtom(molecule.getAtomCount() - 1); assertTrue(1 == tritium.getAtomicNumber()); assertTrue(3 == tritium.getMassNumber()); }
@Test public void testSingleSingletRadical() throws Exception { InputStream in = ClassLoader.getSystemResourceAsStream("data/mdl/singleSingletRadical.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertThat(molecule.getConnectedSingleElectronsCount(molecule.getAtom(1)), is(2)); }
@Test public void testReadingCharges() throws Exception { String filename = "data/mdl/withcharges.mol"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); IChemFile chemFile = reader.read(new ChemFile()); reader.close(); IAtomContainer container = chemFile.getChemSequence(0).getChemModel(0).getMoleculeSet().getAtomContainer(0); Assert.assertEquals(1, container.getAtom(6).getFormalCharge().intValue()); Assert.assertEquals(-1, container.getAtom(8).getFormalCharge().intValue()); }
/** * Test that R-groups at higher atom numbers (>9) are read correctly */ @Test public void testRGroupHighAtomNumber() throws Exception { InputStream in = ClassLoader.getSystemResourceAsStream("data/mdl/brenda_molfile_rgroup.mol"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); reader.read(molecule); reader.close(); Assert.assertEquals("R", molecule.getAtom(55).getSymbol()); }
@Test public void testPseudoAtomLabels() throws Exception { InputStream in = ClassLoader.getSystemResourceAsStream("data/mdl/pseudoatoms.sdf"); MDLV2000Reader reader = new MDLV2000Reader(in); IAtomContainer molecule = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class); molecule = reader.read(molecule); reader.close(); assertTrue(molecule.getAtom(4) instanceof IPseudoAtom); Assert.assertEquals("R", molecule.getAtom(4).getSymbol()); IPseudoAtom pa = (IPseudoAtom) molecule.getAtom(4); Assert.assertEquals("Gln", pa.getLabel()); }