IsotopePatternManipulator { public static IsotopePattern sortByMass(IsotopePattern isotopeP) { try { IsotopePattern isoSort = (IsotopePattern) isotopeP.clone(); if (isoSort.getNumberOfIsotopes() == 0) return isoSort; List<IsotopeContainer> listISO = isoSort.getIsotopes(); Collections.sort(listISO, new Comparator<IsotopeContainer>() { @Override public int compare(IsotopeContainer o1, IsotopeContainer o2) { return Double.compare(o1.getMass(),o2.getMass()); } }); isoSort.setMonoIsotope(listISO.get(0)); return isoSort; } catch (CloneNotSupportedException e) { e.printStackTrace(); } return null; }  static IsotopePattern normalize(IsotopePattern isotopeP); static IsotopePattern sortAndNormalizedByIntensity(IsotopePattern isotopeP); static IsotopePattern sortByIntensity(IsotopePattern isotopeP); static IsotopePattern sortByMass(IsotopePattern isotopeP);  }
@Test public void testSortByMass_IsotopePattern() { IsotopePattern spExp = new IsotopePattern(); spExp.addIsotope(new IsotopeContainer(157.07503, 0.0002)); spExp.setMonoIsotope(new IsotopeContainer(156.07770, 2)); spExp.addIsotope(new IsotopeContainer(158.08135, 0.004)); spExp.addIsotope(new IsotopeContainer(157.08059, 0.0006)); spExp.setCharge(1); IsotopePattern isoNorma = IsotopePatternManipulator.sortByMass(spExp); List<IsotopeContainer> listISO = isoNorma.getIsotopes(); Assert.assertEquals(156.07770, isoNorma.getMonoIsotope().getMass(), 0.001); Assert.assertEquals(156.07770, listISO.get(0).getMass(), 0.00001); Assert.assertEquals(157.07503, listISO.get(1).getMass(), 0.00001); Assert.assertEquals(157.08059, listISO.get(2).getMass(), 0.00001); Assert.assertEquals(158.08135, listISO.get(3).getMass(), 0.00001); Assert.assertEquals(2, isoNorma.getMonoIsotope().getIntensity(), 0.001); Assert.assertEquals(2, listISO.get(0).getIntensity(), 0.001); Assert.assertEquals(0.0002, listISO.get(1).getIntensity(), 0.00001); Assert.assertEquals(0.0006, listISO.get(2).getIntensity(), 0.00001); Assert.assertEquals(0.004, listISO.get(3).getIntensity(), 0.00001); Assert.assertEquals(1, isoNorma.getCharge(), 0.001); }