AlgorithmsΒΆ
Most signal processing algorithms follow a similar pattern in OpenMS.
algorithm = AlgorithmClass()
exp = MSExperiment()
# populate exp, for example load from file
algorithm.filterExperiment(exp)
In many cases, the processing algorithms have a set of parameters that can be
adjusted. These are accessible through getParameters() and yield a
Param object (see `Parameter handling<parameter_handling.html>`_) which can
be manipulated. After changing parameters, one can use setParameters() to
propagate the new parameters to the algorithm:
algorithm = AlgorithmClass()
param = algorithm.getParameters()
param.setValue("algo_parameter", "new_value")
algorithm.setParameters(param)
exp = MSExperiment()
# populate exp, for example load from file
algorithm.filterExperiment(exp)
Since they work on a single MSExperiment object, little input is needed to
execute a filter directly on the data. Examples of filters that follow this
pattern are GaussFilter, SavitzkyGolayFilter as well as the spectral filters
BernNorm, MarkerMower, NLargest, Normalizer, ParentPeakMower, Scaler,
SpectraMerger, SqrtMower, ThresholdMower, WindowMower.
Using the same example file as before, we can apply this approach as follows:
from pyopenms import *
exp = MSExperiment()
gf = GaussFilter()
MzMLFile().load("test.mzML", exp)
gf.filterExperiment(exp)
MzMLFile().store("test.filtered.mzML", exp)