/** * In the minimal IMolecularFormula must contain all those IElement found in the * minimal IMolecularFormula. * * @param formulaMax A IMolecularFormula which contains the maximal representation of the Elements * @param formulaMin A IMolecularFormula which contains the minimal representation of the Elements * @return True, if the correlation is valid */ private static boolean validCorrelation(IMolecularFormula formulaMin, IMolecularFormula formulamax) { for (IElement element : MolecularFormulaManipulator.elements(formulaMin)) { if (!MolecularFormulaManipulator.containsElement(formulamax, element)) return false; } return true; }
/** * Returns a set of nodes excluding all the hydrogens. * * @param formula The IMolecularFormula * @return The heavyElements value into a List * * @cdk.keyword hydrogen, removal */ public static List<IElement> getHeavyElements(IMolecularFormula formula) { List<IElement> newEle = new ArrayList<IElement>(); for (IElement element : elements(formula)) { if (!element.getSymbol().equals("H")) { newEle.add(element); } } return newEle; }
/** * Validate the occurrence of this IMolecularFormula. * * @param formula Parameter is the IMolecularFormula * @return An ArrayList containing 9 elements in the order described above */ @Override public double validate(IMolecularFormula formula) throws CDKException { logger.info("Start validation of ", formula); double isValid = 1.0; Iterator<IElement> itElem = MolecularFormulaManipulator.elements(formula).iterator(); while (itElem.hasNext()) { IElement element = itElem.next(); int occur = MolecularFormulaManipulator.getElementCount(formula, element); if (occur > hashMap.get(element.getSymbol())) { isValid = 0.0; break; } } return isValid; }
/** * Validate the occurrence of this IMolecularFormula. * * @param formula Parameter is the IMolecularFormula * @return An ArrayList containing 9 elements in the order described above */ @Override public double validate(IMolecularFormula formula) throws CDKException { logger.info("Start validation of ", formula); ensureDefaultOccurElements(formula.getBuilder()); double isValid = 1.0; Iterator<IElement> itElem = MolecularFormulaManipulator.elements(formula).iterator(); while (itElem.hasNext()) { IElement element = itElem.next(); int occur = MolecularFormulaManipulator.getElementCount(formula, element); IIsotope elemIsotope = formula.getBuilder().newInstance(IIsotope.class, element.getSymbol()); if ((occur < mfRange.getIsotopeCountMin(elemIsotope)) || (occur > mfRange.getIsotopeCountMax(elemIsotope))) { isValid = 0.0; break; } } return isValid; }
String elemCounts = ""; IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula(crystal); List<IElement> asortedElements = MolecularFormulaManipulator.elements(formula); Iterator<IElement> elements = asortedElements.iterator(); while (elements.hasNext()) {
for (IElement element : MolecularFormulaManipulator.elements(formulaMin)) { int occur = MolecularFormulaManipulator.getElementCount(formula, element); int occurMax = MolecularFormulaManipulator.getElementCount(formulaMax, element);
@Test public void testElements_IMolecularFormula() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); IIsotope br1 = builder.newInstance(IIsotope.class, "Br"); br1.setNaturalAbundance(50.69); formula.addIsotope(br1); IIsotope br2 = builder.newInstance(IIsotope.class, "Br"); br2.setNaturalAbundance(50.69); formula.addIsotope(br2); List<IElement> elements = MolecularFormulaManipulator.elements(formula); Assert.assertEquals(5, MolecularFormulaManipulator.getAtomCount(formula)); Assert.assertEquals(3, elements.size()); }