Skip to content

Chromatogram

mzmlpy.spectra.Chromatogram dataclass

Chromatogram(element: ElementTree.Element)

Bases: _ParamGroup, _BinaryDataArrayMixin

An mzML chromatogram element.

Exposes rt (seconds) and intensity binary arrays, optional precursor and product structures, and a chromatogram_type property (e.g. "tic", "basepeak", "srm").

id property

id: str

Get chromatogram id.

id_dict property

id_dict: dict[str, int | str]

Parse the native id into its key=value components (integer values coerced to int).

default_array_length property

default_array_length: int | None

Get chromatogram default array length, or None if not present.

source_file_ref property

source_file_ref: str | None

Get chromatogram source file reference, or None if not present.

rt property

rt: np.ndarray | None

Time array (MS:1000595) in seconds as a new float64 array, or None if not present.

Values recorded in milliseconds, minutes or hours are converted to seconds. A time array with no unit, or a unit that is not a time unit, is taken as seconds and warns once per unit.

intensity property

intensity: np.ndarray | None

Get intensity array as a numpy array, or None if not present.

has_precursor property

has_precursor: bool

Check if this chromatogram has a precursor.

precursor property

precursor: Precursor | None

Get a Precursor object for the precursor of this chromatogram, or None if no precursor is present.

has_product property

has_product: bool

Check if this chromatogram has a product.

product property

product: Product | None

Get a Product object for the product of this chromatogram, or None if no product is present.

data_processing_ref property

data_processing_ref: str | None

Get chromatogram data processing reference, or None if not present.

chromatogram_type property

chromatogram_type: ChromatogramType | None

Get chromatogram type (e.g. TIC, BPC, etc.) for this chromatogram.

Covers every child of MS:1000626 "chromatogram type". The most specific term wins when a chromatogram carries both a type and its parent (e.g. TIC and ion current).

ns cached property

ns: str

Get XML namespace from the element tag.

cv_params cached property

cv_params: tuple[CvParam, ...]

The element's cvParams, in document order.

accessions cached property

accessions: frozenset[str]

All cvParam accessions.

names cached property

names: frozenset[str]

All cvParam names.

user_params cached property

user_params: tuple[UserParam, ...]

The element's userParams, in document order.

ref_params cached property

ref_params: tuple[ReferenceableParamGroupRef, ...]

The element's referenceableParamGroupRefs, in document order.

binary_arrays cached property

binary_arrays: tuple[BinaryDataArray, ...]

The binary data arrays, in document order.

get_cv_param

get_cv_param(id: str) -> CvParam | None

Get a cvParam by accession or name, or None if absent.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def get_cv_param(self, id: str) -> CvParam | None:
    """Get a cvParam by accession or name, or None if absent."""
    for cv_param in self.cv_params:
        if cv_param.accession == id or cv_param.name == id:
            return cv_param
    return None

cv_float

cv_float(id: str) -> float | None

Return a cvParam's value as a float, or None if the term is absent or has no value.

Raises MzmlError naming the term and its bad value if the value is present but not numeric — more actionable than a bare "could not convert string to float".

Source code in src/mzmlpy/elems/dtree_wrapper.py
def cv_float(self, id: str) -> float | None:
    """Return a cvParam's value as a float, or None if the term is absent or has no value.

    Raises MzmlError naming the term and its bad value if the value is present but not
    numeric — more actionable than a bare "could not convert string to float".
    """
    cv_param = self.get_cv_param(id)
    if cv_param is None or cv_param.value is None:
        return None
    try:
        return float(cv_param.value)
    except ValueError as e:
        raise MzmlError(
            f"CV param {cv_param.name or id!r} ({id}) has a non-numeric value {cv_param.value!r}"
        ) from e

cv_int

cv_int(id: str) -> int | None

Return a cvParam's value as an int, or None if absent or valueless (see :meth:cv_float).

Source code in src/mzmlpy/elems/dtree_wrapper.py
def cv_int(self, id: str) -> int | None:
    """Return a cvParam's value as an int, or None if absent or valueless (see :meth:`cv_float`)."""
    cv_param = self.get_cv_param(id)
    if cv_param is None or cv_param.value is None:
        return None
    try:
        return int(cv_param.value)
    except ValueError as e:
        raise MzmlError(
            f"CV param {cv_param.name or id!r} ({id}) has a non-integer value {cv_param.value!r}"
        ) from e

get_binary_array

get_binary_array(id: str) -> BinaryDataArray | None

Get a BinaryDataConverter object for the binary data array with the specified id.

Source code in src/mzmlpy/spectra.py
def get_binary_array(self, id: str) -> BinaryDataArray | None:
    """Get a BinaryDataConverter object for the binary data array with the specified id."""
    return self._binary_array_map.get(id)

has_binary_array

has_binary_array(id: str) -> bool

Check if a binary data array with the specified id exists.

Source code in src/mzmlpy/spectra.py
def has_binary_array(self, id: str) -> bool:
    """Check if a binary data array with the specified id exists."""
    return id in self._binary_array_map

serialize

serialize() -> dict[str, object]

Return the element as nested dicts: tag, attributes, text, children.

The result is a fresh copy; changing it does not change the wrapped element.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def serialize(self) -> dict[str, object]:
    """Return the element as nested dicts: ``tag``, ``attributes``, ``text``, ``children``.

    The result is a fresh copy; changing it does not change the wrapped element.
    """
    return {
        "tag": self.element.tag,
        "attributes": dict(self.element.attrib),
        "text": self.element.text,
        "children": [_DataTreeWrapper(child).serialize() for child in self.element],
    }

get_attribute

get_attribute(attr_name: str) -> str | None

Get an attribute value from the element.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def get_attribute(self, attr_name: str) -> str | None:
    """Get an attribute value from the element."""
    return self.element.attrib.get(attr_name)

has_cv_param

has_cv_param(id: str) -> bool

Check if a cvParam with the given accession or name exists.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def has_cv_param(self, id: str) -> bool:
    """Check if a cvParam with the given accession or name exists."""
    return any(cv_param.accession == id or cv_param.name == id for cv_param in self.cv_params)

get_user_param

get_user_param(name: str) -> UserParam | None

Get a userParam by name.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def get_user_param(self, name: str) -> UserParam | None:
    """Get a userParam by name."""
    for user_param in self.user_params:
        if user_param.name == name:
            return user_param
    return None

has_user_param

has_user_param(name: str) -> bool

Check if a userParam with the given name exists.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def has_user_param(self, name: str) -> bool:
    """Check if a userParam with the given name exists."""
    return any(user_param.name == name for user_param in self.user_params)

get_ref_param

get_ref_param(
    ref: str,
) -> ReferenceableParamGroupRef | None

Get a referenceable parameter by ref.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def get_ref_param(self, ref: str) -> ReferenceableParamGroupRef | None:
    """Get a referenceable parameter by ref."""
    for ref_param in self.ref_params:
        if ref_param.ref == ref:
            return ref_param
    return None

has_ref_param

has_ref_param(ref: str) -> bool

Check if a referenceable parameter with the given ref exists.

Source code in src/mzmlpy/elems/dtree_wrapper.py
def has_ref_param(self, ref: str) -> bool:
    """Check if a referenceable parameter with the given ref exists."""
    return any(ref_param.ref == ref for ref_param in self.ref_params)