def sample_peaks(self, rtmin, rtmax, mzmin, mzmax, npeaks, ms_level): if rtmin <= rtmax and mzmin < mzmax: all_mzs = [] all_iis = [] for rt, mzs, iis in self._iter_peaks(rtmin, rtmax, None, None, ms_level): all_mzs.append(mzs) all_iis.append(iis) peaks = sample_peaks_from_lists(all_mzs, all_iis, mzmin, mzmax, npeaks) else: peaks = np.zeros((0, 2)) return peaks
def test_sample_peaks_from_lists(regtest): pm = _load() rtmin = pm.spectra[0].rt rtmax = pm.spectra[-1].rt mzmin = min(min(s.peaks[:, 0]) for s in pm.spectra) mzmax = max(max(s.peaks[:, 0]) for s in pm.spectra) mz_list = [s.peaks[:, 0] for s in pm.spectra] ii_list = [s.peaks[:, 1].astype(np.float32) for s in pm.spectra] res = sample_peaks_from_lists(mz_list, ii_list, mzmin, mzmax, 10000) assert res is not None assert res.shape == (76, 2) print(res, file=regtest)