Filter satellite peaks
Filters satellite peaks in FT spectra which arise from FT artifacts and from conversion to stick mode. A very simple rule is used which holds mostly true for MSMS spectra (and shouldn't be applied to MS1 spectra which contain isotope structures...)
filterPeakSatellites(peaks, filterSettings = getOption("RMassBank")$filterSettings)
A peak dataframe with at least the columns
The settings used for filtering. Refer to
The function cuts off all peaks within 0.5 m/z from every peak, in decreasing intensity order, which are below 5 intensity. E.g. for peaks m/z=100, int=100; m/z=100.2, int=2, m/z=100.3, int=6, m/z 150, int=10: The most intense peak (m/z=100) is selected, all neighborhood peaks below 5 peak) and the next less intense peak is selected. Here this is the m/z=150 peak. All low-intensity neighborhood peaks are removed (nothing). The next less intense peak is selected (m/z=100.3) and again neighborhood peaks are cut away (nothing to cut here. Note that the m/z = 100.2 peak was alredy removed.)
Returns the peak table with satellite peaks removed.
This is a very crude rule, but works remarkably well for our spectra.
1 2 3 4 5 6 7 8 9
# From the workflow: ## Not run: # Filter out satellite peaks: shot <- filterPeakSatellites(shot) shot_satellite_n <- setdiff(row.names(shot_full), row.names(shot)) shot_satellite <- shot_full[shot_satellite_n,] # shot_satellite contains the peaks which were eliminated as satellites. ## End(Not run)