def test_integrate_empty_table(path, regtest): # test with and without unicode: ft = io.loadTable(path("data/features.table")) ft = ft[:0] # an invalid row should not stop integration, but result # in None values for emzed.utils.integrate generated columns print(ft, file=regtest) ftr = utils.integrate(ft, "trapez", n_cpus=1) print(ftr, file=regtest) assert len(ftr) == len(ft) print(file=regtest) ftr = utils.integrate(ft, "trapez", n_cpus=2) print(ftr, file=regtest) assert len(ftr) == len(ft)
def main(): with measure("load pm"): # pm = emzed.io.loadPeakMap("141208_pos001.mzXML") pm = emzed.io.loadPeakMap("Danu.mzML") t0 = emzed.utils.toTable("peakmap", (pm, ), type_=object) path = "pm_only.hdf5" with atomic_hdf5_writer(path) as add: add(t0) peaks = runMetaboFeatureFinder(pm) peaks = integrate(peaks) peaks.info() with atomic_hdf5_writer("peaks.hdf5") as add: add(peaks)
def _testIntegration(path, n_cpus, integrator_id, check_values=True): # test with and without unicode: ft = io.loadTable(path("data/features.table")) # an invalid row should not stop integration, but result # in None values for emzed.utils.integrate generated columns ftr = utils.integrate(ft, integrator_id, n_cpus=n_cpus, min_size_for_parallel_execution=1) assert len(ftr) == len(ft) assert "area" in ftr.getColNames() assert "rmse" in ftr.getColNames() if check_values: assert ftr.area.values[0] >= 0, ftr.area.values[0] assert ftr.rmse.values[0] >= 0, ftr.rmse.values[0] assert ftr.params.values[0] is not None assert ftr.method.values[0] is not None ft.setValue(ft.rows[0], "mzmin", None) ft._addColumnWithoutNameCheck("mzmin__0", ft.mzmin) ft._addColumnWithoutNameCheck("mzmax__0", ft.mzmax) ft._addColumnWithoutNameCheck("rtmin__0", ft.rtmin) ft._addColumnWithoutNameCheck("rtmax__0", ft.rtmax) ft._addColumnWithoutNameCheck("peakmap__0", ft.peakmap) ft.addColumn("mzminX", ft.mzmin) ft.addColumn("mzmaxX", ft.mzmax) ft.addColumn("rtminX", ft.rtmin) ft.addColumn("rtmaxX", ft.rtmax) ft.addColumn("peakmapX", ft.peakmap) ftr = utils.integrate(ft, integrator_id, n_cpus=n_cpus, min_size_for_parallel_execution=1) assert len(ftr) == len(ft) assert "area" in ftr.getColNames() assert "rmse" in ftr.getColNames() # assert "eic" in ftr.getColNames() assert "area__0" in ftr.getColNames() assert "rmse__0" in ftr.getColNames() # assert "eic__0" in ftr.getColNames() assert "areaX" in ftr.getColNames() assert "rmseX" in ftr.getColNames() assert "rmseX" in ftr.getColNames() # assert "eicX" in ftr.getColNames() if check_values: assert ftr.area.values[0] is None assert ftr.rmse.values[0] is None assert ftr.params.values[0] is None assert ftr.method.values[0] is not None # assert ftr.eic.values[0] is None assert ftr.area.values[1] is not None assert ftr.rmse.values[1] is not None assert ftr.params.values[1] is not None assert ftr.method.values[1] is not None # assert len(ftr.eic.values[1]) == 2 assert ftr.area__0.values[0] is None assert ftr.rmse__0.values[0] is None assert ftr.params__0.values[0] is None assert ftr.method__0.values[0] is not None # assert ftr.eic__0.values[0] is None assert ftr.area__0.values[1] is not None assert ftr.rmse__0.values[1] is not None assert ftr.params__0.values[1] is not None assert ftr.method__0.values[1] is not None # assert len(ftr.eic__0.values[1]) == 2 assert ftr.areaX.values[0] is None assert ftr.rmseX.values[0] is None assert ftr.paramsX.values[0] is None assert ftr.methodX.values[0] is not None # assert ftr.eicX.values[0] is None assert ftr.areaX.values[1] is not None assert ftr.rmseX.values[1] is not None assert ftr.paramsX.values[1] is not None assert ftr.methodX.values[1] is not None # assert len(ftr.eicX.values[1]) == 2 # test with empty chromatograms s0 = ft.peakmap.values[0].spectra[0] rt0 = s0.rt pm = PeakMap([s0]) rts, iis = pm.chromatogram(0, 10000, rt0 + 20, rt0 + 30) assert len(rts) == 0 assert len(iis) == 0 ft.replaceColumn("peakmap", pm) ft.replaceColumn("rtmin", rt0 + 10) ft.replaceColumn("rtmax", rt0 + 20) ftr2 = utils.integrate(ft, integrator_id, n_cpus=n_cpus, min_size_for_parallel_execution=1) # assert set(ftr2.eic.values) == {None} return ftr