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); }
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); } } }
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); }
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; }
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; }
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(); }
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; }
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(); })); }
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); }
public IList <int> GetScanIndexes(ChromSource source) { if (ScanProvider != null) { foreach (var transition in ScanProvider.Transitions) { if (transition.Source == source) { return(transition.ScanIndexes); } } } return(null); }
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; } }
public void SelectScanType(ChromSource source) { comboBoxScanType.SelectedItem = _msDataFileScanHelper.NameFromSource(source); }
private bool IsMs1(ChromSource source) { return(source != ChromSource.fragment); // TODO: source == ChromSource.ms1 || source == ChromSource.sim; }
private static void SetScanType(ChromSource source, double x, double y) { RunUI(() => SkylineWindow.GraphFullScan.SelectScanType(source)); CheckFullScanSelection(x, y); }
public IList <int> GetScanIndexes(ChromSource source) { return(GetTimeIntensities(source)?.ScanIds); }
public string NameFromSource(ChromSource source) { return(SourceNames[(int)source]); }
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); }
private ChromTransition MakeChromTransition(ChromSource chromSource) { return(new ChromTransition(0, 0, 0, 0, chromSource)); }
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; }