public static Chromatogram GetClosetsPeakChromatogram(this IEnumerable<ISpectrumTime> spectra, DoubleRange range)
{
if (range == null)
{
throw new ArgumentException("A range must be declared for a m/z range chromatogram");
}
List<double> times = new List<double>();
List<double> intensities = new List<double>();
foreach (ISpectrumTime spectrum in spectra)
{
times.Add(spectrum.Time);
var peak = spectrum.GetClosestPeak(range);
intensities.Add((peak != null) ? peak.Intensity : 0);
}
return new MassRangeChromatogram(times.ToArray(), intensities.ToArray(), range);
}