public override IonMobilityAndCCS GetIonMobilityInfo(LibKey key, ChargeRegressionLine regressionLine) { if (_database != null) { return(_database.GetDriftTimeInfo(key, regressionLine)); } return(null); }
public override DriftTimeInfo GetDriftTimeInfo(String seq, ChargeRegressionLine regressionLine) { if (_database != null) { return(_database.GetDriftTimeInfo(seq, regressionLine)); } return(null); }
// TODO(bspratt) either upgrade this for all ion mobility types, or rip out this code altogether public IonMobilityAndCCS GetDriftTimeInfo(LibKey key, ChargeRegressionLine regression) { DbIonMobilityPeptide pep; if (DictLibrary.TryGetValue(key, out pep)) { return(IonMobilityAndCCS.GetIonMobilityAndCCS(IonMobilityValue.GetIonMobilityValue(regression.GetY(pep.CollisionalCrossSection), eIonMobilityUnits.drift_time_msec), pep.CollisionalCrossSection, pep.HighEnergyDriftTimeOffsetMsec)); } return(null); }
public DriftTimeInfo GetDriftTimeInfo(string seq, ChargeRegressionLine regression) { DbIonMobilityPeptide pep; if (DictLibrary.TryGetValue(seq, out pep)) { return(new DriftTimeInfo(regression.GetY(pep.CollisionalCrossSection), pep.HighEnergyDriftTimeOffsetMsec)); } return(null); }
protected override void DoTest() { // Lest we get "To export a scheduled method, you must first choose a retention time predictor in Peptide Settings / Prediction, or import results for all peptides in the document." TestSmallMolecules = false; // Skyline Collision Energy Optimization RunUI(() => SkylineWindow.OpenFile(GetTestPath("CE_Vantage_15mTorr.sky"))); // Not L10N if (AsSmallMolecules) { var doc = WaitForDocumentLoaded(); var refine = new RefinementSettings(); SkylineWindow.SetDocument(refine.ConvertToSmallMolecules(doc), doc); } // Deriving a New Linear Equation, p. 2 var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); var editList = ShowDialog <EditListDlg <SettingsListBase <CollisionEnergyRegression>, CollisionEnergyRegression> > (transitionSettingsUI.EditCEList); RunUI(() => editList.SelectItem("Thermo")); // Not L10N EditCEDlg editItem = ShowDialog <EditCEDlg>(editList.EditItem); PauseForScreenShot <EditCEDlg>("Edit Collision Energy Equation form", 3); ChargeRegressionLine regressionLine2 = new ChargeRegressionLine(2, 0.034, 3.314); ChargeRegressionLine regressionLine3 = new ChargeRegressionLine(3, 0.044, 3.314); CheckRegressionLines(new[] { regressionLine2, regressionLine3 }, editItem.Regression.Conversions); RunUI(() => { editItem.DialogResult = DialogResult.OK; editList.DialogResult = DialogResult.Cancel; transitionSettingsUI.DialogResult = DialogResult.Cancel; }); WaitForClosedForm(transitionSettingsUI); // Measuring Retention Times for Method Scheduling, p. 3 { var exportMethodDlg = ShowDialog <ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List)); RunUI(() => { exportMethodDlg.InstrumentType = ExportInstrumentType.THERMO; exportMethodDlg.ExportStrategy = ExportStrategy.Single; exportMethodDlg.OptimizeType = ExportOptimize.NONE; exportMethodDlg.MethodType = ExportMethodType.Standard; }); PauseForScreenShot <ExportMethodDlg.TransitionListView>("Export Transition List form", 4); RunUI(() => exportMethodDlg.OkDialog(GetTestPath("CE_Vantage_15mTorr_unscheduled.csv"))); // Not L10N WaitForClosedForm(exportMethodDlg); } string filePathTemplate = GetTestPath("CE_Vantage_15mTorr_unscheduled.csv"); // Not L10N CheckTransitionList(filePathTemplate, 1, 6); const string unscheduledName = "Unscheduled"; // Not L10N RunDlg <ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg => { importResultsDlg.RadioAddNewChecked = true; var path = new[] { new KeyValuePair <string, MsDataFileUri[]>(unscheduledName, // This is not actually a valid file path (missing OptimizeCE) // but Skyline should correctly find the file in the same folder // as the document. new[] { MsDataFileUri.Parse(GetTestPath("CE_Vantage_15mTorr_unscheduled" + ExtThermoRaw)) }) }; // Not L10N importResultsDlg.NamedPathSets = path; importResultsDlg.OkDialog(); }); WaitForCondition(5 * 60 * 1000, () => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 5 minutes AssertEx.IsDocumentState(SkylineWindow.Document, null, 7, 27, 30, 120); var docUnsched = SkylineWindow.Document; AssertResult.IsDocumentResultsState(SkylineWindow.Document, unscheduledName, docUnsched.MoleculeCount, docUnsched.MoleculeTransitionGroupCount, 0, docUnsched.MoleculeTransitionCount - 1, 0); RunUI(() => { SkylineWindow.ExpandProteins(); SkylineWindow.ExpandPeptides(); }); PauseForScreenShot("Main Skyline window", 5); // Creating Optimization Methods, p. 5 { var exportMethodDlg = ShowDialog <ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List)); RunUI(() => { exportMethodDlg.InstrumentType = ExportInstrumentType.THERMO; exportMethodDlg.ExportStrategy = ExportStrategy.Buckets; exportMethodDlg.MaxTransitions = 110; exportMethodDlg.IgnoreProteins = true; exportMethodDlg.OptimizeType = ExportOptimize.CE; exportMethodDlg.MethodType = ExportMethodType.Scheduled; }); PauseForScreenShot <ExportMethodDlg.TransitionListView>("Export Transition List form", 6); RunUI(() => exportMethodDlg.OkDialog(GetTestPath("CE_Vantage_15mTorr.csv"))); // Not L10N WaitForClosedForm(exportMethodDlg); } string filePathTemplate1 = GetTestPath("CE_Vantage_15mTorr_000{0}.csv"); // Not L10N CheckTransitionList(filePathTemplate1, 5, 9); var filePath = GetTestPath("CE_Vantage_15mTorr_0001.csv"); // Not L10N CheckCEValues(filePath, 11); // Analyze Optimization Data, p. 7 RunDlg <ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg => { importResultsDlg.RadioAddNewChecked = true; importResultsDlg.OptimizationName = ExportOptimize.CE; importResultsDlg.NamedPathSets = DataSourceUtil.GetDataSourcesInSubdirs(TestFilesDirs[0].FullPath).ToArray(); importResultsDlg.NamedPathSets[0] = new KeyValuePair <string, MsDataFileUri[]>("Optimize CE", importResultsDlg.NamedPathSets[0].Value.Take(5).ToArray()); // Not L10N importResultsDlg.OkDialog(); }); RunUI(() => { SkylineWindow.ShowSingleTransition(); SkylineWindow.AutoZoomBestPeak(); SkylineWindow.ShowPeakAreaReplicateComparison(); }); WaitForDocumentLoaded(15 * 60 * 1000); // 10 minutes if (AsSmallMolecules) { return; // Too peptide-centric from here to end of test } FindNode("IHGFDLAAINLQR"); RestoreViewOnScreen(8); PauseForScreenShot("Main Skyline window", 8); // p. 8 // Not L10N RemovePeptide("EGIHAQQK"); FindNode("IDALNENK"); RunUI(() => SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_percent_view)); PauseForScreenShot("Main Skyline window", 9); RunUI(SkylineWindow.EditDelete); RemovePeptide("LICDNTHITK"); // Creating a New Equation for CE, p. 9 var transitionSettingsUI1 = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); var editCEDlg1 = ShowDialog <EditListDlg <SettingsListBase <CollisionEnergyRegression>, CollisionEnergyRegression> >(transitionSettingsUI1.EditCEList); var addItem = ShowDialog <EditCEDlg>(editCEDlg1.AddItem); RunUI(() => { addItem.RegressionName = "Thermo Vantage Tutorial"; // Not L10N addItem.UseCurrentData(); }); var graphRegression = ShowDialog <GraphRegression>(addItem.ShowGraph); PauseForScreenShot <GraphRegression>("Collision Energy Regression graphs", 10); var graphDatas = graphRegression.RegressionGraphDatas.ToArray(); Assert.AreEqual(2, graphDatas.Length); ChargeRegressionLine regressionLine21 = new ChargeRegressionLine(2, 0.0305, 2.5061); ChargeRegressionLine regressionLine31 = new ChargeRegressionLine(3, 0.0397, 1.4217); var expectedRegressions = new[] { regressionLine21, regressionLine31 }; CheckRegressionLines(expectedRegressions, new[] { new ChargeRegressionLine(2, Math.Round(graphDatas[0].RegressionLine.Slope, 4), Math.Round(graphDatas[0].RegressionLine.Intercept, 4)), new ChargeRegressionLine(3, Math.Round(graphDatas[1].RegressionLine.Slope, 4), Math.Round(graphDatas[1].RegressionLine.Intercept, 4)), }); RunUI(graphRegression.CloseDialog); WaitForClosedForm(graphRegression); RunUI(addItem.OkDialog); WaitForClosedForm(addItem); RunUI(editCEDlg1.OkDialog); WaitForClosedForm(editCEDlg1); RunUI(transitionSettingsUI1.OkDialog); WaitForClosedForm(transitionSettingsUI1); // Optimizing Each Transition, p. 10 RunDlg <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI, transitionSettingsUI2 => { transitionSettingsUI2.UseOptimized = true; transitionSettingsUI2.OptimizeType = OptimizedMethodType.Transition.GetLocalizedString(); transitionSettingsUI2.OkDialog(); }); RunDlg <ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List), exportMethodDlg => { exportMethodDlg.ExportStrategy = ExportStrategy.Single; exportMethodDlg.OkDialog(GetTestPath("CE_Vantage_15mTorr_optimized.csv")); // Not L10N }); var filePathTemplate2 = GetTestPath("CE_Vantage_15mTorr_optimized.csv"); // Not L10N CheckTransitionList(filePathTemplate2, 1, 9); RunUI(() => SkylineWindow.SaveDocument()); WaitForConditionUI(() => !SkylineWindow.Dirty); }
public DriftTimeInfo GetDriftTimeInfo(string seq, ChargeRegressionLine regression) { DbIonMobilityPeptide pep; if (DictLibrary.TryGetValue(seq, out pep)) return new DriftTimeInfo(regression.GetY(pep.CollisionalCrossSection), pep.HighEnergyDriftTimeOffsetMsec); return null; }
public static void CheckRegressionLines(ChargeRegressionLine[] lines1, ChargeRegressionLine[] lines2) { Assert.IsTrue(ArrayUtil.EqualsDeep(lines1, lines2)); }
protected override void DoTest() { // Lest we get "To export a scheduled method, you must first choose a retention time predictor in Peptide Settings / Prediction, or import results for all peptides in the document." TestSmallMolecules = false; // Skyline Collision Energy Optimization RunUI(() => SkylineWindow.OpenFile(GetTestPath("CE_Vantage_15mTorr.sky"))); // Not L10N if (AsSmallMolecules) { var doc = WaitForDocumentLoaded(); var refine = new RefinementSettings(); SkylineWindow.SetDocument(refine.ConvertToSmallMolecules(doc), doc); } // Deriving a New Linear Equation, p. 2 var transitionSettingsUI = ShowDialog<TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); var editList = ShowDialog<EditListDlg<SettingsListBase<CollisionEnergyRegression>, CollisionEnergyRegression>> (transitionSettingsUI.EditCEList); RunUI(() => editList.SelectItem("Thermo")); // Not L10N EditCEDlg editItem = ShowDialog<EditCEDlg>(editList.EditItem); PauseForScreenShot<EditCEDlg>("Edit Collision Energy Equation form", 3); ChargeRegressionLine regressionLine2 = new ChargeRegressionLine(2, 0.034, 3.314); ChargeRegressionLine regressionLine3 = new ChargeRegressionLine(3, 0.044, 3.314); CheckRegressionLines(new[] {regressionLine2, regressionLine3}, editItem.Regression.Conversions); RunUI(() => { editItem.DialogResult = DialogResult.OK; editList.DialogResult = DialogResult.Cancel; transitionSettingsUI.DialogResult = DialogResult.Cancel; }); WaitForClosedForm(transitionSettingsUI); // Measuring Retention Times for Method Scheduling, p. 3 { var exportMethodDlg = ShowDialog<ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List)); RunUI(() => { exportMethodDlg.InstrumentType = ExportInstrumentType.THERMO; exportMethodDlg.ExportStrategy = ExportStrategy.Single; exportMethodDlg.OptimizeType = ExportOptimize.NONE; exportMethodDlg.MethodType = ExportMethodType.Standard; }); PauseForScreenShot<ExportMethodDlg.TransitionListView>("Export Transition List form", 4); RunUI(() => exportMethodDlg.OkDialog(GetTestPath("CE_Vantage_15mTorr_unscheduled.csv"))); // Not L10N WaitForClosedForm(exportMethodDlg); } string filePathTemplate = GetTestPath("CE_Vantage_15mTorr_unscheduled.csv"); // Not L10N CheckTransitionList(filePathTemplate, 1, 6); const string unscheduledName = "Unscheduled"; // Not L10N RunDlg<ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg => { importResultsDlg.RadioAddNewChecked = true; var path = new[] {new KeyValuePair<string, MsDataFileUri[]>(unscheduledName, // This is not actually a valid file path (missing OptimizeCE) // but Skyline should correctly find the file in the same folder // as the document. new[] { MsDataFileUri.Parse(GetTestPath("CE_Vantage_15mTorr_unscheduled" + ExtThermoRaw))})}; // Not L10N importResultsDlg.NamedPathSets = path; importResultsDlg.OkDialog(); }); WaitForCondition(5*60*1000, () => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 5 minutes AssertEx.IsDocumentState(SkylineWindow.Document, null, 7, 27, 30, 120); var docUnsched = SkylineWindow.Document; AssertResult.IsDocumentResultsState(SkylineWindow.Document, unscheduledName, docUnsched.MoleculeCount, docUnsched.MoleculeTransitionGroupCount, 0, docUnsched.MoleculeTransitionCount - 1, 0); RunUI(() => { SkylineWindow.ExpandProteins(); SkylineWindow.ExpandPeptides(); }); PauseForScreenShot("Main Skyline window", 5); // Creating Optimization Methods, p. 5 { var exportMethodDlg = ShowDialog<ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List)); RunUI(() => { exportMethodDlg.InstrumentType = ExportInstrumentType.THERMO; exportMethodDlg.ExportStrategy = ExportStrategy.Buckets; exportMethodDlg.MaxTransitions = 110; exportMethodDlg.IgnoreProteins = true; exportMethodDlg.OptimizeType = ExportOptimize.CE; exportMethodDlg.MethodType = ExportMethodType.Scheduled; }); PauseForScreenShot<ExportMethodDlg.TransitionListView>("Export Transition List form", 6); RunUI(() => exportMethodDlg.OkDialog(GetTestPath("CE_Vantage_15mTorr.csv"))); // Not L10N WaitForClosedForm(exportMethodDlg); } string filePathTemplate1 = GetTestPath("CE_Vantage_15mTorr_000{0}.csv"); // Not L10N CheckTransitionList(filePathTemplate1, 5, 9); var filePath = GetTestPath("CE_Vantage_15mTorr_0001.csv"); // Not L10N CheckCEValues(filePath, 11); // Analyze Optimization Data, p. 7 RunDlg<ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg => { importResultsDlg.RadioAddNewChecked = true; importResultsDlg.OptimizationName = ExportOptimize.CE; importResultsDlg.NamedPathSets = DataSourceUtil.GetDataSourcesInSubdirs(TestFilesDirs[0].FullPath).ToArray(); importResultsDlg.NamedPathSets[0] = new KeyValuePair<string, MsDataFileUri[]>("Optimize CE", importResultsDlg.NamedPathSets[0].Value.Take(5).ToArray()); // Not L10N importResultsDlg.OkDialog(); }); RunUI(() => { SkylineWindow.ShowSingleTransition(); SkylineWindow.AutoZoomBestPeak(); SkylineWindow.ShowPeakAreaReplicateComparison(); }); if (AsSmallMolecules) { return; // Too peptide-centric from here to end of test } FindNode("IHGFDLAAINLQR"); RestoreViewOnScreen(8); WaitForCondition(15*60*1000, () => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 10 minutes PauseForScreenShot("Main Skyline window", 8); // p. 8 // Not L10N RemovePeptide("EGIHAQQK"); FindNode("IDALNENK"); RunUI(() => SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_percent_view)); PauseForScreenShot("Main Skyline window", 9); RunUI(SkylineWindow.EditDelete); RemovePeptide("LICDNTHITK"); // Creating a New Equation for CE, p. 9 var transitionSettingsUI1 = ShowDialog<TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); var editCEDlg1 = ShowDialog<EditListDlg<SettingsListBase<CollisionEnergyRegression>, CollisionEnergyRegression>>(transitionSettingsUI1.EditCEList); var addItem = ShowDialog<EditCEDlg>(editCEDlg1.AddItem); RunUI(() => { addItem.RegressionName = "Thermo Vantage Tutorial"; // Not L10N addItem.UseCurrentData(); }); var graphRegression = ShowDialog<GraphRegression>(addItem.ShowGraph); PauseForScreenShot<GraphRegression>("Collision Energy Regression graphs", 10); var graphDatas = graphRegression.RegressionGraphDatas.ToArray(); Assert.AreEqual(2, graphDatas.Length); ChargeRegressionLine regressionLine21 = new ChargeRegressionLine(2, 0.0305, 2.5061); ChargeRegressionLine regressionLine31 = new ChargeRegressionLine(3, 0.0397, 1.4217); var expectedRegressions = new[] {regressionLine21, regressionLine31}; CheckRegressionLines(expectedRegressions, new[] { new ChargeRegressionLine(2, Math.Round(graphDatas[0].RegressionLine.Slope, 4), Math.Round(graphDatas[0].RegressionLine.Intercept, 4)), new ChargeRegressionLine(3, Math.Round(graphDatas[1].RegressionLine.Slope, 4), Math.Round(graphDatas[1].RegressionLine.Intercept, 4)), }); RunUI(graphRegression.CloseDialog); WaitForClosedForm(graphRegression); RunUI(addItem.OkDialog); WaitForClosedForm(addItem); RunUI(editCEDlg1.OkDialog); WaitForClosedForm(editCEDlg1); RunUI(transitionSettingsUI1.OkDialog); WaitForClosedForm(transitionSettingsUI1); // Optimizing Each Transition, p. 10 RunDlg<TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI, transitionSettingsUI2 => { transitionSettingsUI2.UseOptimized = true; transitionSettingsUI2.OptimizeType = OptimizedMethodType.Transition.GetLocalizedString(); transitionSettingsUI2.OkDialog(); }); RunDlg<ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List), exportMethodDlg => { exportMethodDlg.ExportStrategy = ExportStrategy.Single; exportMethodDlg.OkDialog(GetTestPath("CE_Vantage_15mTorr_optimized.csv")); // Not L10N }); var filePathTemplate2 = GetTestPath("CE_Vantage_15mTorr_optimized.csv"); // Not L10N CheckTransitionList(filePathTemplate2, 1, 9); RunUI(() => SkylineWindow.SaveDocument()); WaitForConditionUI(() => !SkylineWindow.Dirty); }
public override DriftTimeInfo GetDriftTimeInfo(String seq, ChargeRegressionLine regressionLine) { if (_database != null) return _database.GetDriftTimeInfo(seq, regressionLine); return null; }