private void ProcessSrmSpectrum(double time, string modifiedSequence, Color peptideColor, double precursorMz, int filterIndex, double[] mzs, double[] intensities, double ionMobilityValue, double ionMobilityExtractionWidth, ChromDataCollectorSet chromMap) { float[] intensityFloats = new float[intensities.Length]; for (int i = 0; i < intensities.Length; i++) intensityFloats[i] = (float) intensities[i]; var productFilters = mzs.Select(mz => new SpectrumProductFilter(mz, 0)).ToArray(); var spectrum = new ExtractedSpectrum(modifiedSequence, peptideColor, precursorMz, ionMobilityValue, ionMobilityExtractionWidth, ChromExtractor.summed, filterIndex, productFilters, intensityFloats, null); chromMap.ProcessExtractedSpectrum((float)time, _collectors, -1, spectrum, null); }
/// <summary> /// Process a list of spectra - typically of length one, /// but possibly a set of drift bins all with same retention time, /// or a set of Agilent ramped-CE Mse scans to be averaged /// </summary> private void ProcessSpectrumList(MsDataSpectrum[] spectra, ChromDataCollectorSet chromMap, double rt, SpectrumFilter filter, string scanId) { lock (_blockWriter) { foreach (var spectrum in filter.Extract(rt, spectra)) { if (_loader.IsCanceled) throw new LoadCanceledException(Status); chromMap.ProcessExtractedSpectrum((float) rt, _collectors, GetScanIdIndex(scanId), spectrum, AddChromCollector); } } }