public ChromatogramRequestDocument CloneWithChromatogramGroups(IEnumerable <ChromatogramRequestDocumentChromatogramGroup> groups) { ChromatogramRequestDocument result = (ChromatogramRequestDocument)MemberwiseClone(); result.ChromatogramGroup = groups.ToArray(); return(result); }
public ChromatogramGeneratorTask(ChromTaskList chromTaskList, ChorusAccount chorusAccount, ChorusUrl chorusUrl, ChromatogramRequestDocument chromatogramRequestDocument) { ChromTaskList = chromTaskList; ChorusAccount = chorusAccount; ChorusUrl = chorusUrl; ChromatogramRequestDocument = chromatogramRequestDocument; }
internal static IEnumerable<ChromKey> ListChromKeys(ChromatogramRequestDocument chromatogramRequestDocument) { foreach (var chromatogramGroup in chromatogramRequestDocument.ChromatogramGroup) { ChromSource chromSource; switch (chromatogramGroup.Source) { case GeneratedCode.ChromSource.Ms1: chromSource = ChromSource.ms1; break; case GeneratedCode.ChromSource.Ms2: chromSource = ChromSource.fragment; break; case GeneratedCode.ChromSource.Sim: chromSource = ChromSource.sim; break; default: chromSource = ChromSource.unknown; break; } ChromExtractor chromExtractor; switch (chromatogramGroup.Extractor) { case GeneratedCode.ChromExtractor.BasePeak: chromExtractor = ChromExtractor.base_peak; break; default: chromExtractor = ChromExtractor.summed; break; } foreach (var chromatogram in chromatogramGroup.Chromatogram) { yield return new ChromKey(chromatogramGroup.ModifiedSequence, chromatogramGroup.PrecursorMz, null, 0, chromatogram.ProductMz, 0, chromatogram.MzWindow, chromSource, chromExtractor, false, false, null, null); // Optional retention and drift times not used in this provider } } }
internal static IEnumerable<ChromKey> ListChromKeys(ChromatogramRequestDocument chromatogramRequestDocument) { return ChromatogramRequestProvider.ListChromKeys(chromatogramRequestDocument); }
public static List<ChromatogramRequestDocument> ChunkChromatogramRequest(ChromatogramRequestDocument chromatogramRequestDocument, int targetChromatogramCount) { var chunks = new List<ChromatogramRequestDocument>(); List<ChromatogramRequestDocumentChromatogramGroup> currentGroups = new List<ChromatogramRequestDocumentChromatogramGroup>(); int currentChromatogramCount = 0; foreach (var chromatogramGroup in chromatogramRequestDocument.ChromatogramGroup) { currentGroups.Add(chromatogramGroup); currentChromatogramCount += chromatogramGroup.Chromatogram.Length; if (currentChromatogramCount >= targetChromatogramCount) { chunks.Add(chromatogramRequestDocument.CloneWithChromatogramGroups(currentGroups)); currentGroups.Clear(); currentChromatogramCount = 0; } } if (currentGroups.Any()) { chunks.Add(chromatogramRequestDocument.CloneWithChromatogramGroups(currentGroups)); } return chunks; }
public ChromatogramRequestDocument ToChromatogramRequestDocument() { var document = new ChromatogramRequestDocument { MaxMz = _instrument.MaxMz, MinMz = _instrument.MinMz, MzMatchTolerance = _instrument.MzMatchTolerance, }; if (_minTime.HasValue) { document.MinTime = _minTime.Value; document.MinTimeSpecified = true; } if (_maxTime.HasValue) { document.MaxTime = _maxTime.Value; document.MaxTimeSpecified = true; } switch (_acquisitionMethod) { case FullScanAcquisitionMethod.DIA: document.Ms2FullScanAcquisitionMethod = Ms2FullScanAcquisitionMethod.DIA; break; case FullScanAcquisitionMethod.None: document.Ms2FullScanAcquisitionMethod = Ms2FullScanAcquisitionMethod.None; break; case FullScanAcquisitionMethod.Targeted: document.Ms2FullScanAcquisitionMethod = Ms2FullScanAcquisitionMethod.Targeted; break; } if (null != _filterMzValues) { var chromatogramGroups = new List<ChromatogramRequestDocumentChromatogramGroup>(); var sources = new HashSet<RemoteApi.GeneratedCode.ChromSource>(); if (EnabledMs) { sources.Add(RemoteApi.GeneratedCode.ChromSource.Ms1); } if (EnabledMsMs) { sources.Add(RemoteApi.GeneratedCode.ChromSource.Ms2); } foreach (var filterPair in _filterMzValues) { foreach (var chromatogramGroup in filterPair.ToChromatogramRequestDocumentChromatogramGroups()) { if (chromatogramGroup.PrecursorMz == 0 || sources.Contains(chromatogramGroup.Source)) { chromatogramGroups.Add(chromatogramGroup); } } } document.ChromatogramGroup = chromatogramGroups.ToArray(); } var isolationScheme = _fullScan.IsolationScheme; if (null != _fullScan.IsolationScheme) { document.IsolationScheme = new ChromatogramRequestDocumentIsolationScheme(); if (_fullScan.IsolationScheme.PrecursorFilter.HasValue) { document.IsolationScheme.PrecursorFilter = _fullScan.IsolationScheme.PrecursorFilter.Value; document.IsolationScheme.PrecursorFilterSpecified = true; } if (isolationScheme.PrecursorRightFilter.HasValue) { document.IsolationScheme.PrecursorRightFilter = isolationScheme.PrecursorRightFilter.Value; document.IsolationScheme.PrecursorRightFilterSpecified = true; } if (null != isolationScheme.SpecialHandling) { document.IsolationScheme.SpecialHandling = isolationScheme.SpecialHandling; } if (isolationScheme.WindowsPerScan.HasValue) { document.IsolationScheme.WindowsPerScan = isolationScheme.WindowsPerScan.Value; document.IsolationScheme.WindowsPerScanSpecified = true; } document.IsolationScheme.IsolationWindow = isolationScheme.PrespecifiedIsolationWindows.Select( isolationWindow => { var result = new ChromatogramRequestDocumentIsolationSchemeIsolationWindow { Start = isolationWindow.Start, End = isolationWindow.End, }; if (isolationWindow.Target.HasValue) { result.Target = isolationWindow.Target.Value; } if (isolationWindow.StartMargin.HasValue) { result.StartMargin = isolationWindow.StartMargin.Value; } if (isolationWindow.EndMargin.HasValue) { result.EndMargin = isolationWindow.EndMargin.Value; } return result; }).ToArray(); } return document; }