private static IMolecularFormula getMolecularFormula(String stringMF, boolean assumeMajorIsotope, IChemObjectBuilder builder) { IMolecularFormula formula = builder.newInstance(IMolecularFormula.class); return getMolecularFormula(stringMF, formula, assumeMajorIsotope); }
/** * Converts a formula string (like "C2H4") into an atom container with atoms * but no bonds. * * @param formulaString the formula to convert * @param builder a chem object builder * @return atoms wrapped in an atom container */ public static IAtomContainer getAtomContainer(String formulaString, IChemObjectBuilder builder) { return MolecularFormulaManipulator.getAtomContainer(MolecularFormulaManipulator.getMolecularFormula( formulaString, builder)); }
/** {@inheritDoc} */ @Override public IMolecularFormula getFormula() { String formula = smallMolecule.getChemicalFormula(); IMolecularFormula cdkFormula = MolecularFormulaManipulator.getMolecularFormula(formula, SilentChemObjectBuilder.getInstance()); return cdkFormula; }
@Test public void testRoundTripCharge() { String f = "[C3H7]+"; IMolecularFormula m = MolecularFormulaManipulator.getMolecularFormula(f, SilentChemObjectBuilder.getInstance()); assertThat(MolecularFormulaManipulator.getString(m), is("[C3H7]+")); } }
@Test public void acceptMinusAsInput() throws Exception { IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); IMolecularFormula mf = MolecularFormulaManipulator.getMolecularFormula("[PO4]3–", bldr); assertThat(mf.getCharge(), is(-3)); }
@Test public void testGetHeavyElements_IMolecularFormula_2() { IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula("CH3OH", builder); Assert.assertEquals(2, MolecularFormulaManipulator.getHeavyElements(formula).size()); }
@Test public void prontateChloride() throws Exception { IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); IMolecularFormula mf = MolecularFormulaManipulator.getMolecularFormula("[Cl]-", bldr); assertTrue(MolecularFormulaManipulator.adjustProtonation(mf, +1)); assertThat(MolecularFormulaManipulator.getString(mf), is("ClH")); assertThat(mf.getCharge(), is(0)); assertThat(mf.getIsotopeCount(), is(2)); }
@Test public void protonatePhenolate() throws Exception { IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); IMolecularFormula mf = MolecularFormulaManipulator.getMolecularFormula("[C6H5O]-", bldr); assertTrue(MolecularFormulaManipulator.adjustProtonation(mf, +1)); assertThat(MolecularFormulaManipulator.getString(mf), is("C6H6O")); assertThat(mf.getCharge(), is(0)); assertThat(mf.getIsotopeCount(), is(3)); }
@Test public void deprontateHCl() throws Exception { IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); IMolecularFormula mf = MolecularFormulaManipulator.getMolecularFormula("HCl", bldr); assertTrue(MolecularFormulaManipulator.adjustProtonation(mf, -1)); assertThat(MolecularFormulaManipulator.getString(mf), is("[Cl]-")); assertThat(mf.getCharge(), is(-1)); assertThat(mf.getIsotopeCount(), is(1)); }
@Test public void testSingleAtom() { String formula = "CH4"; IMolecularFormula mf = MolecularFormulaManipulator.getMolecularFormula(formula, builder); Assert.assertEquals(1, MolecularFormulaManipulator.getIsotopes(mf, mf.getBuilder().newInstance(IElement.class, "C")).size()); }
@Test public void testGeneratorSavesState() { IsotopePatternGenerator isogen = new IsotopePatternGenerator(.1); IMolecularFormula mf1 = MolecularFormulaManipulator.getMolecularFormula("C6H12O6", builder); IsotopePattern ip1 = isogen.getIsotopes(mf1); Assert.assertEquals(1, ip1.getNumberOfIsotopes()); IMolecularFormula mf2 = MolecularFormulaManipulator.getMolecularFormula("C6H12O6", builder); IsotopePattern ip2 = isogen.getIsotopes(mf2); Assert.assertEquals(1, ip2.getNumberOfIsotopes()); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testNominalMass() throws ClassNotFoundException, CDKException, Exception { IRule rule = new NitrogenRule(); IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula("C25H53NO7P", builder); formula.setCharge(1); Assert.assertEquals(1.0, rule.validate(formula), 0.0001); }
@Test public void testGetMolecularFormula_String_IChemObjectBuilder() { IMolecularFormula molecularFormula = MolecularFormulaManipulator.getMolecularFormula("C10H16", builder); Assert.assertEquals(26, MolecularFormulaManipulator.getAtomCount(molecularFormula)); Assert.assertEquals(2, molecularFormula.getIsotopeCount()); }
/** * A unit test suite for JUnit. Compounds like Fe, Co, Hg, Pt, As.C40H46FeN6O8S2 * * @return The test suite */ @Test public void testWithFe() throws ClassNotFoundException, CDKException, Exception { IRule rule = new NitrogenRule(); IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula("C40H46FeN6O8S2", builder); formula.setCharge(2); Assert.assertEquals(1.0, rule.validate(formula), 0.0001); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testDoubleCharge() throws ClassNotFoundException, CDKException, Exception { IRule rule = new NitrogenRule(); IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula("C22H34N2S2", builder); formula.setCharge(2); Assert.assertEquals(1.0, rule.validate(formula), 0.0001); }
@Test public void testSimplifygetMF() { String formula = "CH4.H2O"; IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 6); formula1.addIsotope(builder.newInstance(IIsotope.class, "O"), 1); IMolecularFormula ff = MolecularFormulaManipulator.getMolecularFormula(formula, builder); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, MolecularFormulaManipulator.getMolecularFormula(formula, builder))); Assert.assertEquals("CH6O", MolecularFormulaManipulator.getString(ff)); }
/** * @cdk.bug 3340660 */ @Test public void testHelium() { IAtomContainer helium = new AtomContainer(); helium.addAtom(new Atom("He")); IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula(helium); Assert.assertNotNull(formula); Assert.assertEquals("He", MolecularFormulaManipulator.getString(formula)); }
/** * @cdk.bug 3340660 */ @Test public void testAmericum() { IAtomContainer helium = new AtomContainer(); helium.addAtom(new Atom("Am")); IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula(helium); Assert.assertNotNull(formula); Assert.assertEquals("Am", MolecularFormulaManipulator.getString(formula)); }
/** Test formula summing */ @Test public void testGetMolecularFormula_String_IMolecularFormula() { IMolecularFormula mf1 = new MolecularFormula(); mf1.addIsotope(builder.newInstance(IIsotope.class, "C"), 10); mf1.addIsotope(builder.newInstance(IIsotope.class, "H"), 16); Assert.assertEquals(26, MolecularFormulaManipulator.getAtomCount(mf1)); Assert.assertEquals(2, mf1.getIsotopeCount()); IMolecularFormula mf2 = MolecularFormulaManipulator.getMolecularFormula("C11H17", mf1); Assert.assertEquals(54, MolecularFormulaManipulator.getAtomCount(mf2)); Assert.assertEquals(2, mf2.getIsotopeCount()); }
@Test public void testGetMolecularFormula_IAtomContainer_withCharge() { IAtomContainer ac = builder.newInstance(IAtomContainer.class); ac.addAtom(builder.newInstance(IAtom.class, "C")); ac.getAtom(0).setFormalCharge(1); ac.addAtom(builder.newInstance(IAtom.class, "C")); ac.addAtom(builder.newInstance(IAtom.class, "H")); ac.addAtom(builder.newInstance(IAtom.class, "H")); ac.addAtom(builder.newInstance(IAtom.class, "H")); IMolecularFormula mf1 = MolecularFormulaManipulator.getMolecularFormula(ac); Assert.assertEquals(1, mf1.getCharge(), 0.000); }