private static ChromatographicPeak GetPeakClosestToRT(IList<ChromatographicPeak> chromPeakList, double targetRT) { bool foundPeak = false; ChromatographicPeak targetPeak = new ChromatographicPeak(0, 0, 0, 0); foreach (ChromatographicPeak peak in chromPeakList) { if (Math.Abs(peak.Rt - targetRT) < Math.Abs(targetPeak.Rt - targetRT)) { targetPeak = peak; foundPeak = true; } } if (foundPeak) { return targetPeak; } else { return null; } }
private static ChromatographicPeak ConvertDeconPeakToChromatographicPeak(Decon2LS.Peaks.clsPeak peak) { ChromatographicPeak chromatographicPeak = new ChromatographicPeak(); chromatographicPeak.PeakArea = 0; chromatographicPeak.PeakHeight = peak.mdbl_intensity; chromatographicPeak.PeakWidth = peak.mdbl_FWHM; chromatographicPeak.Rt = peak.mdbl_mz; return chromatographicPeak; }
private static ChromatographicPeak FindLargestPeak(IList<ChromatographicPeak> chromPeakList) { bool foundPeak = false; ChromatographicPeak targetPeak = new ChromatographicPeak(0, 0, 0, 0); foreach (ChromatographicPeak peak in chromPeakList) { if (peak.PeakArea > targetPeak.PeakArea) { targetPeak = peak; foundPeak = true; } // this is a bit of a hack; DeconTools doesn't report a PeakArea so must use peakHeight if (peak.PeakArea == 0 && peak.PeakHeight > 0 && peak.PeakWidth > 0) { if (peak.PeakHeight > targetPeak.PeakHeight) { targetPeak = peak; foundPeak = true; } } } if (foundPeak) { return targetPeak; } else { return null; } }