sgibb / MALDIquant

Quantitative Analysis of Mass Spectrometry Data
https://strimmerlab.github.io/software/maldiquant/
60 stars 25 forks source link

filterPeaks should not round minFrequency argument #22

Closed sgibb closed 11 years ago

sgibb commented 11 years ago

filterPeaks use floor to determine minimal number of peaks from a given minFrequency argument but it should not round it because this behavior is mostly unexpected.

To reproduce: minFrequency=2/3; 2/3_3 == 2 (at least 2; mass == 1:4 for group 1); 2/3_4 == 2.6667 (=> at least 3 peaks (mass == 1:4) for group 2; but filterPeaks uses floor and we get mass == 1:5)

library("MALDIquant")

p <- c(createMassPeaks(1:3, 1:3),
       createMassPeaks(1:4, 1:4),
       createMassPeaks(1:5, 1:5),
       createMassPeaks(1:3, 1:3),
       createMassPeaks(1:4, 1:4),
       createMassPeaks(1:5, 1:5),
       createMassPeaks(1:6, 1:6))

sapply(filterPeaks(p, minFrequency=2/3, labels=c(rep(1, 3), rep(2, 4))), mass)