Skip to content

Commit

Permalink
change MRMTransitionGroupPicker print to get param
Browse files Browse the repository at this point in the history
- Change printParams() to getPrettyParameters() which gets a tuple of
  the parameters.
- Add test for this method
  • Loading branch information
jcharkow committed Apr 5, 2024
1 parent 9736ba4 commit 5860ead
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 7 deletions.
13 changes: 7 additions & 6 deletions massdash/peakPickers/MRMTransitionGroupPicker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"""

import pyopenms as po
from typing import List
from typing import List, Tuple

# Structs
from ..structs.TransitionGroup import TransitionGroup
Expand Down Expand Up @@ -118,11 +118,12 @@ def setGeneralParameters(self, **kwargs):
self.params.setValue(bytes(k, encoding='utf-8'), val)
self.picker.setParameters(self.params)

def printParameters(self):
''' Print the current parameters including hidden parameters '''
lst = list(zip(self.params.keys(), self.params.values()))
for i in lst:
print(f'{i[0]}: {i[1]}')
def getPrettyParameters(self) -> Tuple:
'''
Get a list of current parameters and their values in a python friendly format
Note: Changing the parameters will not update values
'''
return tuple(zip([ i.decode('utf-8') for i in self.params.keys()], self.params.values()))

def pick(self, transitionGroup: TransitionGroup) -> List[TransitionGroupFeature]:
''' Performs Peak Picking, Should return a TransitionGroupFeatureList object '''
Expand Down
41 changes: 40 additions & 1 deletion test/peakPickers/test_MRMTransitionGroupPicker.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,54 @@ def setUp(self):
def test_setGeneralParameters(self):
# Test setting of parameters
picker = MRMTransitionGroupPicker("original")
picker.setGeneralParameters(stop_after_feature=5, signal_to_noise=1000.0)
picker.setGeneralParameters(stop_after_feature=5, signal_to_noise=1000.0, minimal_quality=0.0)
val = picker.params.getValue(b'stop_after_feature')
self.assertEqual(val, 5)
self.assertEqual(picker.params.getValue(b'PeakPickerMRM:signal_to_noise'), 1000.0)
self.assertEqual(picker.params.getValue(b'minimal_quality'), 0.0)
self.assertEqual(picker.params.getValue(b'compute_peak_quality'), 'true')

# Test setting of invalid parameterata/xics/test_chrom_1.sqMass', '../test_data/xics/test_chrom_2.sqMass'], rsltsFile="../test_data/osw/test_data.osw")
with self.assertRaises(ValueError):
picker.setGeneralParameters(invalid_param=5)

def test_getPrettyParameters(self):
# Test printing of parameters
picker = MRMTransitionGroupPicker("original")

expected = (('stop_after_feature', -1),
('stop_after_intensity_ratio', 0.0001),
('min_peak_width', -1.0),
('peak_integration', 'original'),
('background_subtraction', 'none'),
('recalculate_peaks', 'true'),
('use_precursors', 'false'),
('use_consensus', 'true'),
('recalculate_peaks_max_z', 0.75),
('minimal_quality', -10000.0),
('resample_boundary', 15.0),
('compute_peak_quality', 'false'),
('compute_peak_shape_metrics', 'false'),
('compute_total_mi', 'false'),
('boundary_selection_method', 'largest'),
('PeakPickerMRM:sgolay_frame_length', 11),
('PeakPickerMRM:sgolay_polynomial_order', 3),
('PeakPickerMRM:gauss_width', 50.0),
('PeakPickerMRM:use_gauss', 'false'),
('PeakPickerMRM:peak_width', -1.0),
('PeakPickerMRM:signal_to_noise', 0.001),
('PeakPickerMRM:sn_win_len', 1000.0),
('PeakPickerMRM:sn_bin_count', 30),
('PeakPickerMRM:write_sn_log_messages', 'false'),
('PeakPickerMRM:remove_overlapping_peaks', 'true'),
('PeakPickerMRM:method', 'legacy'),
('PeakIntegrator:integration_type', 'intensity_sum'),
('PeakIntegrator:baseline_type', 'base_to_base'),
('PeakIntegrator:fit_EMG', 'false'))

# Now you can make assertions about the print output
self.assertEqual(expected, picker.getPrettyParameters())

def test_setSmoother(self):
# Test setting of smoother
picker = MRMTransitionGroupPicker("original")
Expand Down

0 comments on commit 5860ead

Please sign in to comment.