/** * Gets the parameters attribute of the IsotopePatternRule object. * * @return The parameters value * @see #setParameters */ @Override public Object[] getParameters() { // return the parameters as used for the rule validation Object[] params = new Object[2]; if (pattern == null) params[0] = null; else { List<double[]> params0 = new ArrayList<double[]>(); for (IsotopeContainer isotope : pattern.getIsotopes()) { params0.add(new double[] { isotope.getMass(), isotope.getIntensity() }); } params[0] = params0; } params[1] = toleranceMass; return params; }
List<IsotopeContainer> listISO = isoSort.getIsotopes(); Collections.sort(listISO, new Comparator<IsotopeContainer>() { @Override
for (IsotopeContainer sc : isopattern.getIsotopes()) { for (IsotopeContainer sc : isopattern.getIsotopes()) { sortedIsoPattern.setMonoIsotope(new IsotopeContainer(isopattern.getIsotopes().get(0))); for (int i = 1; i < isopattern.getNumberOfIsotopes(); i++) { if (isopattern.getIsotopes().get(i).getIntensity() >= (minIntensity)) { IsotopeContainer container = new IsotopeContainer(isopattern.getIsotopes().get(i)); sortedIsoPattern.addIsotope(container);
List<IsotopeContainer> listISO = isoSort.getIsotopes(); Collections.sort(listISO, new Comparator<IsotopeContainer>() { @Override
/** * Search and find the closest difference in an array in terms of mass and * intensity. Always return the position in this List. * * @param diffValue The difference to look for * @param normMass A List of normalized masses * @return The position in the List */ private int getClosestDataDiff(IsotopeContainer isoContainer, IsotopePattern pattern) { double diff = 100; int posi = -1; for (int i = 0; i < pattern.getNumberOfIsotopes(); i++) { double tempDiff = Math.abs((isoContainer.getMass()) - pattern.getIsotopes().get(i).getMass()); if (tempDiff <= (tolerance_ppm / isoContainer.getMass()) && tempDiff < diff) { diff = tempDiff; posi = i; } } return posi; } }
chargeToAdd = 0; for (IsotopeContainer isoC : iso1.getIsotopes()) { double mass = isoC.getMass(); isoC.setMass(mass + chargeToAdd); IsotopeContainer isoContainer = iso1.getIsotopes().get(i); factor = isoContainer.getIntensity(); totalFactor += factor; if (closestDp == -1) continue; diffMass = isoContainer.getMass() - iso2.getIsotopes().get(closestDp).getMass(); diffMass = Math.abs(diffMass); diffAbun = 1.0d - (isoContainer.getIntensity() / iso2.getIsotopes().get(closestDp).getIntensity()); diffAbun = Math.abs(diffAbun);
for (IsotopeContainer isoContainer : isotopeP.getIsotopes()) { double abundance = isoContainer.getIntensity(); if (biggestAbundance < abundance) { for (IsotopeContainer isoContainer : isotopeP.getIsotopes()) { double inten = isoContainer.getIntensity() / isoHighest.getIntensity(); IsotopeContainer icClone;
@Test public void testMultipleFormulasForAMass() { IMolecularFormula mf = MolecularFormulaManipulator.getMolecularFormula("C6Cl2", builder); IsotopePatternGenerator isogen = new IsotopePatternGenerator(0.1).setMinIntensity(0.01) .setMinResolution(0.01) .setStoreFormulas(true); IsotopePattern pattern = isogen.getIsotopes(mf); List<IsotopeContainer> isotopes = pattern.getIsotopes(); Assert.assertThat(isotopes.get(0).getFormulas().size(), is(1)); Assert.assertThat(isotopes.get(1).getFormulas().size(), is(1)); Assert.assertThat(isotopes.get(2).getFormulas().size(), is(2)); Assert.assertThat(isotopes.get(3).getFormulas().size(), is(2)); Assert.assertThat(isotopes.get(4).getFormulas().size(), is(3)); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testGetIsotopes() { IsotopePattern isoP = new IsotopePattern(); IsotopeContainer iso1 = new IsotopeContainer(); isoP.setMonoIsotope(iso1); IsotopeContainer iso2 = new IsotopeContainer(); isoP.addIsotope(iso2); Assert.assertEquals(iso1, isoP.getIsotopes().get(0)); Assert.assertEquals(iso2, isoP.getIsotopes().get(1)); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testClone() throws Exception { IsotopePattern spExp = new IsotopePattern(); spExp.setMonoIsotope(new IsotopeContainer(156.07770, 1)); spExp.addIsotope(new IsotopeContainer(157.07503, 0.0004)); spExp.addIsotope(new IsotopeContainer(157.08059, 0.0003)); spExp.addIsotope(new IsotopeContainer(158.08135, 0.002)); spExp.setCharge(1); IsotopePattern clone = (IsotopePattern) spExp.clone(); Assert.assertEquals(156.07770, clone.getMonoIsotope().getMass(), 0.001); Assert.assertEquals(156.07770, clone.getIsotopes().get(0).getMass(), 0.001); Assert.assertEquals(157.07503, clone.getIsotopes().get(1).getMass(), 0.001); Assert.assertEquals(157.08059, clone.getIsotopes().get(2).getMass(), 0.001); Assert.assertEquals(158.08135, clone.getIsotopes().get(3).getMass(), 0.001); Assert.assertEquals(1, clone.getMonoIsotope().getIntensity(), 0.001); Assert.assertEquals(1, clone.getIsotopes().get(0).getIntensity(), 0.001); Assert.assertEquals(0.0004, clone.getIsotopes().get(1).getIntensity(), 0.001); Assert.assertEquals(0.0003, clone.getIsotopes().get(2).getIntensity(), 0.001); Assert.assertEquals(0.002, clone.getIsotopes().get(3).getIntensity(), 0.001); Assert.assertEquals(1, clone.getCharge(), 0.001); }
current.addIsotope(container); } else { for (IsotopeContainer container : current.getIsotopes()) { for (IsotopeContainer other : additional) {
/** * Junit test * * @throws Exception */ @Test public void testSortByIntensity_IsotopePattern() { IsotopePattern spExp = new IsotopePattern(); spExp.setMonoIsotope(new IsotopeContainer(157.07503, 0.0001)); spExp.addIsotope(new IsotopeContainer(156.07770, 1)); spExp.addIsotope(new IsotopeContainer(157.08059, 0.0003)); spExp.addIsotope(new IsotopeContainer(158.08135, 0.002)); spExp.setCharge(1); IsotopePattern isoNorma = IsotopePatternManipulator.sortByIntensity(spExp); List<IsotopeContainer> listISO = isoNorma.getIsotopes(); Assert.assertEquals(156.07770, isoNorma.getMonoIsotope().getMass(), 0.00001); Assert.assertEquals(156.07770, listISO.get(0).getMass(), 0.00001); Assert.assertEquals(158.08135, listISO.get(1).getMass(), 0.00001); Assert.assertEquals(157.08059, listISO.get(2).getMass(), 0.00001); Assert.assertEquals(157.07503, listISO.get(3).getMass(), 0.00001); Assert.assertEquals(1, isoNorma.getMonoIsotope().getIntensity(), 0.00001); Assert.assertEquals(1, listISO.get(0).getIntensity(), 0.00001); Assert.assertEquals(0.002, listISO.get(1).getIntensity(), 0.00001); Assert.assertEquals(0.0003, listISO.get(2).getIntensity(), 0.001); Assert.assertEquals(0.0001, listISO.get(3).getIntensity(), 0.00001); Assert.assertEquals(1, isoNorma.getCharge(), 0.00001); }
/** * Junit test * * @throws Exception */ @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); }
/** * Junit test * * @throws Exception */ @Test public void testSortAndNormalizedByIntensity_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.sortAndNormalizedByIntensity(spExp); List<IsotopeContainer> listISO = isoNorma.getIsotopes(); Assert.assertEquals(156.07770, isoNorma.getMonoIsotope().getMass(), 0.00001); Assert.assertEquals(156.07770, listISO.get(0).getMass(), 0.00001); Assert.assertEquals(158.08135, listISO.get(1).getMass(), 0.00001); Assert.assertEquals(157.08059, listISO.get(2).getMass(), 0.00001); Assert.assertEquals(157.07503, listISO.get(3).getMass(), 0.00001); Assert.assertEquals(1, isoNorma.getMonoIsotope().getIntensity(), 0.00001); Assert.assertEquals(1, listISO.get(0).getIntensity(), 0.00001); Assert.assertEquals(0.002, listISO.get(1).getIntensity(), 0.00001); Assert.assertEquals(0.0003, listISO.get(2).getIntensity(), 0.00001); Assert.assertEquals(0.0001, listISO.get(3).getIntensity(), 0.00001); Assert.assertEquals(1, isoNorma.getCharge(), 0.001); }
List<IsotopeContainer> listISO = isoNorma.getIsotopes(); Assert.assertEquals(156.07770, isoNorma.getMonoIsotope().getMass(), 0.001); Assert.assertEquals(156.07770, listISO.get(0).getMass(), 0.00001);