Skip to content

Issue Averaging Two Spectra #240

@michaelmarty

Description

@michaelmarty

I am trying to average together multiple scans into a single summed spectrum, and I'm having issues with the add function. Perhaps I'm using it wrong, but here is an example.

To Reproduce

import pymzml

path = "strep.mzML"
msrun = pymzml.run.Reader(path)

spec1 = msrun[1]
spec2 = msrun[2]

average_spec = spec1 + spec2

Expected behavior
The average_spec is the sum of spec1 and spec2.

Console Output

Traceback (most recent call last):
File "C:/Python/UniDec3/Scripts/MTM/mzml_test.py", line 9, in
average_spec = spec1 + spec2
File "C:\intelpython3\lib\site-packages\pymzml\spec.py", line 505, in add
for mz, i in other_spec.peaks("reprofiled"):
File "C:\intelpython3\lib\site-packages\pymzml\spec.py", line 1046, in peaks
self._peak_dict["reprofiled"] = self._reprofile_Peaks()
File "C:\intelpython3\lib\site-packages\pymzml\spec.py", line 1202, in _reprofile_Peaks
for mz, i in self.peaks("centroided"):
File "C:\intelpython3\lib\site-packages\pymzml\spec.py", line 1044, in peaks
self._peak_dict["centroided"] = self._centroid_peaks()
File "C:\intelpython3\lib\site-packages\pymzml\spec.py", line 1158, in _centroid_peaks
i_array = [i for mz, i in self.peaks("reprofiled")]
File "C:\intelpython3\lib\site-packages\pymzml\spec.py", line 1057, in peaks
peaks = list(self._peak_dict[peak_type].items())
AttributeError: 'numpy.ndarray' object has no attribute 'items'

Process finished with exit code 1

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 2.4.7

Additional context
I am happy to provide an example file via email. I tried to upload it, but it wouldn't accept files larger than 10 MB.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions