Example #1
0
        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])
            };
        }