Open michaelmarty opened 4 years ago
Hi,
sorry to hear that this does not work for you.
I tried to reproduce your issue and it worked for most of the spectra I was testing, however I saw that it did not work for spectra with too few peaks.
If you could send me the files via a filesharing website of your choice or via mail to manuel.koesters@dcb.unibe.ch, this would be helpful for debugging.
Also, can you check the length of your centroided peaks like len(spec.peaks("centroided"))
?
Best, Manuel
Hi Manuel, Michael's data can be found here https://www.dropbox.com/s/1hqn7ij2lvw2zo9/strep.mzML?dl=0. Let me know if you don't find time to look into this :) Cheers, .c
Hi,
I think I found the reason and solution for this problem, you can check it out here #244 . As soon as I checked for possible side effect and maybe added another test file with an appropiate test, I'll merge this fix into the dev branch
Best, Manuel
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):
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.