コード例 #1
0
        public ChromatogramRequestDocument CloneWithChromatogramGroups(IEnumerable <ChromatogramRequestDocumentChromatogramGroup> groups)
        {
            ChromatogramRequestDocument result = (ChromatogramRequestDocument)MemberwiseClone();

            result.ChromatogramGroup = groups.ToArray();
            return(result);
        }
コード例 #2
0
 public ChromatogramGeneratorTask(ChromTaskList chromTaskList, ChorusAccount chorusAccount, ChorusUrl chorusUrl,
     ChromatogramRequestDocument chromatogramRequestDocument)
 {
     ChromTaskList = chromTaskList;
     ChorusAccount = chorusAccount;
     ChorusUrl = chorusUrl;
     ChromatogramRequestDocument = chromatogramRequestDocument;
 }
コード例 #3
0
 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
         }
     }
 }
コード例 #4
0
ファイル: ChromTaskList.cs プロジェクト: lgatto/proteowizard
 internal static IEnumerable<ChromKey> ListChromKeys(ChromatogramRequestDocument chromatogramRequestDocument)
 {
     return ChromatogramRequestProvider.ListChromKeys(chromatogramRequestDocument);
 }
コード例 #5
0
ファイル: ChromTaskList.cs プロジェクト: lgatto/proteowizard
 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;
 }
コード例 #6
0
ファイル: SpectrumFilter.cs プロジェクト: lgatto/proteowizard
        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;
        }