private bool ProcessChromInfo(MsDataFileUri filePath, ChromatogramGroupInfo chromInfo, PeptidePrecursorPair pair, TransitionGroupDocNode nodeGroup, float tolerance, LibKey libKey) { if (chromInfo.NumPeaks == 0) // Due to data polarity mismatch, probably { return(true); } Assume.IsTrue(chromInfo.BestPeakIndex != -1); var resultIndex = _document.Settings.MeasuredResults.Chromatograms.IndexOf(c => c.GetFileInfo(filePath) != null); if (resultIndex == -1) { return(true); } var chromFileInfo = _document.Settings.MeasuredResults.Chromatograms[resultIndex].GetFileInfo(filePath); Assume.IsTrue(Equals(chromFileInfo.FilePath.GetLockMassParameters(), filePath.GetLockMassParameters())); // Determine apex RT for DT measurement using most intense MS1 peak var apexRT = GetApexRT(nodeGroup, resultIndex, chromFileInfo, true) ?? GetApexRT(nodeGroup, resultIndex, chromFileInfo, false); if (!apexRT.HasValue) { return(true); } Assume.IsTrue(chromInfo.PrecursorMz.CompareTolerant(pair.NodeGroup.PrecursorMz, 1.0E-9f) == 0, @"mismatch in precursor values"); // Only use the transitions currently enabled var transitionPointSets = chromInfo.TransitionPointSets.Where( tp => nodeGroup.Transitions.Any( t => (t.Mz - (tp.ExtractionWidth ?? tolerance) / 2) <= tp.ProductMz && (t.Mz + (tp.ExtractionWidth ?? tolerance) / 2) >= tp.ProductMz)) .ToArray(); for (var msLevel = 1; msLevel <= 2; msLevel++) { if (!ProcessMSLevel(filePath, msLevel, transitionPointSets, chromInfo, apexRT, nodeGroup, libKey, tolerance)) { return(false); // User cancelled } } return(true); }
private bool ProcessChromInfo(MsDataFileUri filePath, ChromatogramGroupInfo chromInfo, PeptidePrecursorPair pair, TransitionGroupDocNode nodeGroup, float tolerance, LibKey libKey) { Assume.IsTrue(chromInfo.BestPeakIndex != -1); var resultIndex = _document.Settings.MeasuredResults.Chromatograms.IndexOf(c => c.GetFileInfo(filePath) != null); if (resultIndex == -1) return true; var chromFileInfo = _document.Settings.MeasuredResults.Chromatograms[resultIndex].GetFileInfo(filePath); Assume.IsTrue(Equals(chromFileInfo.FilePath.GetLockMassParameters(), filePath.GetLockMassParameters())); // Determine apex RT for DT measurement using most intense MS1 peak var apexRT = GetApexRT(nodeGroup, resultIndex, chromFileInfo, true) ?? GetApexRT(nodeGroup, resultIndex, chromFileInfo, false); Assume.IsTrue(chromInfo.PrecursorMz == pair.NodeGroup.PrecursorMz); // Only use the transitions currently enabled var transitionPointSets = chromInfo.TransitionPointSets.Where( tp => nodeGroup.Transitions.Any( t => (t.Mz - (tp.ExtractionWidth ?? tolerance)/2) <= tp.ProductMz && (t.Mz + (tp.ExtractionWidth ?? tolerance)/2) >= tp.ProductMz)) .ToArray(); for (var msLevel = 1; msLevel <= 2; msLevel++) { if (!ProcessMSLevel(filePath, msLevel, transitionPointSets, chromInfo, apexRT, nodeGroup, libKey, tolerance)) return false; // User cancelled } return true; }