Example #1
0
    def test001(self):
        exp = MSExperiment()
        basename = "SHORT_MS2_FILE.mzData"
        here = os.path.dirname(os.path.abspath(__file__))
        FileHandler().loadExperiment(os.path.join(here, "data", basename), exp)
        assert exp.size() > 0

        pc = Precursor()
        pc.setMZ(1.0)
        pc.setIntensity(100)
        s0 = exp[0]
        s0.setPrecursors([pc])
        s0.setMSLevel(2)
        spec = Spectrum.fromMSSpectrum(s0)
        settings = InstrumentSettings()
        settings.setPolarity(IonSource.Polarity.POSITIVE)
        s0.setInstrumentSettings(settings)

        self.compare_specs(spec, s0)

        specneu = Spectrum.fromMSSpectrum(spec.toMSSpectrum())

        self.compare_specs(specneu, s0)

        pm = PeakMap.fromMSExperiment(exp)
        assert os.path.basename(pm.meta["source"]) == basename

        rtmin, rtmax = pm.rtRange(None)
        ms1s = pm.msNPeaks(1, rtmin, rtmax)
        assert ms1s.shape == (1797, 2), ms1s.shape

        ms1s2 = pm.msNPeaks(1, rtmax=rtmax)
        assert np.all(ms1s == ms1s2)

        ms1s3 = pm.msNPeaks(1, rtmin=0)
        assert np.all(ms1s == ms1s3)

        spec = pm.spectra[0]
        assert len(list(spec)) == len(spec)  # calls iter

        allrts = pm.allRts()
        assert allrts[0] <= pm.rtRange()[0]
        assert allrts[-1] >= pm.rtRange()[1]
        assert len(allrts) == 41, len(allrts)

        level1 = pm.levelNSpecs(1, 1)
        level2 = pm.levelNSpecs(2, 2)
        level12 = pm.levelNSpecs(1, 2)
        assert len(level1) > 0
        assert len(level2) > 0
        assert len(level1) + len(level2) == len(level12) == len(pm)
        assert level1[0].msLevel == 1
        assert level2[0].msLevel == 2

        # use default arg: nmax = nmin if not provided:
        level1 = pm.levelNSpecs(1)
        level2 = pm.levelNSpecs(2)
        assert len(level1) > 0
        assert len(level2) > 0
        assert len(level1) + len(level2) == len(level12) == len(pm)
        assert level1[0].msLevel == 1
        assert level2[0].msLevel == 2

        lone = pm.levelOneRts()
        assert len(lone) == len(level1)

        self.compare_exp(pm, exp, basename)
        pm2 = PeakMap.fromMSExperiment(pm.toMSExperiment())
        self.compare_exp(pm2, exp, basename)

        pm2 = pm.extract(rtmin=rtmin + .000001)
        assert len(pm2) == len(pm) - 1
        pm2 = pm2.extract(rtmax=rtmax - 0.000001)
        assert len(pm2) == len(pm) - 2

        mzmin, mzmax = pm.mzRange(2)

        assert mzmin < 250
        assert mzmax > 860

        mzmin, mzmax = pm.mzRange(1)

        assert mzmin >= 700
        assert mzmax <= 1050

        pm2 = pm.extract(rtmin + 0.00001, mzmin=300)

        mzmin2, mzmax2 = pm2.mzRange()
        assert mzmin2 >= 300
        assert mzmax2 == mzmax

        pm2 = pm.extract(rtmin=rtmin + 0.000001, mzmin=300, mzmax=1000)
        mzmin2, mzmax2 = pm2.mzRange()
        assert mzmin2 >= 300
        assert mzmax2 <= 1000

        with pytest.raises(Exception):
            pm.spectra[0].peaksInRange()

        pp1 = pm.spectra[0].peaksInRange(mzmax=10000)
        pp2 = pm.spectra[0].peaksInRange(mzmin=0)
        assert np.all(pp1 == pp2)

        specs0 = list(pm.spectra)
        specs1 = pm.specsInRange(0, 99999)
        specs2 = pm.specsInRange(0, specs0[0].rt)
        specs3 = pm.specsInRange(specs0[-1].rt, 999999)

        assert specs0 == specs1
        assert specs2 == [specs0[0]]
        assert specs3 == [specs0[-1]]

        pm.spectra[0].polarity = "+"
        pm.spectra[1].polarity = "-"

        pm = PeakMap(pm.spectra)
        mz = pm.representingMzPeak(0, 99999, 0, 99999)
        assert abs(mz - 831.86538) < 0.0001
Example #2
0
    def test001(self):
        exp = MSExperiment()
        basename = "SHORT_MS2_FILE.mzData"
        here = os.path.dirname(os.path.abspath(__file__))
        FileHandler().loadExperiment(os.path.join(here, "data", basename), exp)
        assert exp.size()>0

        pc = Precursor()
        pc.setMZ(1.0)
        pc.setIntensity(100)
        s0 = exp[0]
        s0.setPrecursors([pc])
        s0.setMSLevel(2)
        spec = Spectrum.fromMSSpectrum(s0)
        settings = InstrumentSettings()
        settings.setPolarity(IonSource.Polarity.POSITIVE)
        s0.setInstrumentSettings(settings)

        self.compare_specs(spec, s0)

        specneu = Spectrum.fromMSSpectrum(spec.toMSSpectrum())

        self.compare_specs(specneu, s0)

        pm = PeakMap.fromMSExperiment(exp)
        assert os.path.basename(pm.meta["source"]) == basename

        rtmin, rtmax = pm.rtRange(None)
        ms1s = pm.msNPeaks(1, rtmin, rtmax)
        assert ms1s.shape == (1797, 2), ms1s.shape

        ms1s2 = pm.msNPeaks(1, rtmax=rtmax)
        assert np.all(ms1s == ms1s2)

        ms1s3 = pm.msNPeaks(1, rtmin=0)
        assert np.all(ms1s == ms1s3)

        spec = pm.spectra[0]
        assert len(list(spec)) == len(spec)  # calls iter

        allrts = pm.allRts()
        assert allrts[0] <= pm.rtRange()[0]
        assert allrts[-1] >= pm.rtRange()[1]
        assert len(allrts) == 41, len(allrts)

        level1 = pm.levelNSpecs(1, 1)
        level2 = pm.levelNSpecs(2, 2)
        level12 = pm.levelNSpecs(1, 2)
        assert len(level1) > 0
        assert len(level2) > 0
        assert len(level1) + len(level2) == len(level12) == len(pm)
        assert level1[0].msLevel == 1
        assert level2[0].msLevel == 2

        # use default arg: nmax = nmin if not provided:
        level1 = pm.levelNSpecs(1)
        level2 = pm.levelNSpecs(2)
        assert len(level1) > 0
        assert len(level2) > 0
        assert len(level1) + len(level2) == len(level12) == len(pm)
        assert level1[0].msLevel == 1
        assert level2[0].msLevel == 2

        lone = pm.levelOneRts()
        assert len(lone) == len(level1)

        self.compare_exp(pm, exp, basename)
        pm2 = PeakMap.fromMSExperiment(pm.toMSExperiment())
        self.compare_exp(pm2, exp, basename)

        pm2 = pm.extract(rtmin=rtmin + .000001)
        assert len(pm2) == len(pm) - 1
        pm2 = pm2.extract(rtmax=rtmax - 0.000001)
        assert len(pm2) == len(pm) - 2

        mzmin, mzmax = pm.mzRange(2)

        assert mzmin < 250
        assert mzmax > 860

        mzmin, mzmax = pm.mzRange(1)

        assert mzmin >= 700
        assert mzmax <= 1050

        pm2 = pm.extract(rtmin+0.00001, mzmin=300)

        mzmin2, mzmax2 = pm2.mzRange()
        assert mzmin2 >= 300
        assert mzmax2 == mzmax

        pm2 = pm.extract(rtmin = rtmin+0.000001, mzmin=300, mzmax=1000)
        mzmin2, mzmax2 = pm2.mzRange()
        assert mzmin2 >= 300
        assert mzmax2 <= 1000

        with pytest.raises(Exception):
            pm.spectra[0].peaksInRange()

        pp1 = pm.spectra[0].peaksInRange(mzmax = 10000)
        pp2 = pm.spectra[0].peaksInRange(mzmin = 0)
        assert np.all(pp1 == pp2)

        specs0 = list(pm.spectra)
        specs1 = pm.specsInRange(0, 99999)
        specs2 = pm.specsInRange(0, specs0[0].rt)
        specs3 = pm.specsInRange(specs0[-1].rt, 999999)

        assert specs0 == specs1
        assert specs2 == [ specs0[0] ]
        assert specs3 == [ specs0[-1] ]


        pm.spectra[0].polarity = "+"
        pm.spectra[1].polarity = "-"

        pm = PeakMap(pm.spectra)
        mz = pm.representingMzPeak(0, 99999, 0, 99999)
        assert abs(mz-831.86538) < 0.0001