Esempio n. 1
0
 private void AddChromKeys(ChromSource source, SpectrumProductFilter[] productFilters, bool highEnergy,
                           List <ChromKey> listChromKeys)
 {
     if (null != productFilters)
     {
         var ionMobility = GetIonMobilityWindow(highEnergy);
         foreach (var spectrumProductFilter in productFilters)
         {
             spectrumProductFilter.FilterId = listChromKeys.Count;
             var key = new ChromKey(ModifiedSequence,
                                    Q1,
                                    ionMobility,
                                    spectrumProductFilter.TargetMz,
                                    0, // CE value (Shimadzu SRM only)
                                    spectrumProductFilter.FilterWidth,
                                    source,
                                    Extractor,
                                    true,
                                    true,
                                    MinTime,
                                    MaxTime);
             listChromKeys.Add(key);
         }
     }
 }
 private void AddChromKeys(ChromSource source, SpectrumProductFilter[] productFilters, bool highEnergy,
                           List <ChromKey> listChromKeys)
 {
     if (null != productFilters)
     {
         double?imCenterOpt = null;
         double imCenter, imWidth;
         if (GetDriftTimeWindow(out imCenter, out imWidth, highEnergy))
         {
             imCenterOpt = imCenter;
         }
         foreach (var spectrumProductFilter in productFilters)
         {
             spectrumProductFilter.FilterId = listChromKeys.Count;
             var key = new ChromKey(ModifiedSequence,
                                    Q1,
                                    imCenterOpt,
                                    imWidth,
                                    spectrumProductFilter.TargetMz,
                                    0, // CE value (Shimadzu SRM only)
                                    spectrumProductFilter.FilterWidth,
                                    source,
                                    Extractor,
                                    true,
                                    true,
                                    MinTime,
                                    MaxTime);
             listChromKeys.Add(key);
         }
     }
 }
        public bool GetDriftRange(out double minDrift, out double maxDrift, ChromSource sourceType)
        {
            minDrift = double.MaxValue;
            maxDrift = double.MinValue;
            var hasDriftInfo = false;

            foreach (var transition in ScanProvider.Transitions)
            {
                if (!transition.IonMobilityValue.HasValue || !transition.IonMobilityExtractionWidth.HasValue)
                {
                    // Accept all values
                    minDrift = double.MinValue;
                    maxDrift = double.MaxValue;
                }
                else if (sourceType == ChromSource.unknown || transition.Source == sourceType)
                {
                    // Products and precursors may have different expected drift time values in Waters MsE
                    double startDrift = transition.IonMobilityValue.Value -
                                        transition.IonMobilityExtractionWidth.Value / 2;
                    double endDrift = startDrift + transition.IonMobilityExtractionWidth.Value;
                    minDrift     = Math.Min(minDrift, startDrift);
                    maxDrift     = Math.Max(maxDrift, endDrift);
                    hasDriftInfo = true;
                }
            }
            return(hasDriftInfo);
        }
Esempio n. 4
0
 private void AddChromKeys(ChromSource source, SpectrumProductFilter[] productFilters, bool highEnergy,
                           List <ChromKey> listChromKeys)
 {
     if (null != productFilters)
     {
         var ionMobilityFilter = GetIonMobilityWindow();
         foreach (var spectrumProductFilter in productFilters)
         {
             spectrumProductFilter.FilterId = listChromKeys.Count;
             var key = new ChromKey(ModifiedSequence,
                                    Q1,
                                    ionMobilityFilter.ApplyOffset(highEnergy ? spectrumProductFilter.HighEnergyIonMobilityValueOffset : 0),
                                    spectrumProductFilter.TargetMz,
                                    0, // CE value (Shimadzu SRM only)
                                    spectrumProductFilter.FilterWidth,
                                    source,
                                    Extractor,
                                    true,
                                    true);
             if (_filterByTime)
             {
                 key = key.ChangeOptionalTimes(_minTime, _maxTime);
             }
             listChromKeys.Add(key);
         }
     }
 }
Esempio n. 5
0
        private ChromatogramRequestDocumentChromatogramGroup MakeChromatogramRequestDocumentChromatogramGroup(
            ChromSource chromSource, bool calculateMassErrors, IEnumerable <ChromatogramRequestDocumentChromatogramGroupChromatogram> chromatograms)
        {
            ChromatogramRequestDocumentChromatogramGroup docFilterPair = new ChromatogramRequestDocumentChromatogramGroup
            {
                ModifiedSequence = ModifiedSequence != null?ModifiedSequence.ToString() : null,
                                       PrecursorMz = Q1.RawValue, // A negative ion mode precursor will be serialized as a negative mz value
                                       MassErrors  = calculateMassErrors,
            };

            switch (Extractor)
            {
            case ChromExtractor.base_peak:
                docFilterPair.Extractor = RemoteApi.GeneratedCode.ChromExtractor.BasePeak;
                break;

            case ChromExtractor.summed:
                docFilterPair.Extractor = RemoteApi.GeneratedCode.ChromExtractor.Summed;
                break;
            }
            if (MinTime.HasValue)
            {
                docFilterPair.MinTime          = MinTime.Value;
                docFilterPair.MinTimeSpecified = true;
            }
            if (MaxTime.HasValue)
            {
                docFilterPair.MaxTime          = MaxTime.Value;
                docFilterPair.MaxTimeSpecified = true;
            }
            if (MinIonMobilityValue.HasValue && MaxIonMobilityValue.HasValue)
            {
                docFilterPair.DriftTime = (MinIonMobilityValue.Value + MaxIonMobilityValue.Value) / 2;
                if (ChromSource.fragment == chromSource) // Use high energy offset for fragments
                {
                    docFilterPair.DriftTime += HighEnergyIonMobilityValueOffset;
                }
                docFilterPair.DriftTimeSpecified       = true;
                docFilterPair.DriftTimeWindow          = MaxIonMobilityValue.Value - MinIonMobilityValue.Value;
                docFilterPair.DriftTimeWindowSpecified = true;
            }
            switch (chromSource)
            {
            case ChromSource.ms1:
                docFilterPair.Source = RemoteApi.GeneratedCode.ChromSource.Ms1;
                break;

            case ChromSource.fragment:
                docFilterPair.Source = RemoteApi.GeneratedCode.ChromSource.Ms2;
                break;

            case ChromSource.sim:
                docFilterPair.Source = RemoteApi.GeneratedCode.ChromSource.Sim;
                break;
            }
            docFilterPair.Chromatogram = chromatograms.ToArray();
            return(docFilterPair);
        }
        private ChromatogramRequestDocumentChromatogramGroup MakeChromatogramRequestDocumentChromatogramGroup(
            ChromSource chromSource, bool calculateMassErrors, IEnumerable <ChromatogramRequestDocumentChromatogramGroupChromatogram> chromatograms)
        {
            ChromatogramRequestDocumentChromatogramGroup docFilterPair = new ChromatogramRequestDocumentChromatogramGroup
            {
                ModifiedSequence = ModifiedSequence,
                PrecursorMz      = Q1,
                MassErrors       = calculateMassErrors,
            };

            switch (Extractor)
            {
            case ChromExtractor.base_peak:
                docFilterPair.Extractor = RemoteApi.GeneratedCode.ChromExtractor.BasePeak;
                break;

            case ChromExtractor.summed:
                docFilterPair.Extractor = RemoteApi.GeneratedCode.ChromExtractor.Summed;
                break;
            }
            if (MinTime.HasValue)
            {
                docFilterPair.MinTime          = MinTime.Value;
                docFilterPair.MinTimeSpecified = true;
            }
            if (MaxTime.HasValue)
            {
                docFilterPair.MaxTime          = MaxTime.Value;
                docFilterPair.MaxTimeSpecified = true;
            }
            if (MinDriftTimeMsec.HasValue && MaxDriftTimeMsec.HasValue)
            {
                docFilterPair.DriftTime = (MinDriftTimeMsec.Value + MaxDriftTimeMsec.Value) / 2;
                if (ChromSource.fragment == chromSource && HighEnergyDriftTimeOffsetMsec.HasValue)
                {
                    docFilterPair.DriftTime += HighEnergyDriftTimeOffsetMsec.Value;
                }
                docFilterPair.DriftTimeSpecified       = true;
                docFilterPair.DriftTimeWindow          = MaxDriftTimeMsec.Value - MinDriftTimeMsec.Value;
                docFilterPair.DriftTimeWindowSpecified = true;
            }
            switch (chromSource)
            {
            case ChromSource.ms1:
                docFilterPair.Source = RemoteApi.GeneratedCode.ChromSource.Ms1;
                break;

            case ChromSource.fragment:
                docFilterPair.Source = RemoteApi.GeneratedCode.ChromSource.Ms2;
                break;

            case ChromSource.sim:
                docFilterPair.Source = RemoteApi.GeneratedCode.ChromSource.Sim;
                break;
            }
            docFilterPair.Chromatogram = chromatograms.ToArray();
            return(docFilterPair);
        }
Esempio n. 7
0
        private MsDataFileScanIds _msDataFileScanIds; // Indexed container of MsDataFileImpl ids

        #endregion Fields

        #region Constructors

        public ScanProvider(string docFilePath, MsDataFileUri dataFilePath, ChromSource source,
            float[] times, TransitionFullScanInfo[] transitions, Func<MsDataFileScanIds> getMsDataFileScanIds)
        {
            DocFilePath = docFilePath;
            DataFilePath = dataFilePath;
            Source = source;
            Times = times;
            Transitions = transitions;

            _getMsDataFileScanIds = getMsDataFileScanIds;
        }
Esempio n. 8
0
 public ScanProvider(string docFilePath, MsDataFileUri dataFilePath, ChromSource source,
                     IList <float> times, TransitionFullScanInfo[] transitions, MeasuredResults measuredResults, Func <MsDataFileScanIds> getMsDataFileScanIds)
 {
     DocFilePath  = docFilePath;
     DataFilePath = dataFilePath;
     Source       = source;
     Times        = times;
     Transitions  = transitions;
     _measuredResultsReference = new WeakReference <MeasuredResults>(measuredResults);
     _getMsDataFileScanIds     = getMsDataFileScanIds;
 }
Esempio n. 9
0
 public ChorusScanProvider(string docFilePath, ChorusUrl chorusUrl, ChromSource source, float[] times,
                           TransitionFullScanInfo[] transitions)
 {
     ChorusUrl      = chorusUrl;
     DocFilePath    = docFilePath;
     DataFilePath   = chorusUrl;
     Source         = source;
     Times          = times;
     Transitions    = transitions;
     _chorusSession = new ChorusSession();
 }
Esempio n. 10
0
 public ChorusScanProvider(string docFilePath, ChorusUrl chorusUrl, ChromSource source, float[] times,
     TransitionFullScanInfo[] transitions)
 {
     ChorusUrl = chorusUrl;
     DocFilePath = docFilePath;
     DataFilePath = chorusUrl;
     Source = source;
     Times = times;
     Transitions = transitions;
     _chorusSession = new ChorusSession();
 }
Esempio n. 11
0
        public ScanProvider(string docFilePath, MsDataFileUri dataFilePath, ChromSource source,
                            float[] times, TransitionFullScanInfo[] transitions, Func <MsDataFileScanIds> getMsDataFileScanIds)
        {
            DocFilePath  = docFilePath;
            DataFilePath = dataFilePath;
            Source       = source;
            Times        = times;
            Transitions  = transitions;

            _getMsDataFileScanIds = getMsDataFileScanIds;
        }
Esempio n. 12
0
        public MsDataSpectrum[] GetSpectra(ChorusUrl chorusUrl, ChromSource source,
                                           SignedMz precursor, int scanId)
        {
            string strSource;
            int    msLevel = 1;

            // ReSharper disable NonLocalizedString
            switch (source)
            {
            case ChromSource.ms1:
                strSource = "ms1";
                break;

            case ChromSource.sim:
                strSource = "sim";
                break;

            case ChromSource.fragment:
                strSource = "ms2";
                msLevel   = 2;
                break;

            default:
                throw new ArgumentException("Unknown source " + source);
            }

            string strUri = string.Format(CultureInfo.InvariantCulture,
                                          "{0}/skyline/api/chroextract-drift/file/{1}/source/{2}/precursor/{3}/{4}",
                                          chorusUrl.ServerUrl,
                                          chorusUrl.FileId,
                                          strSource,
                                          precursor.RawValue, // This will be a negative value for negative ion mode data
                                          scanId);
            // ReSharper restore NonLocalizedString

            var webRequest = (HttpWebRequest)WebRequest.Create(new Uri(strUri));

            AddAuthHeader(ChorusAccount, webRequest);
            return(SendRequest(webRequest, response =>
            {
                string strResponse = string.Empty;
                var responseStream = response.GetResponseStream();
                if (null != responseStream)
                {
                    var streamReader = new StreamReader(responseStream);
                    strResponse = streamReader.ReadToEnd();
                }
                JObject jObject = JsonConvert.DeserializeObject <JObject>(strResponse);
                JArray array = (JArray)jObject["results"];  // Not L10N
                return array.OfType <JObject>().Select(obj => GetSpectrumFromJObject(obj, msLevel)).ToArray();
            }));
        }
Esempio n. 13
0
        public ChorusScanProvider(string docFilePath, ChorusUrl chorusUrl, ChromSource source, IList <float> times,
                                  TransitionFullScanInfo[] transitions)
        {
            ChorusUrl    = chorusUrl;
            DocFilePath  = docFilePath;
            DataFilePath = chorusUrl;
            Source       = source;
            Times        = times;
            Transitions  = transitions;
            ChorusAccount chorusAccount = ChorusUrl.FindChorusAccount(Settings.Default.RemoteAccountList);

            _chorusSession = new ChorusSession(chorusAccount);
        }
Esempio n. 14
0
 public IList <int> GetScanIndexes(ChromSource source)
 {
     if (ScanProvider != null)
     {
         foreach (var transition in ScanProvider.Transitions)
         {
             if (transition.Source == source)
             {
                 return(transition.ScanIndexes);
             }
         }
     }
     return(null);
 }
Esempio n. 15
0
 public TimeIntensities GetTimeIntensities(ChromSource source)
 {
     if (ScanProvider != null)
     {
         foreach (var transition in ScanProvider.Transitions)
         {
             if (transition.Source == source)
             {
                 return(transition.TimeIntensities);
             }
         }
     }
     return(null);
 }
 public void UpdateScanProvider(IScanProvider scanProvider, int transitionIndex, int scanIndex)
 {
     ScanProvider.SetScanProvider(scanProvider);
     if (scanProvider != null)
     {
         Source = scanProvider.Transitions[transitionIndex].Source;
         Assume.IsTrue(Source == ScanProvider.Source);
         TransitionIndex = transitionIndex;
         ScanIndex       = scanIndex;
         FileName        = scanProvider.DataFilePath.GetFileName();
     }
     else
     {
         MsDataSpectra = null;
         FileName      = null;
     }
 }
Esempio n. 17
0
 public void SelectScanType(ChromSource source)
 {
     comboBoxScanType.SelectedItem = _msDataFileScanHelper.NameFromSource(source);
 }
Esempio n. 18
0
 private bool IsMs1(ChromSource source)
 {
     return(source != ChromSource.fragment); // TODO: source == ChromSource.ms1 || source == ChromSource.sim;
 }
Esempio n. 19
0
 private static void SetScanType(ChromSource source, double x, double y)
 {
     RunUI(() => SkylineWindow.GraphFullScan.SelectScanType(source));
     CheckFullScanSelection(x, y);
 }
Esempio n. 20
0
 public IList <int> GetScanIndexes(ChromSource source)
 {
     return(GetTimeIntensities(source)?.ScanIds);
 }
Esempio n. 21
0
 public string NameFromSource(ChromSource source)
 {
     return(SourceNames[(int)source]);
 }
Esempio n. 22
0
 private static void SetScanType(ChromSource source, double x, double y)
 {
     RunUI(() => SkylineWindow.GraphFullScan.SelectScanType(source));
     CheckFullScanSelection(x, y);
 }
Esempio n. 23
0
        public bool GetIonMobilityRange(out double minIonMobility, out double maxIonMobility, ChromSource sourceType)
        {
            minIonMobility = double.MaxValue;
            maxIonMobility = double.MinValue;
            var hasIonMobilityInfo = false;

            foreach (var transition in ScanProvider.Transitions)
            {
                if (!transition._ionMobilityInfo.HasIonMobilityValue || !transition._ionMobilityInfo.IonMobilityExtractionWindowWidth.HasValue)
                {
                    // Accept all values
                    minIonMobility = double.MinValue;
                    maxIonMobility = double.MaxValue;
                }
                else if (sourceType == ChromSource.unknown || transition.Source == sourceType)
                {
                    // Products and precursors may have different expected ion mobility values in Waters MsE
                    double startIM = transition._ionMobilityInfo.IonMobility.Mobility.Value -
                                     transition._ionMobilityInfo.IonMobilityExtractionWindowWidth.Value / 2;
                    double endIM = startIM + transition._ionMobilityInfo.IonMobilityExtractionWindowWidth.Value;
                    minIonMobility     = Math.Min(minIonMobility, startIM);
                    maxIonMobility     = Math.Max(maxIonMobility, endIM);
                    hasIonMobilityInfo = true;
                }
            }
            return(hasIonMobilityInfo);
        }
Esempio n. 24
0
 private ChromTransition MakeChromTransition(ChromSource chromSource)
 {
     return(new ChromTransition(0, 0, 0, 0, chromSource));
 }
Esempio n. 25
0
 public void SelectScanType(ChromSource source)
 {
     comboBoxScanType.SelectedItem = _msDataFileScanHelper.NameFromSource(source);
 }
 public ChromDataCollectorSet(ChromSource chromSource, TimeSharing timeSharing,
     ChromatogramLoadingStatus.TransitionData allChromData, BlockWriter blockWriter)
 {
     ChromSource = chromSource;
     TypeOfScans = timeSharing;
     PrecursorCollectorMap = new List<Tuple<PrecursorTextId, ChromDataCollector>>();
     if (timeSharing == TimeSharing.shared)
     {
         SharedTimesCollector = new SortedBlockedList<float>();
         ScanIdsCollector = new BlockedList<int>();
     }
     _allChromData = allChromData;
     _blockWriter = blockWriter;
 }