示例#1
0
        private static SWATHIndexerItem CreateItem(MassSpectrum ms)
        {
            if (ms.BeginParamEdit().Get_MS_Level().GetInt32() != 2)
            {
                return(null);
            }

            if (ms.Precursors.Count < 1 ||
                ms.Precursors[0].SelectedIons.Count < 1 ||
                ms.Scans.Count < 1)
            {
                return(null);
            }

            IValueConverter rt     = ms.Scans[0].BeginParamEdit().Get_MS_ScanStartTime();
            IParamEdit      isoWin = ms.Precursors[0].IsolationWindow.BeginParamEdit();
            IValueConverter mz     = isoWin.Get_MS_IsolationWindowTargetMz();
            IValueConverter mzLow  = isoWin.Get_MS_IsolationWindowLowerOffset();
            IValueConverter mzHigh = isoWin.Get_MS_IsolationWindowUpperOffset();

            if (rt.HasValue() &&
                mz.HasValue() &&
                mzLow.HasValue() &&
                mzHigh.HasValue())
            {
                double mzValue = mz.GetDouble();

                return(new SWATHIndexerItem()
                {
                    Mz = mz.GetDouble(),
                    MzStart = SaveSubtract(mzValue, mzLow.GetDouble()),
                    MzEnd = SaveAdd(mzValue, mzHigh.GetDouble()),
                    Rt = rt.GetDouble(),
                    SpectrumID = ms.ID
                });
            }
            else
            {
                return(null);
            }
        }