//建立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); }
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); }
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; } }
//建立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); }