/** * Clones this IsotopePattern object and its content. * * @return The cloned object */ @Override public Object clone() throws CloneNotSupportedException { IsotopePattern isoClone = new IsotopePattern(); IsotopeContainer isoHighest = getMonoIsotope(); for (IsotopeContainer isoContainer : isotopeCList) { if (isoHighest.equals(isoContainer)) isoClone.setMonoIsotope((IsotopeContainer) isoContainer.clone()); else isoClone.addIsotope((IsotopeContainer) isoContainer.clone()); } isoClone.setCharge(getCharge()); return isoClone; } }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testSetCharge_double() { IsotopePattern isoP = new IsotopePattern(); isoP.setCharge(1.0); Assert.assertEquals(1.0, isoP.getCharge(), 0.000001); }
isoNormalized.setCharge(isotopeP.getCharge()); return isoNormalized;
/** * 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); }
spExp.addIsotope(new IsotopeContainer(158.08135, 0.004)); spExp.addIsotope(new IsotopeContainer(157.08059, 0.0006)); spExp.setCharge(1);
/** * 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); }
/** * 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); }
/** * Real example. Lipid PC * * @throws Exception */ @Test public void testExperiment() { IsotopePattern spExp = new IsotopePattern(); spExp.setMonoIsotope(new IsotopeContainer(762.6006, 124118304)); spExp.addIsotope(new IsotopeContainer(763.6033, 57558840)); spExp.addIsotope(new IsotopeContainer(764.6064, 15432262)); spExp.setCharge(1.0); IMolecularFormula formula = MolecularFormulaManipulator.getMajorIsotopeMolecularFormula("C42H85NO8P", SilentChemObjectBuilder.getInstance()); IsotopePatternGenerator isotopeGe = new IsotopePatternGenerator(0.01); IsotopePattern patternIsoPredicted = isotopeGe.getIsotopes(formula); IsotopePatternSimilarity is = new IsotopePatternSimilarity(); double score = is.compare(spExp, patternIsoPredicted); Assert.assertEquals(0.97, score, .01); }
/** * Histidine example * * @throws Exception */ @Test public void testSelectingMF() { IsotopePatternSimilarity is = new IsotopePatternSimilarity(); IsotopePattern spExp = new IsotopePattern(); spExp.setCharge(1); spExp.setMonoIsotope(new IsotopeContainer(156.07770, 1)); spExp.addIsotope(new IsotopeContainer(157.07503, 0.0101)); spExp.addIsotope(new IsotopeContainer(157.08059, 0.074)); spExp.addIsotope(new IsotopeContainer(158.08135, 0.0024)); double score = 0; String mfString = ""; String[] listMF = {"C4H8N6O", "C2H12N4O4", "C3H12N2O5", "C6H10N3O2", "CH10N5O4", "C4H14NO5"}; for (int i = 0; i < listMF.length; i++) { IMolecularFormula formula = MolecularFormulaManipulator.getMajorIsotopeMolecularFormula(listMF[i], builder); IsotopePatternGenerator isotopeGe = new IsotopePatternGenerator(0.01); IsotopePattern patternIsoPredicted = isotopeGe.getIsotopes(formula); IsotopePattern patternIsoNormalize = IsotopePatternManipulator.normalize(patternIsoPredicted); double tempScore = is.compare(spExp, patternIsoNormalize); if (score < tempScore) { mfString = MolecularFormulaManipulator.getString(formula); score = tempScore; } } Assert.assertEquals("C6H10N3O2", mfString); }