@Test public void testAccepts() { SMILESReader reader = new SMILESReader(); Assert.assertTrue(reader.accepts(ChemFile.class)); Assert.assertTrue(reader.accepts(AtomContainerSet.class)); }
@Override public void setReader(InputStream input) throws CDKException { setReader(new InputStreamReader(input)); }
@Test public void testReadingSmiFile_1() throws Exception { String filename = "data/smiles/smiles.smi"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); SMILESReader reader = new SMILESReader(ins); IAtomContainerSet som = reader.read(new AtomContainerSet()); String name = null; IAtomContainer thisMol = som.getAtomContainer(0); name = ((String) thisMol.getProperty("SMIdbNAME")).toString(); Assert.assertEquals("benzene", name); }
@BeforeClass public static void setup() throws Exception { setSimpleChemObjectReader(new SMILESReader(), "data/smiles/smiles.smi"); }
@Override public boolean accepts(Class<? extends IChemObject> classObject) { if (IAtomContainerSet.class.equals(classObject)) return true; if (IChemFile.class.equals(classObject)) return true; Class<?>[] interfaces = classObject.getInterfaces(); for (Class<?> anInterface : interfaces) { if (IChemFile.class.equals(anInterface)) return true; if (IAtomContainerSet.class.equals(anInterface)) return true; } Class superClass = classObject.getSuperclass(); if (superClass != null) return this.accepts(superClass); return false; }
logger.debug("Line: ", line); final String name = suffix(line);
/** * Reads the content from a XYZ input. It can only return a * {@link IChemObject} of type {@link IChemFile}. * * @param object class must be of type ChemFile * * @see IChemFile */ @Override public <T extends IChemObject> T read(T object) throws CDKException { sp = new SmilesParser(object.getBuilder()); if (object instanceof IAtomContainerSet) { return (T) readAtomContainerSet((IAtomContainerSet) object); } else if (object instanceof IChemFile) { IChemFile file = (IChemFile) object; IChemSequence sequence = file.getBuilder().newInstance(IChemSequence.class); IChemModel chemModel = file.getBuilder().newInstance(IChemModel.class); chemModel.setMoleculeSet(readAtomContainerSet(file.getBuilder().newInstance(IAtomContainerSet.class))); sequence.addChemModel(chemModel); file.addChemSequence(sequence); return (T) file; } else { throw new CDKException("Only supported is reading of MoleculeSet objects."); } }
@Test public void testReading() throws Exception { String filename = "data/smiles/smiles.smi"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); SMILESReader reader = new SMILESReader(ins); IAtomContainerSet som = reader.read(new AtomContainerSet()); Assert.assertEquals(8, som.getAtomContainerCount()); }
cor = new MDLRXNV2000Reader(getReader(url)); } else if (type.equals(JCPFileFilter.smi) || type.equals("smiles")) { cor = new SMILESReader(getReader(url));
@Test public void testReadingSmiFile_3() throws Exception { String filename = "data/smiles/test3.smi"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); SMILESReader reader = new SMILESReader(ins); IAtomContainerSet som = reader.read(new AtomContainerSet()); Assert.assertEquals(5, som.getAtomContainerCount()); }
@Test public void badSmilesLine() throws CDKException { IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); String input = "C\nn1cccc1\nc1ccccc1\n"; DefaultChemObjectReader cor = new SMILESReader(new StringReader(input)); IAtomContainerSet mols = cor.read(bldr.newInstance(IAtomContainerSet.class)); assertThat(mols.getAtomContainerCount(), is(3)); assertThat(mols.getAtomContainer(0).getAtomCount(), is(1)); assertThat(mols.getAtomContainer(0).getProperty(IteratingSMILESReader.BAD_SMILES_INPUT), nullValue()); assertThat(mols.getAtomContainer(1).getAtomCount(), is(0)); assertThat(mols.getAtomContainer(1).getProperty(IteratingSMILESReader.BAD_SMILES_INPUT), notNullValue()); assertThat(mols.getAtomContainer(2).getAtomCount(), is(6)); assertThat(mols.getAtomContainer(2).getProperty(IteratingSMILESReader.BAD_SMILES_INPUT), nullValue()); }
@Test public void testReadingSmiFile_2() throws Exception { String filename = "data/smiles/smiles.smi"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); SMILESReader reader = new SMILESReader(ins); IAtomContainerSet som = reader.read(new AtomContainerSet()); IAtomContainer thisMol = som.getAtomContainer(1); Assert.assertNull(thisMol.getProperty("SMIdbNAME")); }
break; case "SMIF": reader = new SMILESReader(new FileReader(inputFile)); deducebonds = true; emptyChemFile = builder.newInstance(IChemFile.class);
String filename = "data/smiles/c10h16isomers.smi"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); SMILESReader reader = new SMILESReader(ins); IAtomContainerSet som = reader.read(new AtomContainerSet()); Assert.assertEquals("We must have read 99 structures", 99, som.getAtomContainerCount()); CrossoverMachine cm = new CrossoverMachine();