public override SpectrumChartData CreateSpectrumDetails(MassSpectrumItem massSpectrumItem, MassSpectrum referenceSpectrum = null) { ArgumentHelper.AssertNotNull(massSpectrumItem, "massSpectrumItem"); // clone given spectrum var spectrum = massSpectrumItem.Spectrum.Clone(); if (spectrum == null) { return(null); } //// get ions for respective polarity //var ions = spectrum.ScanEvent.Polarity == PolarityType.Negative // ? m_unknownFeatureIonInstanceItems.Where(w => w.Charge < 0) // : m_unknownFeatureIonInstanceItems.Where(w => w.Charge > 0); // annotate nearest centroids foreach (var ion in m_unknownFeatureIonInstanceItems) { // annotate isotopes foreach (var peak in m_chromatogramPeakItemsMap[ion.GetIDs()]) { var centroid = spectrum.PeakCentroids.FindClosestPeak(peak.Mass); if (centroid != null) { centroid.DisplayPriority = 2; } } } // create spectrum chart data var massRange = Range.Create(spectrum.Header.LowPosition, spectrum.Header.HighPosition); if (spectrum.ScanEvent.MSOrder == MSOrderType.MS1) { var peaks = m_chromatogramPeakItemsMap.SelectMany(s => s.Value).ToList(); massRange = Range.Create(Math.Max(0, peaks.Min(m => m.Mass)) - 4, peaks.Max(m => m.Mass) + 5); } return(new SpectrumChartData { MassRange = massRange, SpectrumDistanceDetails = null, Spectrum = spectrum, SpectrumHeaderText = CreateSpectrumChartHeader(spectrum, m_extraHeaderLine, m_fileNames[spectrum.Header.FileID]) }); }
public override SpectrumChartData CreateSpectrumDetails(MassSpectrumItem massSpectrumItem, MassSpectrum referenceSpectrum = null) { ArgumentHelper.AssertNotNull(massSpectrumItem, "massSpectrumItem"); // clone given spectrum var spectrum = massSpectrumItem.Spectrum.Clone(); if (spectrum == null){ return null; } //// get ions for respective polarity //var ions = spectrum.ScanEvent.Polarity == PolarityType.Negative // ? m_unknownFeatureIonInstanceItems.Where(w => w.Charge < 0) // : m_unknownFeatureIonInstanceItems.Where(w => w.Charge > 0); // annotate nearest centroids foreach (var ion in m_unknownFeatureIonInstanceItems){ // annotate isotopes foreach (var peak in m_chromatogramPeakItemsMap[ion.GetIDs()]){ var centroid = spectrum.PeakCentroids.FindClosestPeak(peak.Mass); if (centroid != null){ centroid.DisplayPriority = 2; } } } // create spectrum chart data var massRange = Range.Create(spectrum.Header.LowPosition, spectrum.Header.HighPosition); if (spectrum.ScanEvent.MSOrder == MSOrderType.MS1){ var peaks = m_chromatogramPeakItemsMap.SelectMany(s => s.Value).ToList(); massRange = Range.Create(Math.Max(0, peaks.Min(m => m.Mass)) - 4, peaks.Max(m => m.Mass) + 5); } return new SpectrumChartData{ MassRange = massRange, SpectrumDistanceDetails = null, Spectrum = spectrum, SpectrumHeaderText = CreateSpectrumChartHeader(spectrum, m_extraHeaderLine, m_fileNames[spectrum.Header.FileID]) }; }