IsotopePatternManipulator { public static IsotopePattern normalize(IsotopePattern isotopeP) { IsotopeContainer isoHighest = null; double biggestAbundance = 0; for (IsotopeContainer isoContainer : isotopeP.getIsotopes()) { double abundance = isoContainer.getIntensity(); if (biggestAbundance < abundance) { biggestAbundance = abundance; isoHighest = isoContainer; } } IsotopePattern isoNormalized = new IsotopePattern(); for (IsotopeContainer isoContainer : isotopeP.getIsotopes()) { double inten = isoContainer.getIntensity() / isoHighest.getIntensity(); IsotopeContainer icClone; try { icClone = (IsotopeContainer) isoContainer.clone(); icClone.setIntensity(inten); if (isoHighest.equals(isoContainer)) isoNormalized.setMonoIsotope(icClone); else isoNormalized.addIsotope(icClone); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } isoNormalized.setCharge(isotopeP.getCharge()); return isoNormalized; }  static IsotopePattern normalize(IsotopePattern isotopeP); static IsotopePattern sortAndNormalizedByIntensity(IsotopePattern isotopeP); static IsotopePattern sortByIntensity(IsotopePattern isotopeP); static IsotopePattern sortByMass(IsotopePattern isotopeP);  }
@Test public void testNormalize_IsotopePattern() { IsotopePattern spExp = new IsotopePattern(); spExp.setMonoIsotope(new IsotopeContainer(156.07770, 2)); spExp.addIsotope(new IsotopeContainer(157.08059, 0.0006)); spExp.addIsotope(new IsotopeContainer(157.07503, 0.0002)); spExp.addIsotope(new IsotopeContainer(158.08135, 0.004)); spExp.setCharge(1); IsotopePattern isoNorma = IsotopePatternManipulator.normalize(spExp); List<IsotopeContainer> listISO = isoNorma.getIsotopes(); Assert.assertEquals(1, isoNorma.getMonoIsotope().getIntensity(), 0.00001); Assert.assertEquals(1, listISO.get(0).getIntensity(), 0.00001); Assert.assertEquals(0.0003, listISO.get(1).getIntensity(), 0.00001); Assert.assertEquals(0.0001, listISO.get(2).getIntensity(), 0.00001); Assert.assertEquals(0.002, listISO.get(3).getIntensity(), 0.00001); Assert.assertEquals(156.07770, isoNorma.getMonoIsotope().getMass(), 0.00001); Assert.assertEquals(156.07770, listISO.get(0).getMass(), 0.00001); Assert.assertEquals(157.08059, listISO.get(1).getMass(), 0.00001); Assert.assertEquals(157.07503, listISO.get(2).getMass(), 0.00001); Assert.assertEquals(158.08135, listISO.get(3).getMass(), 0.00001); Assert.assertEquals(1, isoNorma.getCharge(), 0.00001); }