Exemple #1
0
        //建立Ms1Scan的索引
        new private TempIndex parseMS1(Spectrum spectrum, int index)
        {
            TempIndex ms1 = new TempIndex();

            ms1.level = 1;
            ms1.num   = index;
            if (spectrum.scanList.scans.Count != 1)
            {
                return(ms1);
            }

            Scan scan = spectrum.scanList.scans[0];

            if (jobInfo.jobParams.includeCV)
            {
                ms1.cvList = CV.trans(spectrum);
                if (scan.cvParams != null)
                {
                    ms1.cvList.AddRange(CV.trans(scan.cvParams));
                }
            }
            ms1.rt  = parseRT(scan);
            ms1.tic = parseTIC(spectrum);
            if (msType == null)
            {
                parseMsType(spectrum);
            }

            if (polarity == null)
            {
                parsePolarity(spectrum);
            }
            return(ms1);
        }
Exemple #2
0
        protected TempIndex parseMS2(Spectrum spectrum, int index, int parentIndex)
        {
            TempIndex ms2 = new TempIndex();

            ms2.level = 2;
            ms2.pNum  = parentIndex;
            ms2.num   = index;

            try
            {
                double mz          = getPrecursorIsolationWindowParams(spectrum, CVID.MS_isolation_window_target_m_z);
                double lowerOffset = getPrecursorIsolationWindowParams(spectrum, CVID.MS_isolation_window_lower_offset);
                double upperOffset = getPrecursorIsolationWindowParams(spectrum, CVID.MS_isolation_window_upper_offset);
                int    charge      = getPrecursorCharge(spectrum);
                ms2.charge  = charge;
                ms2.mz      = mz;
                ms2.mzStart = mz - lowerOffset;
                ms2.mzEnd   = mz + upperOffset;
                ms2.wid     = lowerOffset + upperOffset;
            }
            catch (Exception e)
            {
                jobInfo.log("ERROR:SpectrumIndex:" + spectrum.index)
                .log("ERROR:SpectrumId:" + spectrum.id)
                .log("ERROR: mz:" + spectrum.precursors[0].isolationWindow
                     .cvParamChild(CVID.MS_isolation_window_target_m_z).value)
                .log("ERROR: lowerOffset:" + spectrum.precursors[0].isolationWindow
                     .cvParamChild(CVID.MS_isolation_window_lower_offset).value)
                .log("ERROR: upperOffset:" + spectrum.precursors[0].isolationWindow
                     .cvParamChild(CVID.MS_isolation_window_upper_offset).value);
                throw e;
            }
            if (activator == null)
            {
                parseActivator(spectrum.precursors[0].activation);
            }

            if (spectrum.scanList.scans.Count != 1)
            {
                return(ms2);
            }
            Scan scan = spectrum.scanList.scans[0];

            if (jobInfo.jobParams.includeCV)
            {
                ms2.cvList = CV.trans(spectrum);
                if (scan.cvParams != null)
                {
                    ms2.cvList.AddRange(CV.trans(scan.cvParams));
                }
            }
            ms2.rt  = parseRT(scan);
            ms2.tic = parseTIC(spectrum);
            return(ms2);
        }
Exemple #3
0
        private void scan(int i)
        {
            Spectrum spectrum = spectrumList.spectrum(i, true);

            //忽略所有MS1的谱图
            if (spectrum.cvParamChild(CVID.MS_ms_level).value.ToString().Equals(MsLevel.MS1))
            {
                return;
            }
            double    targetMz = getPrecursorIsolationWindowParams(spectrum, CVID.MS_isolation_window_target_m_z);
            ArrayList ms2List  = null;

            if (rangeMap.Contains(targetMz))
            {
                ms2List = (ArrayList)ms2Map[targetMz];
            }
            else
            {
                double mz          = getPrecursorIsolationWindowParams(spectrum, CVID.MS_isolation_window_target_m_z);
                double lowerOffset = getPrecursorIsolationWindowParams(spectrum, CVID.MS_isolation_window_lower_offset);
                double upperOffset = getPrecursorIsolationWindowParams(spectrum, CVID.MS_isolation_window_upper_offset);

                WindowRange range    = new WindowRange(mz - lowerOffset, mz + upperOffset, mz);
                BlockIndex  addIndex = new BlockIndex();
                addIndex.setWindowRange(range);
                rangeMap.Add(targetMz, addIndex);
                ms2Map.Add(targetMz, ArrayList.Synchronized(new ArrayList()));
                ms2List = (ArrayList)ms2Map[targetMz];
            }

            if (spectrum.scanList.scans.Count != 1)
            {
                return;
            }
            try
            {
                TempScan ts = new TempScan(i, parseRT(spectrum.scanList.scans[0]), parseTIC(spectrum));
                if (jobInfo.jobParams.includeCV)
                {
                    ts.cvs = CV.trans(spectrum);
                }
                compress(spectrum, ts);
                ms2List.Add(ts);
            }
            catch (Exception exception)
            {
                jobInfo.log(exception.Message);
                return;
            }
        }
Exemple #4
0
        //建立Ms2Scan的索引
        new private TempIndex parseMS2(Spectrum spectrum, int index, int parentIndex)
        {
            TempIndex ms2 = new TempIndex();

            ms2.level = 2;
            ms2.pNum  = parentIndex;
            ms2.num   = index;

            try
            {
                float mz = (float)double.Parse(spectrum.precursors[0].isolationWindow
                                               .cvParamChild(CVID.MS_isolation_window_target_m_z).value.ToString());

                //兼容Agilent的DDA数据格式中可能出现的lower offset和upper offset为空的情况
                string lowerOffsetStr = spectrum.precursors[0].isolationWindow
                                        .cvParamChild(CVID.MS_isolation_window_lower_offset).value.ToString();
                string upperOffsetStr = spectrum.precursors[0].isolationWindow
                                        .cvParamChild(CVID.MS_isolation_window_upper_offset).value.ToString();

                float lowerOffset = 0f;
                if (!lowerOffsetStr.IsNullOrEmpty())
                {
                    lowerOffset = (float)double.Parse(lowerOffsetStr);
                }

                float upperOffset = 0f;
                if (!upperOffsetStr.IsNullOrEmpty())
                {
                    upperOffset = (float)double.Parse(upperOffsetStr);
                }

                ms2.charge  = getPrecursorCharge(spectrum);
                ms2.mz      = mz;
                ms2.mzStart = mz - lowerOffset;
                ms2.mzEnd   = mz + upperOffset;
                ms2.wid     = lowerOffset + upperOffset;
            }
            catch (Exception e)
            {
                jobInfo.log("ERROR:SpectrumIndex:" + spectrum.index)
                .log("ERROR:SpectrumId:" + spectrum.id)
                .log("ERROR: mz:" + spectrum.precursors[0].isolationWindow
                     .cvParamChild(CVID.MS_isolation_window_target_m_z).value)
                .log("ERROR: lowerOffset:" + spectrum.precursors[0].isolationWindow
                     .cvParamChild(CVID.MS_isolation_window_lower_offset).value)
                .log("ERROR: upperOffset:" + spectrum.precursors[0].isolationWindow
                     .cvParamChild(CVID.MS_isolation_window_upper_offset).value);
                throw e;
            }

            if (spectrum.scanList.scans.Count != 1)
            {
                return(ms2);
            }
            Scan scan = spectrum.scanList.scans[0];

            if (jobInfo.jobParams.includeCV)
            {
                ms2.cvList = CV.trans(spectrum);
                if (scan.cvParams != null)
                {
                    ms2.cvList.AddRange(CV.trans(scan.cvParams));
                }
            }
            ms2.rt  = parseRT(scan);
            ms2.tic = parseTIC(spectrum);
            if (activator == null)
            {
                parseActivator(spectrum.precursors[0].activation);
            }
            return(ms2);
        }