Chromatogram Integration¶
This example loads a peak table from the test data, extracts chromatograms, and
then integrates them with the linear peak-shape model.
The same pattern works for other available models such as emg, asym_gauss,
sgolay, and no_integration.
"""Extract chromatograms and integrate them with a simple peak-shape model."""
from pathlib import Path
import emzed
def main():
data_path = _find_data_file("peaks.table")
peaks = emzed.io.load_table(str(data_path))
chromatograms = emzed.extract_chromatograms(peaks)
integrated = emzed.quantification.integrate_chromatograms(
chromatograms,
"linear",
show_progress=False,
)
_print_columns(integrated)
print()
integrated.set_col_format("peakmap", None)
integrated.set_col_format("chromatogram", None)
integrated.set_col_format("model_chromatogram", None)
integrated.print_(max_rows=None)
def _print_columns(table):
print("columns:")
for name in table.col_names:
print(f" - {name}")
def _find_data_file(name):
for path in (Path.cwd(), *Path.cwd().parents):
data_path = path / "tests" / "data" / name
if data_path.exists():
return data_path
raise RuntimeError(f"could not find test data file: {name}")
if __name__ == "__main__":
main()
needed 0.2 seconds
columns:
- id
- feature_id
- feature_size
- mz
- mzmin
- mzmax
- rt
- rtmin
- rtmax
- intensity
- quality
- fwhm
- z
- peakmap
- source
- chromatogram
- rtmin_chromatogram
- rtmax_chromatogram
- peak_shape_model_chromatogram
- area_chromatogram
- rmse_chromatogram
- model_chromatogram
- valid_model_chromatogram
id feature_id feature_size mz mzmin mzmax rt rtmin rtmax intensity quality fwhm z source rtmin_chromatogram rtmax_chromatogram peak_shape_model_chromatogram area_chromatogram rmse_chromatogram valid_model_chromatogram
int int int MzType MzType MzType RtType RtType RtType float float RtType int str RtType RtType str float float bool
--- ---------- ------------ ----------- ----------- ----------- -------- -------- -------- --------- -------- -------- --- ------------------ ------------------ ------------------ ----------------------------- ----------------- ----------------- ------------------------
0 0 1 219.174787 219.174530 219.175095 0.13 m 0.00 m 0.17 m 1.85e+04 2.78e-04 0.00 m 0 test_smaller.mzXML 0.00 m 0.17 m linear 1.71e+06 0.00e+00 True
1 1 1 256.159512 256.159210 256.159790 0.14 m 0.11 m 0.19 m 7.64e+05 1.15e-02 0.01 m 0 test_smaller.mzXML 0.11 m 0.19 m linear 2.35e+06 0.00e+00 True
2 2 1 258.156445 258.156189 258.156860 0.14 m 0.11 m 0.18 m 5.06e+05 7.60e-03 0.01 m 0 test_smaller.mzXML 0.11 m 0.18 m linear 1.48e+06 0.00e+00 True
3 3 1 292.913525 292.912384 292.915649 0.21 m 0.14 m 0.24 m 8.66e+05 1.30e-02 0.01 m 0 test_smaller.mzXML 0.14 m 0.24 m linear 1.92e+06 0.00e+00 True
4 4 1 292.922200 292.921661 292.922638 0.15 m 0.08 m 0.24 m 2.30e+07 3.46e-01 0.06 m 0 test_smaller.mzXML 0.08 m 0.24 m linear 3.13e+07 0.00e+00 True
5 5 1 330.877830 330.877441 330.878357 0.22 m 0.17 m 0.24 m 3.34e+05 5.03e-03 0.02 m 0 test_smaller.mzXML 0.17 m 0.24 m linear 9.22e+05 0.00e+00 True
6 6 1 390.898699 390.897858 390.899323 0.17 m 0.10 m 0.24 m 1.71e+07 2.56e-01 0.06 m 0 test_smaller.mzXML 0.10 m 0.24 m linear 2.20e+07 0.00e+00 True
7 7 1 428.854329 428.853729 428.855072 0.20 m 0.17 m 0.24 m 5.42e+05 8.15e-03 0.03 m 0 test_smaller.mzXML 0.17 m 0.24 m linear 1.07e+06 0.00e+00 True
8 8 1 488.875282 488.874207 488.876068 0.17 m 0.10 m 0.24 m 1.43e+07 2.14e-01 0.06 m 0 test_smaller.mzXML 0.10 m 0.24 m linear 1.82e+07 0.00e+00 True
9 9 1 526.830925 526.830078 526.831970 0.19 m 0.17 m 0.24 m 5.83e+05 8.76e-03 0.03 m 0 test_smaller.mzXML 0.17 m 0.24 m linear 9.56e+05 0.00e+00 True
10 10 1 586.851983 586.850098 586.852905 0.16 m 0.11 m 0.24 m 8.58e+06 1.29e-01 0.06 m 0 test_smaller.mzXML 0.11 m 0.24 m linear 1.10e+07 0.00e+00 True