Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions quantmsutils/mzml/ms1_feature_finder.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
logging.basicConfig(format="%(asctime)s [%(funcName)s] - %(message)s", level=logging.INFO)
logger = logging.getLogger(__name__)

_PYOPENMS_VERSION = tuple(int(p) for p in oms.__version__.split(".")[:2])


class MS1FeatureDetector:
"""
Expand All @@ -51,6 +53,21 @@ def __init__(self, ms_level: int = 1):
self.options = oms.PeakFileOptions()
self.options.setMSLevels([self.ms_level])

@staticmethod
def _pick_experiment(
picker: oms.PeakPickerHiRes, experiment: oms.MSExperiment
) -> oms.MSExperiment:
"""Centroid an experiment, supporting both pyopenms peak-picker APIs.

pyopenms >= 3.6 returns the picked experiment; older versions fill an
output experiment passed by reference.
"""
if _PYOPENMS_VERSION >= (3, 6):
return picker.pickExperiment(experiment, False)
picked = oms.MSExperiment()
picker.pickExperiment(experiment, picked, False)
return picked

def _calc_tic(self, experiment: oms.MSExperiment) -> float:
"""
Calculate all the TIC in the MS experiment, summing all intensities from all scans.
Expand Down Expand Up @@ -249,12 +266,9 @@ def process_file(
experiment = oms.MSExperiment()
picker = oms.PeakPickerHiRes()

filtered_experiment = oms.MSExperiment()

file_handler.setOptions(self.options)
file_handler.load(str(input_path), experiment)
picker.pickExperiment(experiment, filtered_experiment, False)
experiment = filtered_experiment
experiment = self._pick_experiment(picker, experiment)

filtered_experiment = oms.MSExperiment()
for spec in experiment:
Expand Down
8 changes: 5 additions & 3 deletions quantmsutils/psm/psm_conversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,11 @@ def convert_psm(
else:
search_engines = [prot_ids[0].getSearchEngine()]

reference_file_name = os.path.splitext(
prot_ids[0].getMetaValue("spectra_data")[0].decode("UTF-8")
)[0]
spectra_data = prot_ids[0].getMetaValue("spectra_data")[0]
# pyopenms < 3.6 returns bytes here, >= 3.6 returns str
if isinstance(spectra_data, bytes):
spectra_data = spectra_data.decode("UTF-8")
reference_file_name = os.path.splitext(spectra_data)[0]
spectra_df = pd.read_parquet(ms2_file) if ms2_file else None

if spectra_df is not None:
Expand Down