public IEnumerable <TPeak> FilterByNumberOfMostIntense(int topNPeaks) { double cutoffYvalue = YArray.Quantile(1.0 - (double)topNPeaks / Size); for (int i = 0; i < Size; i++) { if (YArray[i] >= cutoffYvalue) { yield return(this[i]); } } }
public Chromatogram CreateSmoothChromatogram(SmoothingType smoothing, int points) { switch (smoothing) { case SmoothingType.BoxCar: double[] newTimes = XArray.BoxCarSmooth(points); double[] newIntensities = YArray.BoxCarSmooth(points); return(new Chromatogram(newTimes, newIntensities, false)); default: return(new Chromatogram(this)); } }
public IEnumerable <TPeak> FilterByNumberOfMostIntense(int topNPeaks) { var quantile = 1.0 - (double)topNPeaks / Size; quantile = Math.Max(0, quantile); quantile = Math.Min(1, quantile); double cutoffYvalue = YArray.Quantile(quantile); for (int i = 0; i < Size; i++) { if (YArray[i] >= cutoffYvalue) { yield return(GetPeak(i)); } } }