Skip to content

Feature Finding With FeatureFinderMetabo

This example runs OpenMS FeatureFinderMetabo on a small mzXML file from the test data. It narrows the m/z range first so the example stays small. The same emzed API supports both MS1 and MS2 workflows. For MS2-oriented runs, use ms_level=2 and keep precursor splitting enabled via split_by_precursors_mz_tol.

This workflow requires a working R installation because emzed uses XCMS/OpenMS helpers for peak picking. emzed can install the required R packages on demand, but it does not install R itself.

"""Run FeatureFinderMetabo on a small mzXML file."""

from pathlib import Path

import emzed

peak_map = emzed.PeakMap.load(Path("data") / "test.mzXML")
peak_map = peak_map.extract(mzmin=255, mzmax=262)

# Same API also supports MS2-oriented runs, e.g.:
# ms_level=2 and split_by_precursors_mz_tol=<tolerance>.
peaks = emzed.run_feature_finder_metabo(
    peak_map,
    verbose=False,
    mtd_noise_threshold_int=10000,
)

print(f"detected {len(peaks)} features")
print()
print("columns:")
for name in peaks.col_names:
    print(f"  - {name}")
print()

peaks.set_col_format("peakmap", None)
print(peaks)
pyopenms: pw low: 0.0779824  pw high: 0.63622


detected 20 features

columns:
  - id
  - feature_id
  - feature_size
  - mz
  - mzmin
  - mzmax
  - rt
  - rtmin
  - rtmax
  - intensity
  - quality
  - fwhm
  - z
  - peakmap
  - source

id   feature_id  feature_size  mz           mzmin        mzmax        rt        rtmin     rtmax     intensity  quality   fwhm      z    source
int  int         int           MzType       MzType       MzType       RtType    RtType    RtType    float      float     RtType    int  str
---  ----------  ------------  -----------  -----------  -----------  --------  --------  --------  ---------  --------  --------  ---  ----------
  0           0             1   256.235060   256.234711   256.236298    0.57 m    0.30 m    0.72 m   5.87e+06  5.08e-01    0.00 m    0  test.mzXML
  1           1             5   259.159749   259.159424   259.160339    0.14 m    0.11 m    0.18 m   4.99e+04  8.01e-02    0.01 m    1  test.mzXML
  2           1             5   256.159504   256.158844   256.159912    0.14 m    0.11 m    0.29 m   7.64e+05  8.01e-02    0.01 m    1  test.mzXML
  3           1             5   257.162794   257.162292   257.163452    0.14 m    0.11 m    0.19 m   8.92e+04  8.01e-02    0.01 m    1  test.mzXML
  4           1             5   258.156448   258.156097   258.156921    0.14 m    0.11 m    0.26 m   5.06e+05  8.01e-02    0.01 m    1  test.mzXML
  5           1             5   260.153433   260.153107   260.154114    0.14 m    0.11 m    0.18 m   6.45e+04  8.01e-02    0.01 m    1  test.mzXML
  6           2             1   255.063789   255.063278   255.064545    0.45 m    0.44 m    0.69 m   8.76e+05  7.58e-02    0.00 m    0  test.mzXML
  7           3             1   255.237922   255.235489   255.239365    0.56 m    0.56 m    0.63 m   7.94e+05  6.87e-02    0.00 m    0  test.mzXML
  8           4             1   259.157243   259.156403   259.158051    0.46 m    0.44 m    0.63 m   7.88e+05  6.82e-02    0.01 m    0  test.mzXML
  9           5             1   261.118687   261.117889   261.119568    0.44 m    0.40 m    0.63 m   7.80e+05  6.75e-02    0.01 m    0  test.mzXML
 10           6             1   255.225579   255.224991   255.227707    0.56 m    0.56 m    0.62 m   6.53e+05  5.65e-02    0.00 m    0  test.mzXML
 11           7             1   258.001993   258.001465   258.002533    0.39 m    0.37 m    0.43 m   7.13e+04  6.17e-03    0.01 m    0  test.mzXML
 12           8             1   260.914073   260.913300   260.914673    0.30 m    0.28 m    0.34 m   5.53e+04  4.79e-03    0.00 m    0  test.mzXML
 13           9             1   261.118837   261.117981   261.119415    0.68 m    0.64 m    0.70 m   5.23e+04  4.52e-03    0.00 m    0  test.mzXML
 14          10             1   259.953817   259.952637   259.954498    0.41 m    0.41 m    0.49 m   4.78e+04  4.14e-03    0.01 m    0  test.mzXML
 15          11             1   256.837222   256.836395   256.837982    0.68 m    0.28 m    0.70 m   4.18e+04  3.62e-03    0.00 m    0  test.mzXML
 16          12             1   259.157348   259.156403   259.157959    0.68 m    0.64 m    0.70 m   3.18e+04  2.75e-03    0.00 m    0  test.mzXML
 17          13             1   258.832982   258.832306   258.833679    0.48 m    0.30 m    0.49 m   8.46e+03  7.32e-04    0.00 m    0  test.mzXML
 18          14             1   256.235274   256.234772   256.235809    0.04 m    0.00 m    0.29 m   7.12e+03  6.16e-04    0.00 m    0  test.mzXML
 19          15             1   257.174805   257.174347   257.175568    0.04 m    0.00 m    0.23 m   4.28e+03  3.71e-04    0.00 m    0  test.mzXML