lgatto / MSnbase

Base Classes and Functions for Mass Spectrometry and Proteomics
http://lgatto.github.io/MSnbase/
123 stars 50 forks source link

unable to find multiple peaks in chromatogram objects by readSRMdata #554

Closed YANGJJ93research closed 2 years ago

YANGJJ93research commented 2 years ago

Hi guys, I was wondering if anyone run into the same issues like mine and can come up with any solutions.

I read the MRM datafile with the readSRMData function and used findchrompeaks with matchfilterparam(). But it failed to pick up multiple peaks for one MRM transitions.

std <- "E4-1.mzML" std1 <- readSRMData(std) peaks <- findChromPeaks(std1, MatchedFilterParam())

it returns: rt rtmin rtmax into intf maxo maxf sn row column [1,] 11.05065 8.333333e-05 17.00353 5664.304 276653.6 11060.5 19754.75 59.32448 1 1 [2,] 11.06412 8.333333e-05 17.00353 152683.066 7459165.8 344234.2 548991.02 61.16224 2 1

jorainer commented 2 years ago

Well, this I think depends also on your data. What I realized was (but I used centWave not MatchedFilter) that I had to lower the sn (signal to noise threshold) a lot, since the sn estimation has much less data to estimate background noise for this type of data. For MatchedFilter it could however also be that the parameters are not optimal for all peaks you have.

YANGJJ93research commented 2 years ago

I actually tried to pick peaks at "snthresh = 0". The side peaks are not detected.

YANGJJ93research commented 2 years ago

Well, this I think depends also on your data. What I realized was (but I used centWave not MatchedFilter) that I had to lower the sn (signal to noise threshold) a lot, since the sn estimation has much less data to estimate background noise for this type of data. For MatchedFilter it could however also be that the parameters are not optimal for all peaks you have.

I found out that the matchedfilter functions worked with small fwhm value (0~5). I am trying to find out at what value the function will work for my data. Thanks a lot for your support!