identifyMajorPeaks      package:MassSpecWavelet      R Documentation

_I_d_e_n_t_i_f_y _p_e_a_k_s _b_a_s_e_d _o_n _t_h_e _r_i_d_g_e_s _i_n _2-_D _C_W_T _c_o_e_f_f_i_c_i_e_n_t _m_a_t_r_i_x

_D_e_s_c_r_i_p_t_i_o_n:

     Indentify the peaks based on the ridge list (returned by
     'getRidge') in 2-D CWT coefficient matrix and estimated Signal to
     Noise Ratio (SNR)

_U_s_a_g_e:

     identifyMajorPeaks(ms, ridgeList, wCoefs, scales = as.numeric(colnames(wCoefs)), SNR.Th = 3, peakScaleRange = 5, ridgeLength = 32, nearbyPeak = FALSE, nearbyWinSize = 100, winSize.noise = 500, SNR.method = "quantile", minNoiseLevel = 0.001)

_A_r_g_u_m_e_n_t_s:

      ms: the mass spectrometry spectrum 

ridgeList: returned by 'getRidge'

  wCoefs: 2-D CWT coefficients 

  scales: scales of CWT, by default it is the colnames of wCoefs 

  SNR.Th: threshold of SNR 

peakScaleRange: the CWT scale range of the peak. 

ridgeLength: the maximum ridge scale of the major peaks. 

nearbyPeak: determine whether to include the small peaks close to large
          major peaks 

nearbyWinSize: the window size to determine the nearby peaks. Only
          effective when nearbyPeak is true.

winSize.noise: the local window size to estimate the noise level. 

SNR.method: method to estimate noise level. Currently, only 95
          percentage quantile is supported. 

minNoiseLevel: the minimum noise level used in calculating SNR, i.e.,
          if the estimated noise level is less than "minNoiseLevel", it
          will use "minNoiseLevel" instead. If the noise level is less
          than 0.5, it will be treated as the ratio to the maximum
          amplitude of the spectrum. 

_D_e_t_a_i_l_s:

     The determination of the peaks is based on three rules: Rule 1:
     The maximum ridge scale of the peak should larger than a certain
     threshold Rule 2: Based on the scale of the peak (corresponding to
     the maximum value of the peak ridge) should be within certain
     range Rule 3: Based on the peak SNR

_V_a_l_u_e:

     Return a list with following elements: 

peakIndex: the m/z indexes of the identified peaks

peakCenterIndex: the m/z indexes of peak centers, which correspond to
          the maximum on the ridge. peakCenterIndex includes all the
          peaks, not just the identified major peaks.

peakCenterValue: the CWT coefficients (the maximum on the ridge)
          corresponding to peakCenterIndex

 peakSNR: the SNR of the peak, which is the ratio of peakCenterValue 
          and noise level

peakScale: the estimated scale of the peak, which corresponds to the
          peakCenerIndex

potentialPeakIndex: the m/z indexes of all potential peaks, which
          satisfy all requirements of a peak without considering its
          SNR. Useful, if you want to change to a lower SNR threshold
          later.

allPeakIndex: the m/z indexes of all the peaks, whose order is the same
          as peakCenterIndex, peakCenterValue, peakSNR and peakScale.


     All of these return elements have peak names, which are the same
     as the corresponding peak ridges. see 'getRidge' for details.

_A_u_t_h_o_r(_s):

     Pan Du, Simon Lin

_R_e_f_e_r_e_n_c_e_s:

     Du, P., Kibbe, W.A. and Lin, S.M. (2006) Improved peak detection
     in mass spectrum by incorporating continuous wavelet
     transform-based pattern matching, Bioinformatics, 22, 2059-2065.

_S_e_e _A_l_s_o:

     'peakDetectionCWT', 'tuneInPeakInfo'

_E_x_a_m_p_l_e_s:

             data(exampleMS)
             scales <- seq(1, 64, 3)
             wCoefs <- cwt(exampleMS, scales=scales, wavelet='mexh')
             
             localMax <- getLocalMaximumCWT(wCoefs)
             ridgeList <- getRidge(localMax)
             
             SNR.Th <- 3
             majorPeakInfo <- identifyMajorPeaks(exampleMS, ridgeList, wCoefs, SNR.Th=SNR.Th)
             ## Plot the identified peaks
             peakIndex <- majorPeakInfo$peakIndex
             plotPeak(exampleMS, peakIndex, main=paste('Identified peaks with SNR >', SNR.Th)) 
             

