@Override public IChemObjectBuilder getBuilder() { return SilentChemObjectBuilder.getInstance(); } }
@Override public IChemObjectBuilder getBuilder() { return SilentChemObjectBuilder.getInstance(); } }
static void test(String... inputs) throws Exception { SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance()); SmilesGenerator sg = SmilesGenerator.absolute(); Set<String> output = new HashSet<String>(); for (String input : inputs) output.add(sg.create(sp.parseSmiles(input))); Assert.assertThat(Joiner.on(".").join(inputs) + " were not canonicalised, outputs were " + output, output.size(), is(1)); }
@Test public void testRoundTripCharge() { String f = "[C3H7]+"; IMolecularFormula m = MolecularFormulaManipulator.getMolecularFormula(f, SilentChemObjectBuilder.getInstance()); assertThat(MolecularFormulaManipulator.getString(m), is("[C3H7]+")); } }
@BeforeClass public static void setup() { builder = SilentChemObjectBuilder.getInstance(); lpcheck = new LonePairElectronChecker(); }
public InChITautomerGeneratorTest() throws CDKException { super(); smilesParser = new SmilesParser(SilentChemObjectBuilder.getInstance()); tautomerGenerator = new InChITautomerGenerator(); }
@Test public void strictIsotopes() throws CDKException { SmilesParser smipar = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer mol = smipar.parseSmiles("[12CH3]C"); assertThat(new SmilesGenerator(SmiFlavor.AtomicMassStrict).create(mol), is("[12CH3]C")); }
public IAtomContainer reconstruct(String signature) { ColoredTree tree = AbstractVertexSignature.parse(signature); MoleculeFromSignatureBuilder builder = new MoleculeFromSignatureBuilder(SilentChemObjectBuilder.getInstance()); builder.makeFromColoredTree(tree); return builder.getAtomContainer(); }
@Test public void canonicalReactions() throws Exception { SmilesParser smipar = new SmilesParser(SilentChemObjectBuilder.getInstance()); IReaction r1 = smipar.parseReactionSmiles("CC(C)C1=CC=CC=C1.C(CC(=O)Cl)CCl>[Al+3].[Cl-].[Cl-].[Cl-].C(Cl)Cl>CC(C)C1=CC=C(C=C1)C(=O)CCCCl"); IReaction r2 = smipar.parseReactionSmiles("C(CC(=O)Cl)CCl.CC(C)C1=CC=CC=C1>[Al+3].[Cl-].[Cl-].[Cl-].C(Cl)Cl>CC(C)C1=CC=C(C=C1)C(=O)CCCCl"); IReaction r3 = smipar.parseReactionSmiles("CC(C)C1=CC=CC=C1.C(CC(=O)Cl)CCl>C(Cl)Cl.[Al+3].[Cl-].[Cl-].[Cl-]>CC(C)C1=CC=C(C=C1)C(=O)CCCCl"); SmilesGenerator smigen = new SmilesGenerator(SmiFlavor.Canonical); assertThat(smigen.create(r1), is(smigen.create(r2))); assertThat(smigen.create(r2), is(smigen.create(r3))); }
@Test public void canonRadicals() throws CDKException { IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); SmilesParser smipar = new SmilesParser(bldr); IAtomContainer mol = smipar.parseSmiles("[C]1C[CH][CH]OC1 |^1:2,3,^2:0|"); SmilesGenerator smigen = new SmilesGenerator(SmiFlavor.CxRadical | SmiFlavor.Canonical); String smi = smigen.create(mol); assertThat(smi, is("[C]1CO[CH][CH]C1 |^1:3,4,^2:0|")); }
@Test public void hydrogenAsFirstAtomInEthane() throws Exception { SmilesParser smipar = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer ethane = smipar.parseSmiles("[H]C([H])([H])C([H])([H])[H]"); AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(ethane); ModelBuilder3D mb3d = ModelBuilder3D.getInstance(SilentChemObjectBuilder.getInstance()); mb3d.generate3DCoordinates(ethane, false); for (IAtom atom : ethane.atoms()) assertNotNull(atom.getPoint3d()); }
/** * @see https://tech.knime.org/forum/cdk/buggy-behavior-of-molecule-to-cdk-node */ @Test public void assignDbStereo() throws Exception { String in = "C(/N)=C\\C=C\\1/N=C1"; SmilesParser smipar = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer mol = smipar.parseSmiles(in); Assert.assertEquals("C(\\N)=C/C=C/1N=C1", SmilesGenerator.isomeric().create(mol)); }
@Test(expected = IllegalArgumentException.class) public void inconsistentStereoState() throws CDKException { final String smi = "O[C@]([H])(C)CCC"; SmilesParser smipar = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer mol = smipar.parseSmiles(smi); mol.removeBond(1); mol.removeAtomOnly(2); // unsafe-removes StructureDiagramGenerator sdg = new StructureDiagramGenerator(); sdg.generateCoordinates(mol); }
@Test public void testIronChloride() throws InvalidSmilesException, CDKException { IAtomContainer ironChloride = new SmilesParser(SilentChemObjectBuilder.getInstance()).parseSmiles("Cl[Fe]Cl"); Assert.assertEquals(Double.NaN, ((DoubleResult) descriptor.calculate(ironChloride).getValue()).doubleValue(), 0.01); }
@Test public void testFractionalCSP3Descriptor() throws CDKException { SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance()); for (SmilesValue e: table) { IAtomContainer mol = sp.parseSmiles(e.smiles); DoubleResult result = (DoubleResult)descriptor.calculate(mol).getValue(); Assert.assertEquals(e.value, result.doubleValue(), 0.01); } } }
@Test public void testPhosphorusAcidGroup() throws Exception { SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("O=P(=O)O"); AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol); IntegerResult result = (IntegerResult) descriptor.calculate(mol).getValue(); Assert.assertEquals(1, result.intValue()); }
@Test public void testFancyGroup() throws Exception { SmilesParser sp = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("[NH](S(=O)=O)C(F)(F)F"); AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol); IntegerResult result = (IntegerResult) descriptor.calculate(mol).getValue(); Assert.assertEquals(1, result.intValue()); }
@Test public void testAcetonitrile() throws CDKException { parser = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer struct = parseSmiles("CC#N"); JPlogPDescriptor desc = new JPlogPDescriptor(); DescriptorValue answer = desc.calculate(struct); DoubleResult result = (DoubleResult) answer.getValue(); double output = result.doubleValue(); assertEquals(0.4, output, 0.1); }
static String canon(String smi) throws Exception { final IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); final SmilesParser smipar = new SmilesParser(bldr); final IAtomContainer container = smipar.parseSmiles(smi); AtomContainerManipulator.suppressHydrogens(container); Aromaticity arom = new Aromaticity(ElectronDonation.daylight(), Cycles.all()); arom.apply(container); return SmilesGenerator.unique().create(container); } }
@Test public void makeEdgeTest_singleBond() { MoleculeFromSignatureBuilder builder = new MoleculeFromSignatureBuilder(SilentChemObjectBuilder.getInstance()); builder.makeGraph(); builder.makeVertex("C"); builder.makeVertex("C"); builder.makeEdge(0, 1, "C", "C", ""); IAtomContainer product = builder.getAtomContainer(); Assert.assertEquals(2, product.getAtomCount()); Assert.assertEquals(1, product.getBondCount()); Assert.assertEquals(IBond.Order.SINGLE, product.getBond(0).getOrder()); }