public EditDriftTimePredictorDlg(IEnumerable <IonMobilityPredictor> existing) { _existing = existing; _showRegressions = true; InitializeComponent(); foreach (eIonMobilityUnits units in Enum.GetValues(typeof(eIonMobilityUnits))) { if (units != eIonMobilityUnits.none) // Don't present "none" as an option { comboBoxIonMobilityUnits.Items.Add(IonMobilityFilter.IonMobilityUnitsL10NString(units)); } } _smallMoleculeUI = Program.MainWindow.Document.HasSmallMolecules || Program.MainWindow.ModeUI != SrmDocument.DOCUMENT_TYPE.proteomic; if (_smallMoleculeUI) { gridMeasuredDriftTimes.Columns[COLUMN_SEQUENCE].HeaderText = Resources.EditDriftTimePredictorDlg_EditDriftTimePredictorDlg_Molecule; gridMeasuredDriftTimes.Columns[COLUMN_CHARGE].HeaderText = Resources.EditDriftTimePredictorDlg_EditDriftTimePredictorDlg_Adduct; } var targetResolver = TargetResolver.MakeTargetResolver(Program.ActiveDocumentUI); MeasuredDriftTimeSequence.TargetResolver = targetResolver; // TODO: ion mobility libraries are more complex than initially thought - leave these conversions to the mass spec vendors for now labelIonMobilityLibrary.Visible = comboLibrary.Visible = false; Icon = Resources.Skyline; _driverIonMobilityLibraryListComboDriver = new SettingsListComboDriver <IonMobilityLibrarySpec>(comboLibrary, Settings.Default.IonMobilityLibraryList); _driverIonMobilityLibraryListComboDriver.LoadList(null); UpdateControls(); }
public EditDriftTimePredictorDlg(IEnumerable <IonMobilityPredictor> existing) { _existing = existing; _showRegressions = true; InitializeComponent(); foreach (MsDataFileImpl.eIonMobilityUnits units in Enum.GetValues(typeof(MsDataFileImpl.eIonMobilityUnits))) { if (units != MsDataFileImpl.eIonMobilityUnits.none) // Don't present "none" as an option { comboBoxIonMobilityUnits.Items.Add(IonMobilityFilter.IonMobilityUnitsL10NString(units)); } } // TODO: ion mobility libraries are more complex than initially thought - leave these conversions to the mass spec vendors for now labelIonMobilityLibrary.Visible = comboLibrary.Visible = false; Icon = Resources.Skyline; _driverIonMobilityLibraryListComboDriver = new SettingsListComboDriver <IonMobilityLibrarySpec>(comboLibrary, Settings.Default.IonMobilityLibraryList); _driverIonMobilityLibraryListComboDriver.LoadList(null); UpdateControls(); }
/// <summary> /// For creating at the Molecule level (create molecule and first transition group) or modifying at the transition level /// Null values imply "don't ask user for this" /// </summary> public EditCustomMoleculeDlg(SkylineWindow parent, UsageMode usageMode, string title, Identity initialId, IEnumerable <Identity> existingIds, int minCharge, int maxCharge, SrmSettings settings, CustomMolecule molecule, Adduct defaultCharge, ExplicitTransitionGroupValues explicitTransitionGroupAttributes, ExplicitTransitionValues explicitTransitionAttributes, ExplicitRetentionTimeInfo explicitRetentionTime, IsotopeLabelType defaultIsotopeLabelType) { Text = title; _parent = parent; _initialId = initialId; _existingIds = existingIds; _minCharge = minCharge; _maxCharge = maxCharge; _transitionSettings = settings != null ? settings.TransitionSettings : null; _peptideSettings = settings != null ? settings.PeptideSettings : null; _resultAdduct = Adduct.EMPTY; _resultCustomMolecule = molecule; _usageMode = usageMode; var enableFormulaEditing = usageMode == UsageMode.moleculeNew || usageMode == UsageMode.moleculeEdit || usageMode == UsageMode.fragment; var enableAdductEditing = usageMode == UsageMode.moleculeNew || usageMode == UsageMode.precursor || usageMode == UsageMode.fragment; var suggestOnlyAdductsWithMass = usageMode != UsageMode.fragment; var needExplicitTransitionValues = usageMode == UsageMode.fragment; var needExplicitTransitionGroupValues = usageMode == UsageMode.moleculeNew || usageMode == UsageMode.precursor; InitializeComponent(); NameText = molecule == null ? String.Empty : molecule.Name; textName.Enabled = usageMode == UsageMode.moleculeNew || usageMode == UsageMode.moleculeEdit || usageMode == UsageMode.fragment; // Can user edit name? var needOptionalValuesBox = explicitRetentionTime != null || explicitTransitionGroupAttributes != null || explicitTransitionAttributes != null; if (!needExplicitTransitionValues) { labelCollisionEnergy.Visible = false; textCollisionEnergy.Visible = false; labelSLens.Visible = false; textSLens.Visible = false; labelConeVoltage.Visible = false; textConeVoltage.Visible = false; labelIonMobilityHighEnergyOffset.Visible = false; textIonMobilityHighEnergyOffset.Visible = false; labelDeclusteringPotential.Visible = false; textDeclusteringPotential.Visible = false; } if (!needExplicitTransitionGroupValues) { labelCCS.Visible = false; textBoxCCS.Visible = false; labelIonMobility.Visible = false; textIonMobility.Visible = false; labelIonMobilityUnits.Visible = false; comboBoxIonMobilityUnits.Visible = false; } var heightDelta = 0; // Initialise the ion mobility units dropdown with L10N values foreach (eIonMobilityUnits t in Enum.GetValues(typeof(eIonMobilityUnits))) { comboBoxIonMobilityUnits.Items.Add(IonMobilityFilter.IonMobilityUnitsL10NString(t)); } if (needOptionalValuesBox) { var newHeight = groupBoxOptionalValues.Height; var movers = new List <Control>(); int offset = 0; if (!needExplicitTransitionGroupValues && !needExplicitTransitionValues) { // We blanked out everything but the retention time newHeight = labelCollisionEnergy.Location.Y; } else if (!needExplicitTransitionGroupValues) { // We need to shift transition-level items up to where retention time was movers.AddRange(new Control[] { textCollisionEnergy, labelCollisionEnergy, textDeclusteringPotential, labelDeclusteringPotential, textSLens, labelSLens, textConeVoltage, labelConeVoltage, textIonMobilityHighEnergyOffset, labelIonMobilityHighEnergyOffset }); labelIonMobilityHighEnergyOffset.Location = labelIonMobility.Location; textIonMobilityHighEnergyOffset.Location = textIonMobility.Location; offset = labelCollisionEnergy.Location.Y - labelRetentionTime.Location.Y; newHeight = textBoxCCS.Location.Y; } else if (!needExplicitTransitionValues) { // We need to shift precursor-level items up to where retention time was movers.AddRange(new Control[] { textBoxCCS, labelCCS, textIonMobility, labelIonMobility, comboBoxIonMobilityUnits, labelIonMobilityUnits }); offset = labelIonMobility.Location.Y - (explicitRetentionTime == null ? labelRetentionTime.Location.Y : labelCollisionEnergy.Location.Y); newHeight = explicitRetentionTime == null ? textSLens.Location.Y : textIonMobility.Location.Y; } foreach (var mover in movers) { mover.Anchor = AnchorStyles.Left | AnchorStyles.Top; mover.Location = new Point(mover.Location.X, mover.Location.Y - offset); } heightDelta = groupBoxOptionalValues.Height - newHeight; groupBoxOptionalValues.Height = newHeight; } ResultExplicitTransitionGroupValues = new ExplicitTransitionGroupValues(explicitTransitionGroupAttributes); ResultExplicitTransitionValues = new ExplicitTransitionValues(explicitTransitionAttributes); string labelAverage = !defaultCharge.IsEmpty ? Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg_A_verage_m_z_ : Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg_A_verage_mass_; string labelMono = !defaultCharge.IsEmpty ? Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg__Monoisotopic_m_z_ : Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg__Monoisotopic_mass_; var defaultFormula = molecule == null ? string.Empty : molecule.Formula; var transition = initialId as Transition; FormulaBox.EditMode editMode; if (enableAdductEditing && !enableFormulaEditing) { editMode = FormulaBox.EditMode.adduct_only; } else if (!enableAdductEditing && enableFormulaEditing) { editMode = FormulaBox.EditMode.formula_only; } else { editMode = FormulaBox.EditMode.formula_and_adduct; } string formulaBoxLabel; if (defaultCharge.IsEmpty) { formulaBoxLabel = Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg_Chemi_cal_formula_; } else if (editMode == FormulaBox.EditMode.adduct_only) { var prompt = defaultFormula; if (string.IsNullOrEmpty(defaultFormula) && molecule != null) { // Defined by mass only prompt = molecule.ToString(); } formulaBoxLabel = string.Format(Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg_Addu_ct_for__0__, prompt); } else { formulaBoxLabel = Resources.EditMeasuredIonDlg_EditMeasuredIonDlg_Ion__chemical_formula_; } double?averageMass = null; double?monoMass = null; if (transition != null && string.IsNullOrEmpty(defaultFormula) && transition.IsCustom()) { averageMass = transition.CustomIon.AverageMass; monoMass = transition.CustomIon.MonoisotopicMass; } else if (molecule != null) { averageMass = molecule.AverageMass; monoMass = molecule.MonoisotopicMass; } _formulaBox = new FormulaBox(false, // Not proteomic, so offer Cl and Br in atoms popup formulaBoxLabel, labelAverage, labelMono, defaultCharge, editMode, suggestOnlyAdductsWithMass) { NeutralFormula = defaultFormula, AverageMass = averageMass, MonoMass = monoMass, Location = new Point(textName.Left, textName.Bottom + 12) }; _formulaBox.ChargeChange += (sender, args) => { if (!_formulaBox.Adduct.IsEmpty) { Adduct = _formulaBox.Adduct; var revisedFormula = _formulaBox.NeutralFormula + Adduct.AdductFormula; if (!Equals(revisedFormula, _formulaBox.Formula)) { _formulaBox.Formula = revisedFormula; } if (string.IsNullOrEmpty(_formulaBox.NeutralFormula) && averageMass.HasValue) { _formulaBox.AverageMass = averageMass; _formulaBox.MonoMass = monoMass; } } }; Controls.Add(_formulaBox); _formulaBox.TabIndex = 2; _formulaBox.Enabled = enableFormulaEditing || enableAdductEditing; Adduct = defaultCharge; var needCharge = !Adduct.IsEmpty; textCharge.Visible = labelCharge.Visible = needCharge; if (needOptionalValuesBox && !needCharge) { heightDelta += groupBoxOptionalValues.Location.Y - labelCharge.Location.Y; groupBoxOptionalValues.Location = new Point(groupBoxOptionalValues.Location.X, labelCharge.Location.Y); } if (explicitRetentionTime == null) { // Don't ask user for retetention times RetentionTime = null; RetentionTimeWindow = null; labelRetentionTime.Visible = false; labelRetentionTimeWindow.Visible = false; textRetentionTime.Visible = false; textRetentionTimeWindow.Visible = false; } else { RetentionTime = explicitRetentionTime.RetentionTime; RetentionTimeWindow = explicitRetentionTime.RetentionTimeWindow; } if (!needOptionalValuesBox) { groupBoxOptionalValues.Visible = false; heightDelta = groupBoxOptionalValues.Height; } // Initialize label if (settings != null && defaultIsotopeLabelType != null) { _driverLabelType = new PeptideSettingsUI.LabelTypeComboDriver(PeptideSettingsUI.LabelTypeComboDriver.UsageType.InternalStandardPicker, comboIsotopeLabelType, settings.PeptideSettings.Modifications, null, null, null, null) { SelectedName = defaultIsotopeLabelType.Name }; } else { comboIsotopeLabelType.Visible = false; labelIsotopeLabelType.Visible = false; } Height -= heightDelta; }
/// <summary> /// Create an ion mobility heat map graph. /// </summary> private void CreateIonMobilityHeatmap() { GraphPane.YAxis.Title.Text = IonMobilityFilter.IonMobilityUnitsL10NString(_msDataFileScanHelper.IonMobilityUnits); graphControl.IsEnableVZoom = graphControl.IsEnableVPan = true; if (_heatMapData == null) { var points = new List <Point3D>(5000); foreach (var scan in _msDataFileScanHelper.MsDataSpectra) { if (!scan.IonMobility.HasValue && scan.IonMobilities == null) { continue; } for (int j = 0; j < scan.Mzs.Length; j++) { double mobilityValue = scan.IonMobilities != null ? scan.IonMobilities[j] : scan.IonMobility.Mobility.Value; points.Add(new Point3D(scan.Mzs[j], mobilityValue, scan.Intensities[j])); } } _heatMapData = new HeatMapData(points); } double minDrift; double maxDrift; _msDataFileScanHelper.GetIonMobilityRange(out minDrift, out maxDrift, _msDataFileScanHelper.Source); // There may be a different drift time filter for products in Waters if (minDrift > 0 && maxDrift < double.MaxValue) { // Add gray shaded box behind heat points. var driftTimeBox = new BoxObj( 0.0, maxDrift, 1.0, maxDrift - minDrift, Color.Transparent, Color.FromArgb(50, Color.Gray)) { Location = { CoordinateFrame = CoordType.XChartFractionYScale }, ZOrder = ZOrder.F_BehindGrid, IsClippedToChartRect = true, }; GraphPane.GraphObjList.Add(driftTimeBox); // Add outline in front of heat points, so you can tell where the limits are in a dense graph. var driftTimeOutline = new BoxObj( 0.0, maxDrift, 1.0, maxDrift - minDrift, Color.FromArgb(50, Color.DarkViolet), Color.Transparent) { Location = { CoordinateFrame = CoordType.XChartFractionYScale }, ZOrder = ZOrder.C_BehindChartBorder, IsClippedToChartRect = true, Border = new Border(Color.FromArgb(100, Color.DarkViolet), 2) }; GraphPane.GraphObjList.Add(driftTimeOutline); } if (!Settings.Default.FilterIonMobilityFullScan) { minDrift = 0; maxDrift = double.MaxValue; } var heatMapGraphPane = (HeatMapGraphPane)GraphPane; heatMapGraphPane.SetPoints(_heatMapData, minDrift, maxDrift); }
private void TestReports(string msg = null) { // Verify reports working for CCS var row = 10; var documentGrid = EnableDocumentGridIonMobilityResultsColumns(); var imPrecursor = .97; CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityMS1", row, imPrecursor, msg); CheckDocumentResultsGridFieldByName(documentGrid, "TransitionResult.IonMobilityFragment", row, imPrecursor, msg); // Document is all precursor CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityUnits", row, IonMobilityFilter.IonMobilityUnitsL10NString(eIonMobilityUnits.inverse_K0_Vsec_per_cm2), msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityWindow", row, 0.03, msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.CollisionalCrossSection", row, 392.02, msg); EnableDocumentGridColumns(documentGrid, Resources.ReportSpecList_GetDefaults_Peptide_RT_Results, 210); var rts = new double?[] { 12.45, 21.48, 16.93, 22.93, 13.63, 19.12, 28.97, 14.88, 14.24, 27.25, 14.97, 14.26, 25.7, 15.06, 11.93, 26.37, 12.89, 15.88, 18.34, 11.16, 10.46, 10.98, 28, 24.01, 11.15, 18.97, 23.33, 26.56, 11.94, 19, 24.2, 23.42, 26.1, 27.86, 27.76, 20.99, 26.15, 21.16, 25.99, 14.29, 26.04, 15.04, 24.07, 28.15, 20.1, 26.03, 15.07, 19.78, 27.2, 21.26, 25.39, 25.04, 11.71, 21.1, 20.51, 14.71, 25.24, 24.9, 28.57, 21.13, 17.19, 15.39, 18.08, 16.06, 26.11, 10.26, 13.11, 9.46, 10.78, 14.42, 25.16, 26.36, 17.21, 24.79, 13.9, 20.63, 19.7, 22.5, 13.97, 19.34, 19.05, 18.45, 13.96, 6.59, 26.12, 17.76, 28.31, 24.27, 29.25, 27.56, 23.72, 12.09, 8.92, 18.39, 20.23, 26.42, 28.45, 22.17, 15.17, 24.73, 28.22, 17.16, 9.59, 13.84, 22.91, 17.14, 19.92, 24.24, 27.82, 24.67, 10.41, 12.27, 21.21, 18.69, 12.68, 21.09, 22.11, 21.43, 14.51, 17.31, 21.92, 22.43, 19.53, 25.24, 25.31, 11.61, 24.37, 10.07, 24.29, 23.28, 15.83, 14.87, 28.53, 14.85, 28.5, 22.49, 19.35, 24.81, 24.57, 24.63, 24.36, 15.46, 22.7, 19.85, 22.56, 21.91, 15.97, 20.82, 13.62, 19.52, 15.55, 23.71, 30.35, 19.57, 13.57, 29.08, 15.56, 21.73, 16.05, 13.95, 25.39, 14.3, 25.3, 15.72, 10.48, 9.88, 21.31, 9.92, 26.56, 27.89, 29.85, 22.12, 25.06, 21.53, 15.25, 21.13, 22.81, 20.44, 18.23, 11.49, 25.59, 20.13, 16.32, 13.19, 9.63, 12.11, 21.84, 10.83, 12.49, 16.99, 18.83, 11.71, 12.84, 17.31, 11.13, 12.88, 24.35, 16.83, 15.26, 22.72, 8.45, 11.17, 18.41, 18.85, 22.18, 16.56, 10.02, 10.13, 25.91, 29.07 }; for (row = 0; row < rts.Length; row++) { var rt = rts[row]; var recordNewValues = false; // ReSharper disable once ConditionIsAlwaysTrueOrFalse CheckDocumentResultsGridFieldByName(documentGrid, "PeptideRetentionTime", row, rt, msg, recordNewValues); } // And clean up after ourselves RunUI(() => documentGrid.Close()); }
private void TestReports(string msg = null) { // Verify reports working for CCS var documentGrid = EnableDocumentGridIonMobilityResultsColumns(); var expectedIM = new[, ] { // Values recorded from master branch - imMS1, imFragment, imWindow { 26.47, 26.63, 1.06 }, { 25.65, 25.65, 1.03 }, { 28.75, 28.92, 1.15 }, { 28.26, 28.26, 1.13 }, { 22.87, 22.87, 0.91 }, { 27.77, 27.77, 1.11 }, { 24.51, 24.67, 0.98 }, { 29.41, 29.57, 1.18 }, { 22.22, 22.38, 0.89 }, { 25.81, 26.14, 1.03 }, { 22.71, 22.87, 0.91 }, { 23.36, 23.36, 0.93 }, { 27.77, 27.77, 1.11 }, { 28.43, 28.59, 1.14 }, { 29.41, 27.94, 1.18 }, { 24.02, 24.18, 0.96 }, { 27.77, 27.94, 1.11 }, { 25, 24.83, 1 }, { 30.39, 30.55, 1.22 } }; double lastMz = -1; var colMz = FindDocumentGridColumn(documentGrid, "Precursor.Mz"); var colFragment = FindDocumentGridColumn(documentGrid, "FragmentIon"); var precursorIndex = -1; for (var row = 0; row < SkylineWindow.Document.MoleculeTransitions.Count(); row++) { if (IsRecordMode) { Console.Write(@"{"); } var isFragment = false; RunUI(() => { var mz = (double)documentGrid.DataGridView.Rows[row].Cells[colMz.Index].Value; if (mz != lastMz) { lastMz = mz; precursorIndex++; } var fragmentName = documentGrid.DataGridView.Rows[row].Cells[colFragment.Index].Value.ToString(); isFragment = fragmentName.StartsWith("y") || fragmentName.StartsWith("b"); }); var unfilteredReplicate = row % 2 == 0; var expectedPrecursorIM = unfilteredReplicate ? null : (double?)expectedIM[precursorIndex, 0]; var expectedFragmentIM = unfilteredReplicate ? null : (double?)expectedIM[precursorIndex, isFragment ? 1 : 0]; var expectedWindow = unfilteredReplicate ? null : (double?)expectedIM[precursorIndex, 2]; var expectedUnits = IonMobilityFilter.IonMobilityUnitsL10NString(unfilteredReplicate ? eIonMobilityUnits.none : eIonMobilityUnits.drift_time_msec); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityMS1", row, expectedPrecursorIM, msg, IsRecordMode); CheckDocumentResultsGridFieldByName(documentGrid, "TransitionResult.IonMobilityFragment", row, expectedFragmentIM, msg, IsRecordMode); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityWindow", row, expectedWindow); CheckDocumentResultsGridFieldByName(documentGrid, "Chromatogram.ChromatogramIonMobility", row, expectedFragmentIM); CheckDocumentResultsGridFieldByName(documentGrid, "Chromatogram.ChromatogramIonMobilityExtractionWidth", row, expectedWindow); CheckDocumentResultsGridFieldByName(documentGrid, "Chromatogram.ChromatogramIonMobilityUnits", row, expectedUnits); if (IsRecordMode) { CheckDocumentResultsGridValuesRecordedCount = 0; // We're managing our own newlines Console.WriteLine(@"},"); } } // And clean up after ourselves RunUI(() => documentGrid.Close()); }
private void TestReports(string msg = null) { // Verify reports working for CCS var row = 0; var documentGrid = EnableDocumentGridIonMobilityResultsColumns(); var imPrecursor = 1.1732; CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityMS1", row, imPrecursor, msg); CheckDocumentResultsGridFieldByName(documentGrid, "TransitionResult.IonMobilityFragment", row, imPrecursor, msg); // Document is all precursors CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityUnits", row, IonMobilityFilter.IonMobilityUnitsL10NString(eIonMobilityUnits.inverse_K0_Vsec_per_cm2), msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityWindow", row, 0.12, msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.CollisionalCrossSection", row, 473.2742, msg); EnableDocumentGridColumns(documentGrid, Resources.ReportSpecList_GetDefaults_Peptide_RT_Results, SkylineWindow.Document.PeptideCount * SkylineWindow.Document.MeasuredResults.Chromatograms.Count); foreach (var rt in new[] { 14.35, 14.34, 14.33, 14.33, 14.15, 14.12, 14.11, 14.11, 14.63, 14.61, 14.61, 14.61, 14.75, 14.74, 14.72, 14.73, 14.06, 14.04, 14.03, 14.03, 14.43, 14.43, 14.42, 14.43, 14.36, 14.37, 14.35, 14.35, 14.31, 14.31, 14.29, 14.28, 14.48, 14.49, 14.47, 14.48, 14.69, 14.67, 14.67, 14.67, 14.61, 14.34, 14.34, 14.35, 14.25, 14.25, 14.22, 14.23, 14.37, 14.36, 14.35, 14.35, 14.51, 14.52, 14.5, 14.5, 14.24, 14.25, 14.22, 14.23, 14.81, 14.78, 14.78, 14.78, 14.63, 14.61, 14.61, 14.61, 14.48, 14.46, 14.46, 14.47, 14.52, 14.49, 14.49, 14.49, 14.67, 14.65, 14.65, 14.65, 14.46, 14.45, 14.45, 14.45, 14.44, 14.43, 14.42, 14.43, 14.24, 14.24, 14.25, 14.25, 14.48, 14.46, 14.45, 14.44, 14.19, 14.16, 14.16, 14.17, 14.38, 14.34, 14.34, 14.36, 14.88, 14.86, 14.86, 14.85, 14.22, 14.22, 14.21, 14.21, 14.19, 14.19, 14.18, 14.18, 14.11, 14.09, 14.09, 14.1, 14.72, 14.7, 14.71, 14.71, 14.64, 14.61, 14.62, 14.61, 14.12, 14.1, 14.1, 14.1, 14.23, 14.21, 14.2, 14.2 }) { CheckDocumentResultsGridFieldByName(documentGrid, "PeptideRetentionTime", row++, rt, msg, IsRecordMode); } // And clean up after ourselves RunUI(() => documentGrid.Close()); }
private void TestReports(int row, double expectedDtWindow, string msg = null) { // Verify reports working for CCS var documentGrid = EnableDocumentGridIonMobilityResultsColumns(); var imPrecursor = _testCase == 1 ? 18.43 : 23.50; CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityMS1", row, imPrecursor, msg); CheckDocumentResultsGridFieldByName(documentGrid, "TransitionResult.IonMobilityFragment", row, imPrecursor, msg); // Document is all precursor CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityUnits", row, IonMobilityFilter.IonMobilityUnitsL10NString(eIonMobilityUnits.drift_time_msec), msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityWindow", row, expectedDtWindow, msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.CollisionalCrossSection", row, _testCase == 1 ? 292.4 : 333.34, msg); // And clean up after ourselves RunUI(() => documentGrid.Close()); }
private void TestReports(string msg = null) { // Verify reports working for CCS var row = 0; var documentGrid = EnableDocumentGridIonMobilityResultsColumns(); var imPrecursor = 0.832; CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityMS1", row, imPrecursor, msg); CheckDocumentResultsGridFieldByName(documentGrid, "TransitionResult.IonMobilityFragment", row, imPrecursor, msg); // Document is all precursor CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityUnits", row, IonMobilityFilter.IonMobilityUnitsL10NString(eIonMobilityUnits.inverse_K0_Vsec_per_cm2), msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.IonMobilityWindow", row, 0.04, msg); CheckDocumentResultsGridFieldByName(documentGrid, "PrecursorResult.CollisionalCrossSection", row, 337.4821, msg); // And clean up after ourselves RunUI(() => documentGrid.Close()); }