protected override void DoTest() { // Skyline Targeted Method Refinement var folderMethodRefine = UseRawFiles ? "MethodRefine" : "MethodRefineMzml"; // Not L10N // Results Data, p. 2 var doc = SkylineWindow.Document; RunUI(() => SkylineWindow.OpenFile(TestFilesDirs[1].GetTestPath(folderMethodRefine + @"\WormUnrefined.sky"))); // Not L10N WaitForDocumentChangeLoaded(doc); RunUI(() => { // Adjust font sizes for better screen shots Settings.Default.ChromatogramFontSize = 14; Settings.Default.SpectrumFontSize = 14; SkylineWindow.ChangeTextSize(TreeViewMS.LRG_TEXT_FACTOR); SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SequenceTree.Nodes[0].Nodes[0]; SkylineWindow.AutoZoomBestPeak(); // TODO: Mention this in the tutorial SkylineWindow.Size = new Size(1160, 660); Assert.AreEqual(SkylineWindow.SequenceTree.SelectedNode.Text, "YLGAYLLATLGGNASPSAQDVLK"); // Not L10N }); PauseForScreenShot("Main window", 2); // TODO: Update tutorial to view b-ions. RunUI(() => SkylineWindow.GraphSpectrumSettings.ShowBIons = true); // Unrefined Methods, p. 3 { var exportDlg = ShowDialog <ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List)); RunUI(() => { exportDlg.ExportStrategy = ExportStrategy.Buckets; exportDlg.MethodType = ExportMethodType.Standard; exportDlg.OptimizeType = ExportOptimize.NONE; exportDlg.MaxTransitions = 59; }); PauseForScreenShot("Export Transition List form", 3); // Not L10N OkDialog(exportDlg, () => exportDlg.OkDialog(TestFilesDirs[1].GetTestPath(folderMethodRefine + @"\worm"))); // Not L10N } for (int i = 1; i < 10; i++) { Assert.IsTrue(File.Exists(TestFilesDirs[1].GetTestPath(folderMethodRefine + @"\worm_000" + i + TextUtil.EXT_CSV))); // Not L10N } for (int i = 10; i < 40; i++) { Assert.IsTrue(File.Exists(TestFilesDirs[1].GetTestPath(folderMethodRefine + @"\worm_00" + i + TextUtil.EXT_CSV))); // Not L10N } // Importing Multiple Injection Data, p. 4 Assert.IsTrue(SkylineWindow.Document.Settings.HasResults); RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, manageResultsDlg => { manageResultsDlg.RemoveReplicates(); Assert.AreEqual(manageResultsDlg.Chromatograms.ToArray().Length, 0); manageResultsDlg.OkDialog(); }); RunUI(() => SkylineWindow.SaveDocument()); Assert.IsFalse(SkylineWindow.Document.Settings.HasResults); const string replicateName = "Unrefined"; // Not L10N RunDlg <ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg => { importResultsDlg.RadioAddNewChecked = true; var namedPathSets = DataSourceUtil.GetDataSourcesInSubdirs(TestFilesDirs[0].FullPath).ToArray(); importResultsDlg.NamedPathSets = new[] { new KeyValuePair <string, MsDataFileUri[]>(replicateName, namedPathSets[0].Value.Take(15).ToArray()) }; importResultsDlg.OkDialog(); }); WaitForOpenForm <AllChromatogramsGraph>(); // To make the AllChromatogramsGraph form accessible to the SkylineTester forms tab PauseForScreenShot <AllChromatogramsGraph>("Loading Chromatograms: Take screenshot at about 25% loaded...", 5); WaitForCondition(15 * 60 * 1000, () => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 15 minutes Assert.IsTrue(SkylineWindow.Document.Settings.HasResults); Assert.AreEqual(15, SkylineWindow.Document.Settings.MeasuredResults.CachedFilePaths.ToArray().Length); RunDlg <ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg => { importResultsDlg.RadioAddExistingChecked = true; var namedPathSets = DataSourceUtil.GetDataSourcesInSubdirs(TestFilesDirs[0].FullPath).ToArray(); importResultsDlg.NamedPathSets = new[] { new KeyValuePair <string, MsDataFileUri[]>(replicateName, namedPathSets[0].Value.Skip(15).ToArray()) }; importResultsDlg.OkDialog(); }); WaitForCondition(20 * 60 * 1000, () => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 15 minutes Assert.AreEqual(39, SkylineWindow.Document.Settings.MeasuredResults.CachedFilePaths.ToArray().Length); RunUI(SkylineWindow.AutoZoomNone); RestoreViewOnScreen(7); PauseForScreenShot("Chromatogram graph metafile", 7); // Simple Manual Refinement, p. 6 int startingNodeCount = SkylineWindow.SequenceTree.Nodes[0].GetNodeCount(false); Assert.AreEqual("YLGAYLLATLGGNASPSAQDVLK", SkylineWindow.SequenceTree.Nodes[0].Nodes[0].Text); // Not L10N RunUI(() => { SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SequenceTree.Nodes[0].Nodes[0]; SkylineWindow.AutoZoomNone(); SkylineWindow.AutoZoomBestPeak(); SkylineWindow.EditDelete(); SkylineWindow.ShowRTLinearRegressionGraph(); }); Assert.AreEqual(SkylineWindow.SequenceTree.Nodes[0].GetNodeCount(false), startingNodeCount - 1); Assert.AreEqual("VLEAGGLDCDMENANSVVDALK", SkylineWindow.SequenceTree.Nodes[0].Nodes[0].Text); // Not L10N PauseForScreenShot("Retention Times Regression plot metafile", 8); RunDlg <RegressionRTThresholdDlg>(SkylineWindow.ShowRegressionRTThresholdDlg, rtThresholdDlg => { rtThresholdDlg.Threshold = 0.95; rtThresholdDlg.OkDialog(); }); WaitForConditionUI(() => SkylineWindow.RTGraphController.RegressionRefined != null); WaitForGraphs(); PauseForScreenShot("Retention Times Regression plot metafile with 0.95 threshold", 9); // Not L10N TestRTResidualsSwitch(); RunDlg <EditRTDlg>(SkylineWindow.CreateRegression, editRTDlg => editRTDlg.OkDialog()); RunUI(() => SkylineWindow.ShowGraphRetentionTime(false)); RunUI(SkylineWindow.AutoZoomNone); PauseForScreenShot("Chromatogram graph metafile zoomed out", 10); // Not L10N // Missing Data, p. 10 RunUI(() => { SkylineWindow.RTGraphController.SelectPeptide(SkylineWindow.Document.GetPathTo(1, 163)); Assert.AreEqual("YLAEVASEDR", SkylineWindow.SequenceTree.SelectedNode.Text); // Not L10N }); RestoreViewOnScreen(11); // Restoring the view changes the selection RunUI(SkylineWindow.CollapsePeptides); FindNode("YLAEVASEDR"); RunUI(() => SkylineWindow.SequenceTree.TopNode = SkylineWindow.SequenceTree.Nodes[0].Nodes[153]); PauseForScreenShot("Targets view clipped from the main window", 11); RunUI(() => { var nodePep = (PeptideDocNode)((SrmTreeNode)SkylineWindow.SequenceTree.SelectedNode).Model; Assert.AreEqual(null, nodePep.GetPeakCountRatio( SkylineWindow.SequenceTree.GetDisplayResultsIndex(nodePep))); SkylineWindow.SequenceTree.SelectedPath = SkylineWindow.Document.GetPathTo(1, 157); Assert.AreEqual("VTVVDDQSVILK", SkylineWindow.SequenceTree.SelectedNode.Text); }); WaitForGraphs(); RunUI(() => { SkylineWindow.ActivateReplicate("Unrefined"); SkylineWindow.AutoZoomNone(); }); PauseForScreenShot("Unrefined chromatogram graph page clipped from main window", 12); // Not L10N // foreach (var peptideDocNode in SkylineWindow.Document.Peptides) // { // var nodeGroup = ((TransitionGroupDocNode)peptideDocNode.Children[0]); // Console.WriteLine("{0} - {1}", peptideDocNode.Peptide.Sequence, // nodeGroup.GetDisplayText(SkylineWindow.SequenceTree.GetDisplaySettings(peptideDocNode))); // } // Console.WriteLine("---------------------------------"); RunUI(() => { var graphChrom = SkylineWindow.GetGraphChrom("Unrefined"); // Not L10N Assert.AreEqual(2, graphChrom.Files.Count); SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SequenceTree.Nodes[0]; // Picking Measurable Peptides and Transitions, p. 12 SkylineWindow.ExpandPeptides(); SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SequenceTree.Nodes[0].Nodes[0]; }); RunUI(SkylineWindow.AutoZoomBestPeak); RestoreViewOnScreen(13); RunUI(() => SkylineWindow.ShowGraphSpectrum(false)); PauseForScreenShot("Targets view clipped from the main window and chromatogram graph metafile", 13); RunUI(() => SkylineWindow.ShowGraphSpectrum(true)); PauseForScreenShot("Library Match plot metafile", 14); RunUI(() => { SkylineWindow.ShowGraphSpectrum(false); SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Transitions, 0); SkylineWindow.SelectedNode.Expand(); SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Molecules, 0); }); PauseForScreenShot("Targetes view clipped from the main window", 14); // Not L10N RunUI(() => { double dotpExpect = Math.Round(Statistics.AngleToNormalizedContrastAngle(0.78), 2); // 0.57 AssertEx.Contains(SkylineWindow.SequenceTree.SelectedNode.Nodes[0].Text, dotpExpect.ToString(LocalizationHelper.CurrentCulture)); SkylineWindow.EditDelete(); dotpExpect = 0.34; // Math.Round(Statistics.AngleToNormalizedContrastAngle(0.633), 2); // 0.44 SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SequenceTree.Nodes[0].Nodes[0]; AssertEx.Contains(SkylineWindow.SequenceTree.SelectedNode.Nodes[0].Text, dotpExpect.ToString(LocalizationHelper.CurrentCulture)); SkylineWindow.EditDelete(); PeptideTreeNode nodePep; for (int i = 0; i < 2; i++) { nodePep = (PeptideTreeNode)SkylineWindow.SequenceTree.Nodes[0].Nodes[i]; nodePep.ExpandAll(); foreach (TransitionTreeNode nodeTran in nodePep.Nodes[0].Nodes) { TransitionDocNode nodeTranDoc = (TransitionDocNode)nodeTran.Model; Assert.AreEqual((int)SequenceTree.StateImageId.peak, TransitionTreeNode.GetPeakImageIndex(nodeTranDoc, (PeptideDocNode)nodePep.Model, SkylineWindow.SequenceTree)); var resultsIndex = SkylineWindow.SequenceTree.GetDisplayResultsIndex(nodePep); var rank = nodeTranDoc.GetPeakRank(resultsIndex); if (rank == null || rank > 3) { SkylineWindow.SequenceTree.SelectedNode = nodeTran; } SkylineWindow.SequenceTree.KeysOverride = Keys.Control; } } nodePep = (PeptideTreeNode)SkylineWindow.SequenceTree.Nodes[0].Nodes[2]; nodePep.ExpandAll(); foreach (TransitionTreeNode nodeTran in nodePep.Nodes[0].Nodes) { TransitionDocNode nodeTranDoc = (TransitionDocNode)nodeTran.Model; Assert.AreEqual((int)SequenceTree.StateImageId.peak, TransitionTreeNode.GetPeakImageIndex(nodeTranDoc, (PeptideDocNode)nodePep.Model, SkylineWindow.SequenceTree)); var name = ((TransitionDocNode)nodeTran.Model).FragmentIonName; if (!(name == "y11" || name == "y13" || name == "y14")) // Not L10N { SkylineWindow.SequenceTree.SelectedNode = nodeTran; } SkylineWindow.SequenceTree.KeysOverride = Keys.Control; } SkylineWindow.SequenceTree.KeysOverride = Keys.None; SkylineWindow.EditDelete(); for (int i = 0; i < 3; i++) { Assert.IsTrue(SkylineWindow.SequenceTree.Nodes[0].Nodes[i].Nodes[0].Nodes.Count == 3); } SkylineWindow.AutoZoomNone(); SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Transitions, 5); SkylineWindow.Size = new Size(722, 449); }); RunUI(SkylineWindow.AutoZoomBestPeak); RestoreViewOnScreen(15); PauseForScreenShot("Targetes view clipped from main window and chromatogram graph metafile", 15); // Automated Refinement, p. 16 RunDlg <RefineDlg>(SkylineWindow.ShowRefineDlg, refineDlg => { refineDlg.MaxTransitionPeakRank = 3; refineDlg.PreferLargerIons = true; refineDlg.RemoveMissingResults = true; refineDlg.RTRegressionThreshold = 0.95; refineDlg.DotProductThreshold = Statistics.AngleToNormalizedContrastAngle(0.95); // Convert from original cos(angle) dot-product refineDlg.OkDialog(); }); WaitForCondition(() => SkylineWindow.Document.PeptideCount < 73); // foreach (var peptideDocNode in SkylineWindow.Document.Peptides) // { // var nodeGroup = ((TransitionGroupDocNode) peptideDocNode.Children[0]); // Console.WriteLine("{0} - {1}", peptideDocNode.Peptide.Sequence, // nodeGroup.GetDisplayText(SkylineWindow.SequenceTree.GetDisplaySettings(peptideDocNode))); // } RunUI(() => { Assert.AreEqual(72, SkylineWindow.Document.PeptideCount); Assert.AreEqual(216, SkylineWindow.Document.PeptideTransitionCount); SkylineWindow.CollapsePeptides(); SkylineWindow.Undo(); }); RunDlg <RefineDlg>(SkylineWindow.ShowRefineDlg, refineDlg => { refineDlg.MaxTransitionPeakRank = 6; refineDlg.RemoveMissingResults = true; refineDlg.RTRegressionThreshold = 0.90; refineDlg.DotProductThreshold = Statistics.AngleToNormalizedContrastAngle(0.90); // Convert from original cos(angle) dot-product refineDlg.OkDialog(); }); WaitForCondition(() => SkylineWindow.Document.PeptideCount < 120); RunUI(() => { Assert.AreEqual(113, SkylineWindow.Document.PeptideCount); // Scheduling for Efficient Acquisition, p. 17 SkylineWindow.Undo(); }); RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, mResults => { Assert.AreEqual(1, mResults.Chromatograms.Count()); mResults.SelectedChromatograms = SkylineWindow.Document.Settings.MeasuredResults.Chromatograms.Where( set => Equals("Unrefined", set.Name)); // Not L10N mResults.RemoveReplicates(); Assert.AreEqual(0, mResults.Chromatograms.Count()); mResults.OkDialog(); }); var importResultsDlg0 = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); RunUI(() => { SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SequenceTree.Nodes[0]; importResultsDlg0.RadioCreateMultipleMultiChecked = true; importResultsDlg0.NamedPathSets = DataSourceUtil.GetDataSourcesInSubdirs(Path.Combine(TestFilesDirs[1].FullPath, Path.GetFileName(TestFilesDirs[1].FullPath) ?? string.Empty)).ToArray(); }); var importResultsNameDlg = ShowDialog <ImportResultsNameDlg>(importResultsDlg0.OkDialog); RunUI(importResultsNameDlg.NoDialog); WaitForCondition(15 * 60 * 1000, () => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 15 minutes var docCurrent = SkylineWindow.Document; RunUI(SkylineWindow.RemoveMissingResults); WaitForDocumentChange(docCurrent); Assert.AreEqual(86, SkylineWindow.Document.PeptideCount); Assert.AreEqual(255, SkylineWindow.Document.PeptideTransitionCount); TestRTResidualsSwitch(); // Measuring Retention Times, p. 17 { var exportDlg = ShowDialog <ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List)); RunUI(() => exportDlg.MaxTransitions = 130); PauseForScreenShot <ExportMethodDlg.TransitionListView>("Export Transition List form", 18); OkDialog(exportDlg, () => exportDlg.OkDialog(TestFilesDirs[1].FullPath + "\\unscheduled")); // Not L10N } /////////////////////// // Reviewing Retention Time Runs, p. 18 RunUI(() => { SkylineWindow.ShowGraphSpectrum(false); SkylineWindow.ArrangeGraphsTiled(); SkylineWindow.AutoZoomNone(); SkylineWindow.AutoZoomBestPeak(); }); FindNode("FWEVISDEHGIQPDGTFK"); RunUI(() => SkylineWindow.Size = new Size(1060, 550)); RestoreViewOnScreen(19); PauseForScreenShot("Main window", 19); // Not L10N RunUI(() => SkylineWindow.ShowRTSchedulingGraph()); WaitForCondition(() => SkylineWindow.GraphRetentionTime != null); PauseForScreenShot("Retention Times - Scheduling graph metafile", 19); RestoreViewOnScreen(20); // Creating a Scheduled Transition List, p. 20 { var peptideSettingsUI = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); RunUI(() => { peptideSettingsUI.SelectedTab = PeptideSettingsUI.TABS.Prediction; peptideSettingsUI.TimeWindow = 4; }); PauseForScreenShot <PeptideSettingsUI.PredictionTab>("Peptide Settings - Prediction tab", 21); OkDialog(peptideSettingsUI, peptideSettingsUI.OkDialog); // Not L10N } var exportMethodDlg1 = ShowDialog <ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.List)); RunUI(() => { exportMethodDlg1.ExportStrategy = ExportStrategy.Single; exportMethodDlg1.MethodType = ExportMethodType.Scheduled; }); // TODO: Update tutorial to mention the scheduling options dialog. PauseForScreenShot("Export Transition List form", 22); // Not L10N RunDlg <SchedulingOptionsDlg>(() => exportMethodDlg1.OkDialog(TestFilesDirs[1].FullPath + "\\scheduled"), // Not L10N schedulingOptionsDlg => schedulingOptionsDlg.OkDialog()); WaitForClosedForm(exportMethodDlg1); // Reviewing Multi-Replicate Data, p. 22 RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, manageResultsDlg => { manageResultsDlg.RemoveAllReplicates(); manageResultsDlg.OkDialog(); }); var importResultsDlg1 = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); RunDlg <OpenDataSourceDialog>(() => importResultsDlg1.NamedPathSets = importResultsDlg1.GetDataSourcePathsFile(null), openDataSourceDialog => { openDataSourceDialog.SelectAllFileType(ExtThermoRaw); openDataSourceDialog.Open(); }); RunDlg <ImportResultsNameDlg>(importResultsDlg1.OkDialog, importResultsNameDlg0 => { importResultsNameDlg0.Prefix = "Scheduled_"; // Not L10N importResultsNameDlg0.YesDialog(); }); WaitForCondition(15 * 60 * 1000, () => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 15 minutes Assert.AreEqual(5, SkylineWindow.GraphChromatograms.Count(graphChrom => !graphChrom.IsHidden)); RunUI(() => { SkylineWindow.RemoveMissingResults(); SkylineWindow.ArrangeGraphsTiled(); SkylineWindow.ShowGraphRetentionTime(false); }); WaitForCondition(() => SkylineWindow.GraphRetentionTime.IsHidden); RunUI(() => { SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SequenceTree.Nodes[0].Nodes[0]; SkylineWindow.ShowRTReplicateGraph(); SkylineWindow.ShowPeakAreaReplicateComparison(); SkylineWindow.CollapsePeptides(); SkylineWindow.ShowChromatogramLegends(false); SkylineWindow.Size = new Size(1024, 768); }); RestoreViewOnScreen(24); WaitForGraphs(); PauseForScreenShot("Main window", 24); // Not L10N RunUI(() => SkylineWindow.SaveDocument()); RunUI(SkylineWindow.NewDocument); }
protected override void DoTest() { string skyFile = TestFilesDirs[0].GetTestPath(@"DriftTimePrediction\BSA-Training.sky"); RunUI(() => SkylineWindow.OpenFile(skyFile)); var document = WaitForDocumentLoaded(240 * 1000); // 4 minutes RunUI(() => SkylineWindow.Size = new Size(880, 560)); RestoreViewOnScreen(2); PauseForScreenShot("Document open - full window", 2); AssertEx.IsDocumentState(document, null, 1, 34, 38, 404); { var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(() => SkylineWindow.ShowTransitionSettingsUI(TransitionSettingsUI.TABS.FullScan)); PauseForScreenShot <TransitionSettingsUI.FullScanTab>("Full-scan settings", 3); RunUI(() => { Assert.AreEqual(FullScanPrecursorIsotopes.Count, transitionSettingsUI.PrecursorIsotopesCurrent); Assert.AreEqual(20 * 1000, transitionSettingsUI.PrecursorRes); Assert.AreEqual(FullScanMassAnalyzerType.tof, transitionSettingsUI.PrecursorMassAnalyzer); Assert.AreEqual(IsolationScheme.SpecialHandlingType.ALL_IONS, transitionSettingsUI.IsolationSchemeName); Assert.AreEqual(20 * 1000, transitionSettingsUI.ProductRes); Assert.AreEqual(FullScanMassAnalyzerType.tof, transitionSettingsUI.ProductMassAnalyzer); }); OkDialog(transitionSettingsUI, transitionSettingsUI.CancelDialog); } { var importResults = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); RunUI(() => importResults.ImportSimultaneousIndex = 2); PauseForScreenShot <ImportResultsDlg>("Import results form", 4); // Importing raw data from a sample which is a mixture of yeast and BSA var openDataSourceDialog = ShowDialog <OpenDataSourceDialog>(importResults.OkDialog); RunUI(() => { openDataSourceDialog.CurrentDirectory = new MsDataFilePath(DataPath); openDataSourceDialog.SelectAllFileType(".d"); }); PauseForScreenShot <OpenDataSourceDialog>("Import results files", 5); OkDialog(openDataSourceDialog, openDataSourceDialog.Open); } string yeastReplicateName = Path.GetFileNameWithoutExtension(Yeast_BSA); PauseForScreenShot <AllChromatogramsGraph>("Importing results form", 6); WaitForDocumentChangeLoaded(document, 1000 * 60 * 60 * 10); // 10 minutes // Arrange graphs tiled RunUI(() => { SkylineWindow.ArrangeGraphsTiled(); SkylineWindow.AutoZoomBestPeak(); SkylineWindow.ShowSplitChromatogramGraph(true); }); FindNode("R.FKDLGEEHFK.G"); RunUI(() => SkylineWindow.Size = new Size(1075, 799)); RestoreViewOnScreen(7); PauseForScreenShot("Zoomed split graph panes onely", 7); RunUI(() => SkylineWindow.AutoZoomNone()); PauseForScreenShot("Unzoomed split graph panes onely", 8); RunUI(() => { SkylineWindow.AutoZoomBestPeak(); SkylineWindow.ShowRTReplicateGraph(); SkylineWindow.ShowGraphPeakArea(true); SkylineWindow.ShowChromatogramLegends(false); SkylineWindow.ShowPeakAreaLegend(false); SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_percent_view); SkylineWindow.SynchronizeZooming(true); SkylineWindow.Size = new Size(1547, 855); }); RestoreViewOnScreen(9); PauseForScreenShot("Full window", 9); FindNode("TCVADESHAGCEK"); var noteDlg = ShowDialog <EditNoteDlg>(SkylineWindow.EditNote); RunUI(() => noteDlg.NoteText = "Lost in yeast samples"); PauseForScreenShot("Peptide note", 10); OkDialog(noteDlg, noteDlg.OkDialog); FindNode("NECFLSHKDDSPDLPK"); PauseForScreenShot("Yeast chromatograms and RT only - prtsc-paste-edit", 11); PauseForScreenShot("Hover over BSA in water chromatogram - prtsc-paste-edit", 12); RestoreViewOnScreen(13); PauseForScreenShot("Full scan 2D MS1 graph", 13); { const double clickTime1 = 41.06; ClickChromatogram(clickTime1, 1.62E+6, PaneKey.PRECURSORS); var fullScanGraph = FindOpenForm <GraphFullScan>(); RunUI(() => fullScanGraph.SetSpectrum(false)); PauseForScreenShot("Full scan 3D MS1 graph", 13); ValidateClickTime(fullScanGraph, clickTime1); RunUI(() => fullScanGraph.SetZoom(false)); PauseForScreenShot("Full scan unzoomed 3D MS1 graph", 14); const double clickTime2 = 41.02; RunUI(() => fullScanGraph.SetZoom(true)); ClickChromatogram(clickTime2, 5.8E+4, PaneKey.PRODUCTS); PauseForScreenShot("Full scan 3D MS/MS graph", 15); ValidateClickTime(fullScanGraph, clickTime2); RunUI(() => fullScanGraph.SetZoom(false)); PauseForScreenShot("Full scan unzoomed 3D MS/MS graph", 14); const double clickTime3 = 41.48; ClickChromatogram(yeastReplicateName, clickTime3, 3.14E+4, PaneKey.PRODUCTS); PauseForScreenShot("Interference full scan unzoomed 3D MS/MS graph", 15); ValidateClickTime(fullScanGraph, clickTime3); RunUI(SkylineWindow.HideFullScanGraph); } RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, dlg => { dlg.SelectedChromatograms = SkylineWindow.Document.Settings.MeasuredResults.Chromatograms.Skip(1); dlg.RemoveReplicates(); dlg.OkDialog(); }); RunUI(() => SkylineWindow.SaveDocument()); { var peptideSettingsUI = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); RunUI(() => peptideSettingsUI.SelectedTab = PeptideSettingsUI.TABS.Prediction); var driftPredictor = ShowDialog <EditDriftTimePredictorDlg>(peptideSettingsUI.AddDriftTimePredictor); const string predictorName = "BSA"; RunUI(() => { driftPredictor.SetPredictorName(predictorName); driftPredictor.SetResolvingPower(50); driftPredictor.GetDriftTimesFromResults(); }); PauseForScreenShot("Edit predictor form", 18); OkDialog(driftPredictor, () => driftPredictor.OkDialog()); PauseForScreenShot("Peptide Settings - Prediction", 19); RunUI(() => { Assert.IsTrue(peptideSettingsUI.IsUseMeasuredRT); Assert.AreEqual(6, peptideSettingsUI.TimeWindow); Assert.AreEqual(predictorName, peptideSettingsUI.SelectedDriftTimePredictor); }); OkDialog(peptideSettingsUI, peptideSettingsUI.OkDialog); } { var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => { transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.FullScan; transitionSettingsUI.SetRetentionTimeFilter(RetentionTimeFilterType.scheduling_windows, 3); }); PauseForScreenShot("Transition Settings - Full-Scan", 20); OkDialog(transitionSettingsUI, transitionSettingsUI.OkDialog); } using (new WaitDocumentChange(1, true, 1000 * 60 * 60 * 5)) { var choosePredictionReplicates = ShowDialog <ChooseSchedulingReplicatesDlg>(SkylineWindow.ImportResults); PauseForScreenShot("Choose Replicates form", 21); RunUI(() => choosePredictionReplicates.SelectOrDeselectAll(true)); var importResults = ShowDialog <ImportResultsDlg>(choosePredictionReplicates.OkDialog); RunDlg <OpenDataSourceDialog>(importResults.OkDialog, openDataSourceDialog => { openDataSourceDialog.CurrentDirectory = new MsDataFilePath(DataPath); openDataSourceDialog.SelectAllFileType(Yeast_BSA); openDataSourceDialog.Open(); }); } WaitForGraphs(); // CONSIDER: Test the peak annotations to ensure the filtering happened PauseForScreenShot("Yeast chromatogram and RTs - prtsc-paste-edit", 22); { const double clickTime = 42.20; ClickChromatogram(yeastReplicateName, clickTime, 2.904E+4, PaneKey.PRODUCTS); var fullScanGraph = FindOpenForm <GraphFullScan>(); RunUI(() => fullScanGraph.SetZoom(true)); PauseForScreenShot("Full-scan graph zoomed", 23); RunUI(() => Assert.IsTrue(fullScanGraph.TitleText.Contains(clickTime.ToString(CultureInfo.CurrentCulture)))); RunUI(SkylineWindow.HideFullScanGraph); } FindNode("FKDLGEEHFK"); PauseForScreenShot("Chromatograms (copy metafile) and legend - prtsc-paste-edit", 23); PauseForScreenShot("Peak area percentages (copy metafile)", 24); var docFiltered = SkylineWindow.Document; RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, manageDlg => { manageDlg.SelectedChromatograms = SkylineWindow.Document.Settings.MeasuredResults.Chromatograms.Take(1); manageDlg.ReimportResults(); manageDlg.OkDialog(); }); WaitForDocumentChangeLoaded(docFiltered, 1000 * 60 * 60 * 5); // 5 minutes // TODO: Check peak ranks before and after }
protected override void DoTest() { // Clear all the settings lists that will be defined in this tutorial ClearSettingsLists(); // Open the file RunUI(() => SkylineWindow.OpenFile(GetTestPath(DIA_START_CHECKPOINT))); WaitForDocumentLoaded(); // Specify DIA acquisition scheme and machine settings var transitionSettings = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => { transitionSettings.SelectedTab = TransitionSettingsUI.TABS.FullScan; transitionSettings.AcquisitionMethod = FullScanAcquisitionMethod.DIA; transitionSettings.PrecursorIsotopesCurrent = FullScanPrecursorIsotopes.Count; transitionSettings.PrecursorMassAnalyzer = FullScanMassAnalyzerType.orbitrap; transitionSettings.PrecursorRes = 35000; transitionSettings.PrecursorResMz = 200; transitionSettings.ProductMassAnalyzer = FullScanMassAnalyzerType.orbitrap; transitionSettings.ProductRes = 17500; transitionSettings.ProductResMz = 200; }); PauseForScreenShot <TransitionSettingsUI.FullScanTab>("Transition Settings - Full-Scan", 4); // Set up isolation scheme var isolationSchemeDlg = ShowDialog <EditIsolationSchemeDlg>(transitionSettings.AddIsolationScheme); PauseForScreenShot <EditIsolationSchemeDlg>("Edit Isolation Scheme form", 5); RunUI(() => { isolationSchemeDlg.UseResults = false; }); var calculateIsolationDlg = ShowDialog <CalculateIsolationSchemeDlg>(isolationSchemeDlg.Calculate); RunUI(() => { calculateIsolationDlg.WindowWidth = 20; calculateIsolationDlg.Start = 500; calculateIsolationDlg.End = 900; calculateIsolationDlg.OptimizeWindowPlacement = true; }); PauseForScreenShot <CalculateIsolationSchemeDlg>("Calculate Isolation Scheme form", 6); OkDialog(calculateIsolationDlg, calculateIsolationDlg.OkDialog); PauseForScreenShot <EditIsolationSchemeDlg>("Edit Isolation Scheme Dialog Filled", 7); var isolationSchemeGraphDlg = ShowDialog <DiaIsolationWindowsGraphForm>(isolationSchemeDlg.OpenGraph); PauseForScreenShot <DiaIsolationWindowsGraphForm>("Graph of Isolation Scheme", 8); OkDialog(isolationSchemeGraphDlg, isolationSchemeGraphDlg.CloseButton); RunUI(() => isolationSchemeDlg.IsolationSchemeName = "500 to 900 by 20"); OkDialog(isolationSchemeDlg, isolationSchemeDlg.OkDialog); OkDialog(transitionSettings, transitionSettings.OkDialog); // Export isolation scheme var exportIsolationDlg = ShowDialog <ExportMethodDlg>(() => SkylineWindow.ShowExportMethodDialog(ExportFileType.IsolationList)); PauseForScreenShot <ExportMethodDlg>("Export Isolation List form", 9); OkDialog(exportIsolationDlg, () => exportIsolationDlg.OkDialog(GetTestPath("DIA_tutorial_isolation_list.csv"))); // Adjust modifications and filter var newPeptideSettings = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); RunUI(() => newPeptideSettings.AutoSelectMatchingPeptides = true); OkDialog(newPeptideSettings, newPeptideSettings.OkDialog); // Set up chromatogram retention time restriction var newTransitionSettings = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => newTransitionSettings.SetRetentionTimeFilter(RetentionTimeFilterType.ms2_ids, 5.0)); PauseForScreenShot <TransitionSettingsUI.FullScanTab>("Retention time filtering options", 16); // Adjust library transition ranking RunUI(() => { newTransitionSettings.SelectedTab = TransitionSettingsUI.TABS.Library; newTransitionSettings.UseLibraryPick = true; newTransitionSettings.Filtered = true; }); PauseForScreenShot <TransitionSettingsUI.LibraryTab>("Transition Settings - Library tab", 22); OkDialog(newTransitionSettings, newTransitionSettings.OkDialog); PauseForScreenShot <SequenceTreeForm>("Targets pane with precursors and best 5 transitions only", 23); // Build spectral library using Import Peptide Search RunUI(() => SkylineWindow.SaveDocument(GetTestPath(DIA_TUTORIAL_CHECKPOINT))); // "Build Spectral Library" page var importPeptideSearchDlg = ShowDialog <ImportPeptideSearchDlg>(() => SkylineWindow.ShowImportPeptideSearchDlg()); RunUI(() => { Assert.IsTrue(importPeptideSearchDlg.CurrentPage == ImportPeptideSearchDlg.Pages.spectra_page); importPeptideSearchDlg.BuildPepSearchLibControl.AddSearchFiles(new[] { GetTestPath("interact-20130311_DDA_Pit01.pep.xml") }); // Not L10N importPeptideSearchDlg.BuildPepSearchLibControl.WorkflowType = ImportPeptideSearchDlg.Workflow.dia; }); PauseForScreenShot <BuildLibraryDlg>("Build Library form - input files", 10); const string prefixKeep = "DIA_Pit0"; if (IsFullImportMode) { SrmDocument doc = SkylineWindow.Document; RunUI(() => Assert.IsTrue(importPeptideSearchDlg.ClickNextButton())); doc = WaitForDocumentChange(doc); // "Extract Chromatograms" page RunUI(() => { Assert.IsTrue(importPeptideSearchDlg.CurrentPage == ImportPeptideSearchDlg.Pages.chromatograms_page); importPeptideSearchDlg.ImportResultsControl.FoundResultsFiles = _importFiles.Select(f => new ImportPeptideSearch.FoundResultsFile(f, GetTestPath(f + ExtensionTestContext.ExtThermoRaw))).ToList(); }); var importResultsNameDlg = ShowDialog <ImportResultsNameDlg>(importPeptideSearchDlg.ClickNextButtonNoCheck); RunUI(() => { string prefix = importResultsNameDlg.Prefix; Assert.IsTrue(prefix.EndsWith(prefixKeep)); importResultsNameDlg.Prefix = prefix.Substring(0, prefix.Length - prefixKeep.Length); importResultsNameDlg.YesDialog(); }); WaitForClosedForm(importResultsNameDlg); // "Add Modifications" page RunUI(() => { const string modCarbamidomethyl = "Carbamidomethyl (C)"; const string modOxidation = "Oxidation (M)"; Assert.IsTrue(importPeptideSearchDlg.CurrentPage == ImportPeptideSearchDlg.Pages.match_modifications_page); // Define expected matched/unmatched modifications var expectedMatched = new[] { modCarbamidomethyl, modOxidation }; // Verify matched/unmatched modifications AssertEx.AreEqualDeep(expectedMatched, importPeptideSearchDlg.MatchModificationsControl.MatchedModifications.ToArray()); Assert.IsFalse(importPeptideSearchDlg.MatchModificationsControl.UnmatchedModifications.Any()); importPeptideSearchDlg.MatchModificationsControl.CheckedModifications = new[] { modCarbamidomethyl }; Assert.IsTrue(importPeptideSearchDlg.ClickNextButton()); }); WaitForDocumentChange(doc); // "Configure Transition Settings" page RunUI(() => { Assert.IsTrue(importPeptideSearchDlg.CurrentPage == ImportPeptideSearchDlg.Pages.transition_settings_page); importPeptideSearchDlg.TransitionSettingsControl.PrecursorCharges = new[] { 1, 2, 3, 4 }; importPeptideSearchDlg.TransitionSettingsControl.IonCharges = new[] { 1, 2 }; importPeptideSearchDlg.TransitionSettingsControl.IonTypes = new[] { IonType.y, IonType.b, IonType.precursor }; importPeptideSearchDlg.TransitionSettingsControl.ExclusionUseDIAWindow = true; importPeptideSearchDlg.TransitionSettingsControl.IonCount = 5; importPeptideSearchDlg.TransitionSettingsControl.IonMatchTolerance = 0.05; Assert.IsTrue(importPeptideSearchDlg.ClickNextButton()); }); // "Configure Full-Scan Settings" page RunUI(() => { Assert.IsTrue(importPeptideSearchDlg.CurrentPage == ImportPeptideSearchDlg.Pages.full_scan_settings_page); Assert.IsTrue(importPeptideSearchDlg.ClickNextButton()); }); // "Import FASTA" page RunUI(() => { importPeptideSearchDlg.ImportFastaControl.SetFastaContent(GetTestPath("pituitary_database.fasta")); Assert.IsTrue(importPeptideSearchDlg.ClickNextButton()); }); WaitForClosedForm(importPeptideSearchDlg); WaitForCondition(10 * 60 * 1000, () => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 10 minutes RunUI(() => { SkylineWindow.SaveDocument(GetTestPath(DIA_IMPORTED_CHECKPOINT)); SkylineWindow.SaveDocument(GetTestPath(DIA_TUTORIAL_CHECKPOINT)); }); } else { OkDialog(importPeptideSearchDlg, importPeptideSearchDlg.CancelDialog); RunUI(() => SkylineWindow.OpenFile(GetTestPath(DIA_IMPORTED_CHECKPOINT))); } WaitForDocumentLoaded(); WaitForGraphs(); RunUI(() => { SkylineWindow.ExpandPrecursors(); SkylineWindow.Size = new Size(750, 788); }); // Generate decoys // var decoysDlg = ShowDialog<GenerateDecoysDlg>(SkylineWindow.ShowGenerateDecoysDlg); // PauseForScreenShot<GenerateDecoysDlg>("Add Decoy Peptides form", 24); // RunUI(() => // { // decoysDlg.NumDecoys = 26; // Assert.AreEqual(decoysDlg.DecoysMethod, DecoyGeneration.SHUFFLE_SEQUENCE); // }); // OkDialog(decoysDlg, decoysDlg.OkDialog); // RunUI(() => SkylineWindow.SequenceTree.TopNode = SkylineWindow.SequenceTree.SelectedNode.PrevNode.Nodes[6]); // PauseForScreenShot<SequenceTreeForm>("Targets pane with decoys added", 25); RunUI(() => { SkylineWindow.CollapsePeptides(); SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Molecules, 6); var nodePepTree = SkylineWindow.SelectedNode as PeptideTreeNode; Assert.IsNotNull(nodePepTree); Assert.AreEqual("VLQAVLPPLPQVVCTYR", nodePepTree.DocNode.Peptide.Sequence); SkylineWindow.ShowSplitChromatogramGraph(true); SkylineWindow.AutoZoomBestPeak(); var graphChrom = SkylineWindow.GetGraphChrom(prefixKeep + "1"); var labelStrings = graphChrom.GetAnnotationLabelStrings().ToArray(); Assert.IsTrue(labelStrings.Contains(string.Format("{0}\n+{1} ppm\n(idotp {2})", 75.4, 3, 0.59)), string.Format("Missing expected label in {0}", string.Join("|", labelStrings))); SkylineWindow.Width = 1250; }); RunDlg <ChromChartPropertyDlg>(SkylineWindow.ShowChromatogramProperties, dlg => { dlg.FontSize = GraphFontSize.NORMAL; dlg.OkDialog(); }); RestoreViewOnScreen(27); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile", 26); RunUI(() => { SkylineWindow.SelectedNode.Expand(); var nodeTree = SkylineWindow.SelectedNode.Nodes[0].Nodes[0] as SrmTreeNode; Assert.IsNotNull(nodeTree); Assert.AreEqual((int)SequenceTree.StateImageId.no_peak, nodeTree.StateImageIndex); }); PauseForScreenShot <SequenceTreeForm>("Targets view - ", 27); RunUI(() => { SkylineWindow.SetIntegrateAll(true); var nodeTree = SkylineWindow.SelectedNode.Nodes[0].Nodes[0] as SrmTreeNode; Assert.IsNotNull(nodeTree); Assert.AreEqual((int)SequenceTree.StateImageId.peak, nodeTree.StateImageIndex); var nodeGroupTree = SkylineWindow.SelectedNode.Nodes[0] as TransitionGroupTreeNode; Assert.IsNotNull(nodeGroupTree); Assert.AreEqual(0.99, nodeGroupTree.DocNode.GetIsotopeDotProduct(0) ?? 0, 0.005); Assert.AreEqual(0.83, nodeGroupTree.DocNode.GetLibraryDotProduct(0) ?? 0, 0.005); SkylineWindow.ShowOtherRunPeptideIDTimes(true); }); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile - with ID lines", 28); RunUI(() => { SkylineWindow.AutoZoomNone(); SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Molecules, 1); }); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile - zoomed out and small peak", 30); RunUI(SkylineWindow.AutoZoomBestPeak); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile - zoomed to peak", 31); if (IsFullImportMode) { ClickChromatogram(74.9, 1.775E+7, PaneKey.PRECURSORS); RestoreViewOnScreen(33); PauseForScreenShot <GraphFullScan>("Full Scan graph with precursors - zoom manually", 32); ClickChromatogram(74.8, 1.753E+6, PaneKey.PRODUCTS); PauseForScreenShot <GraphFullScan>("Full Scan graph showing y7", 33); ClickChromatogram(74.9, 9.64E+5, PaneKey.PRODUCTS); PauseForScreenShot <GraphFullScan>("Full Scan graph showing b3 - zoom manually", 34); ClickChromatogram(74.9, 1.25E+5, PaneKey.PRODUCTS); PauseForScreenShot <GraphFullScan>("Full Scan graph showing y3 - zoom manually", 34); } RunUI(() => { SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Molecules, 2); Assert.AreEqual("CNTDYSDCIHEAIK", ((PeptideTreeNode)SkylineWindow.SelectedNode).DocNode.Peptide.Sequence); }); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile - split between two precursors", 35); RunUI(() => { SkylineWindow.SelectedNode.Expand(); SkylineWindow.SelectedPath = ((SrmTreeNode)SkylineWindow.SelectedNode.Nodes[0]).Path; }); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile - double charged precursor", 36); RunUI(() => { SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Molecules, 3); Assert.AreEqual("ELVYETVR", ((PeptideTreeNode)SkylineWindow.SelectedNode).DocNode.Peptide.Sequence); }); RunUI(() => { SkylineWindow.SelectedNode.Expand(); var nodeGroupTree = SkylineWindow.SelectedNode.Nodes[0] as TransitionGroupTreeNode; Assert.IsNotNull(nodeGroupTree); Assert.AreEqual(0.99, nodeGroupTree.DocNode.GetIsotopeDotProduct(0) ?? 0, 0.005); Assert.AreEqual(0.99, nodeGroupTree.DocNode.GetIsotopeDotProduct(0) ?? 0, 0.005); }); RestoreViewOnScreen(38); PauseForScreenShot <GraphSpectrum>("Library Match view - zoom manually", 37); RestoreViewOnScreen(39); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile", 38); if (IsFullImportMode) { RestoreViewOnScreen(40); ClickChromatogram(41.9, 1.166E+8, PaneKey.PRECURSORS); PauseForScreenShot <GraphFullScan>("Full Scan graph showing precursor interference - zoom manually", 39); RunUI(() => SkylineWindow.GraphFullScan.ChangeScan(-12)); CheckFullScanSelection(41.7, 1.532E+8, PaneKey.PRECURSORS); PauseForScreenShot <GraphFullScan>("Full Scan graph showing transition between interference and real peak - zoom manually", 39); } // Clear all the settings lists that were defined in this tutorial ClearSettingsLists(); }
private void autoZoomNoneMenuItem_Click(object sender, EventArgs e) { SkylineWindow.AutoZoomNone(); }
protected override void DoTest() { // Check backward compatibility with 19.1.9.338 and 350 when combined IMS got written to MsDataFilePath string legacyFile_19_1_9 = TestFilesDirs[1].GetTestPath(@"BSA-Training.sky"); RunUI(() => SkylineWindow.OpenFile(legacyFile_19_1_9)); VerifyCombinedIonMobility(WaitForDocumentLoaded()); RunUI(() => { SkylineWindow.SaveDocument(); SkylineWindow.NewDocument(); SkylineWindow.OpenFile(legacyFile_19_1_9); }); VerifyCombinedIonMobility(WaitForDocumentLoaded()); var oldDoc = SkylineWindow.Document; string skyFile = TestFilesDirs[0].GetTestPath(@"IMSFiltering\BSA-Training.sky"); RunUI(() => SkylineWindow.OpenFile(skyFile)); var document = WaitForDocumentChangeLoaded(oldDoc, 240 * 1000); // 4 minutes RunUI(() => SkylineWindow.Size = new Size(880, 560)); RestoreViewOnScreen(2); PauseForScreenShot("Document open - full window", 2); AssertEx.IsDocumentState(document, null, 1, 34, 38, 404); { var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(() => SkylineWindow.ShowTransitionSettingsUI(TransitionSettingsUI.TABS.FullScan)); PauseForScreenShot <TransitionSettingsUI.FullScanTab>("Full-scan settings", 3); RunUI(() => { Assert.AreEqual(FullScanPrecursorIsotopes.Count, transitionSettingsUI.PrecursorIsotopesCurrent); Assert.AreEqual(20 * 1000, transitionSettingsUI.PrecursorRes); Assert.AreEqual(FullScanMassAnalyzerType.tof, transitionSettingsUI.PrecursorMassAnalyzer); Assert.AreEqual(IsolationScheme.SpecialHandlingType.ALL_IONS, transitionSettingsUI.IsolationSchemeName); Assert.AreEqual(20 * 1000, transitionSettingsUI.ProductRes); Assert.AreEqual(FullScanMassAnalyzerType.tof, transitionSettingsUI.ProductMassAnalyzer); }); OkDialog(transitionSettingsUI, transitionSettingsUI.CancelDialog); } { var importResults = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); RunUI(() => importResults.ImportSimultaneousIndex = 2); PauseForScreenShot <ImportResultsDlg>("Import results form", 4); // Importing raw data from a sample which is a mixture of yeast and BSA var openDataSourceDialog = ShowDialog <OpenDataSourceDialog>(importResults.OkDialog); RunUI(() => { openDataSourceDialog.CurrentDirectory = new MsDataFilePath(DataPath); openDataSourceDialog.SelectAllFileType(".d"); }); PauseForScreenShot <OpenDataSourceDialog>("Import results files", 5); OkDialog(openDataSourceDialog, openDataSourceDialog.Open); } string yeastReplicateName = Path.GetFileNameWithoutExtension(Yeast_BSA); PauseForScreenShot <AllChromatogramsGraph>("Importing results form", 6); WaitForDocumentChangeLoaded(document, 1000 * 60 * 60 * 10); // 10 minutes // Arrange graphs tiled RunUI(() => { SkylineWindow.ArrangeGraphsTiled(); SkylineWindow.AutoZoomBestPeak(); SkylineWindow.ShowSplitChromatogramGraph(true); }); FindNode("R.FKDLGEEHFK.G"); RunUI(() => SkylineWindow.Size = new Size(1075, 799)); RestoreViewOnScreen(7); PauseForScreenShot("Zoomed split graph panes only", 7); RunUI(() => SkylineWindow.AutoZoomNone()); PauseForScreenShot("Unzoomed split graph panes only", 8); const int wideWidth = 1547; RunUI(() => { SkylineWindow.AutoZoomBestPeak(); SkylineWindow.ShowRTReplicateGraph(); SkylineWindow.ShowGraphPeakArea(true); SkylineWindow.ShowChromatogramLegends(false); SkylineWindow.ShowPeakAreaLegend(false); SkylineWindow.NormalizeAreaGraphTo(NormalizeOption.TOTAL); SkylineWindow.SynchronizeZooming(true); SkylineWindow.Size = new Size(wideWidth, 855); }); RestoreViewOnScreen(9); PauseForScreenShot("Full window", 9); FindNode("TCVADESHAGCEK"); var noteDlg = ShowDialog <EditNoteDlg>(SkylineWindow.EditNote); RunUI(() => noteDlg.NoteText = "Lost in yeast samples"); PauseForScreenShot("Peptide note", 10); OkDialog(noteDlg, noteDlg.OkDialog); FindNode("NECFLSHKDDSPDLPK"); RestoreViewOnScreen(11); const int narrowWidth = 1350; RunUI(() => SkylineWindow.Width = narrowWidth); PauseForScreenShot("Yeast chromatograms and RT only - prtsc-paste-edit", 11); PauseForScreenShot("Hover over BSA in water chromatogram - prtsc-paste-edit", 12); RunUI(() => SkylineWindow.Width = wideWidth); RestoreViewOnScreen(13); { const double clickTime1 = 41.06; ClickChromatogram(clickTime1, 1.62E+6, PaneKey.PRECURSORS); PauseForScreenShot("Full scan 2D MS1 graph", 13); var fullScanGraph = FindOpenForm <GraphFullScan>(); RunUI(() => fullScanGraph.SetSpectrum(false)); PauseForScreenShot("Full scan 3D MS1 graph", 13); ValidateClickTime(fullScanGraph, clickTime1); RunUI(() => fullScanGraph.SetZoom(false)); PauseForScreenShot("Full scan unzoomed 3D MS1 graph", 14); const double clickTime2 = 41.02; RunUI(() => fullScanGraph.SetZoom(true)); ClickChromatogram(clickTime2, 5.8E+4, PaneKey.PRODUCTS); PauseForScreenShot("Full scan 3D MS/MS graph", 15); ValidateClickTime(fullScanGraph, clickTime2); RunUI(() => fullScanGraph.SetZoom(false)); PauseForScreenShot("Full scan unzoomed 3D MS/MS graph", 15); if (IsCoverShotMode) { RunUI(() => { Settings.Default.ChromatogramFontSize = 14; Settings.Default.AreaFontSize = 14; SkylineWindow.ChangeTextSize(TreeViewMS.LRG_TEXT_FACTOR); }); RestoreCoverViewOnScreen(); ClickChromatogram(clickTime2, 5.8E+4, PaneKey.PRODUCTS); var manageResultsDlg = ShowDialog <ManageResultsDlg>(SkylineWindow.ManageResults); RenameReplicate(manageResultsDlg, 0, "BSA"); RenameReplicate(manageResultsDlg, 1, "Yeast_BSA"); OkDialog(manageResultsDlg, manageResultsDlg.OkDialog); RunUI(SkylineWindow.FocusDocument); TakeCoverShot(); return; } const double clickTime3 = 41.48; ClickChromatogram(yeastReplicateName, clickTime3, 3.14E+4, PaneKey.PRODUCTS); PauseForScreenShot("Interference full scan unzoomed 3D MS/MS graph", 16); ValidateClickTime(fullScanGraph, clickTime3); RunUI(SkylineWindow.HideFullScanGraph); } RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, dlg => { dlg.SelectedChromatograms = SkylineWindow.Document.Settings.MeasuredResults.Chromatograms.Skip(1); dlg.RemoveReplicates(); dlg.OkDialog(); }); RunUI(() => SkylineWindow.SaveDocument()); { var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => { transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.IonMobility; transitionSettingsUI.IonMobilityControl.WindowWidthType = IonMobilityWindowWidthCalculator .IonMobilityWindowWidthType.resolving_power; transitionSettingsUI.IonMobilityControl.IonMobilityFilterResolvingPower = 50; }); PauseForScreenShot("Setting ion mobility filter width calculation values", 17); var editIonMobilityLibraryDlg = ShowDialog <EditIonMobilityLibraryDlg>(transitionSettingsUI.IonMobilityControl.AddIonMobilityLibrary); const string libraryName = "BSA"; var databasePath = TestFilesDirs[1].GetTestPath(libraryName + IonMobilityDb.EXT); RunUI(() => { editIonMobilityLibraryDlg.LibraryName = libraryName; editIonMobilityLibraryDlg.CreateDatabaseFile(databasePath); // Simulate user click on Create button editIonMobilityLibraryDlg.SetOffsetHighEnergySpectraCheckbox(true); editIonMobilityLibraryDlg.GetIonMobilitiesFromResults(); }); PauseForScreenShot("Edit ion mobility library form", 18); // Check that a new value was calculated for all precursors RunUI(() => Assert.AreEqual(SkylineWindow.Document.MoleculeTransitionGroupCount, editIonMobilityLibraryDlg.LibraryMobilitiesFlatCount)); OkDialog(editIonMobilityLibraryDlg, () => editIonMobilityLibraryDlg.OkDialog()); PauseForScreenShot <TransitionSettingsUI.IonMobilityTab>("Transition Settings - Ion Mobility", 19); RunUI(() => { transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.FullScan; transitionSettingsUI.SetRetentionTimeFilter(RetentionTimeFilterType.scheduling_windows, 3); }); PauseForScreenShot("Transition Settings - Full-Scan", 20); OkDialog(transitionSettingsUI, transitionSettingsUI.OkDialog); var peptideSettingsUI = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); RunUI(() => peptideSettingsUI.SelectedTab = PeptideSettingsUI.TABS.Prediction); PauseForScreenShot("Peptide Settings - Prediction", 21); RunUI(() => { Assert.IsTrue(peptideSettingsUI.IsUseMeasuredRT); Assert.AreEqual(6, peptideSettingsUI.TimeWindow); }); OkDialog(peptideSettingsUI, peptideSettingsUI.OkDialog); } using (new WaitDocumentChange(1, true, 1000 * 60 * 60 * 5)) { var choosePredictionReplicates = ShowDialog <ChooseSchedulingReplicatesDlg>(SkylineWindow.ImportResults); PauseForScreenShot("Choose Replicates form", 22); RunUI(() => choosePredictionReplicates.SelectOrDeselectAll(true)); var importResults = ShowDialog <ImportResultsDlg>(choosePredictionReplicates.OkDialog); RunDlg <OpenDataSourceDialog>(importResults.OkDialog, openDataSourceDialog => { openDataSourceDialog.CurrentDirectory = new MsDataFilePath(DataPath); openDataSourceDialog.SelectAllFileType(Yeast_BSA); openDataSourceDialog.Open(); }); } WaitForGraphs(); // Test to ensure the filtering happened if (!IsPauseForScreenShots) // Don't bring up unexpected UI in a screenshot run { TestReports(); } RestoreViewOnScreen(11); RunUI(() => SkylineWindow.Width = narrowWidth); PauseForScreenShot("Yeast chromatogram and RTs - prtsc-paste-edit", 23); RunUI(() => SkylineWindow.Width = wideWidth); RestoreViewOnScreen(13); { const double clickTime = 42.20; ClickChromatogram(yeastReplicateName, clickTime, 2.904E+4, PaneKey.PRODUCTS); var fullScanGraph = FindOpenForm <GraphFullScan>(); RunUI(() => fullScanGraph.SetZoom(true)); RunUI(() => fullScanGraph.Parent.Parent.Size = new Size(671, 332)); PauseForScreenShot("Full-scan graph zoomed", 24); RunUI(() => Assert.IsTrue(fullScanGraph.TitleText.Contains(clickTime.ToString(CultureInfo.CurrentCulture)))); RunUI(SkylineWindow.HideFullScanGraph); } FindNode("FKDLGEEHFK"); RunUI(() => { SkylineWindow.Size = new Size(1547, 689); SkylineWindow.ShowProductTransitions(); SkylineWindow.ShowPeakAreaLegend(true); }); RestoreViewOnScreen(25); PauseForScreenShot("Chromatograms and Peak Areas - prtsc-paste-edit", 25); var docFiltered = SkylineWindow.Document; RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, manageDlg => { manageDlg.SelectedChromatograms = SkylineWindow.Document.Settings.MeasuredResults.Chromatograms.Take(1); manageDlg.ReimportResults(); manageDlg.OkDialog(); }); WaitForDocumentChangeLoaded(docFiltered, 1000 * 60 * 60 * 5); // 5 minutes // TODO: Check peak ranks before and after AssertEx.IsFalse(IsRecordMode); // Make sure we turn this off before commit! }
protected override void DoTest() { // IsPauseForScreenShots = true; RunUI(() => SkylineWindow.OpenFile(TestFilesDir.GetTestPath("SplitGraphUnitTest.sky"))); CollectionAssert.AreEqual(new[] { "SplitGraph_rev1.clib" }, SkylineWindow.Document.Settings.PeptideSettings.Libraries.LibrarySpecs .Select(spec => Path.GetFileName(spec.FilePath)).ToArray()); WaitForDocumentLoaded(); // Test that AutoZoomNone and AutoZoomBestPeak work var graphChromatogram = Application.OpenForms.OfType <GraphChromatogram>().First(); var graphChromatogramGraphControl = AllControls(graphChromatogram).OfType <ZedGraphControl>().First(); RunUI(() => { // Select the first transition group SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo(2, 0); SkylineWindow.AutoZoomBestPeak(); // Make sure that we are zoomed in to approximately the best peak Assert.AreEqual(graphChromatogramGraphControl.GraphPane.XAxis.Scale.Min, 13.0, 1.0); Assert.AreEqual(graphChromatogramGraphControl.GraphPane.XAxis.Scale.Max, 14.0, 1.0); // Remember the zoom state so that we can pretend to manually zoom later var zoomStateAuto = new ZoomState(graphChromatogramGraphControl.GraphPane, ZoomState.StateType.Zoom); SkylineWindow.AutoZoomNone(); Assert.AreEqual(graphChromatogramGraphControl.GraphPane.XAxis.Scale.Min, 0.0, 1.0); Assert.AreEqual(graphChromatogramGraphControl.GraphPane.XAxis.Scale.Max, 35.0, 1.0); // Pretend to manually zoom zoomStateAuto.ApplyState(graphChromatogramGraphControl.GraphPane); Assert.AreEqual(graphChromatogramGraphControl.GraphPane.XAxis.Scale.Min, 13.0, 1.0); // Select some other transition group: SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo(2, 1); SkylineWindow.ShowPeakAreaReplicateComparison(); }); WaitForGraphs(); // Ensure that we zoomed out when the selected transition group changed Assert.AreEqual(graphChromatogramGraphControl.GraphPane.XAxis.Scale.Min, 0.0, 1.0); var peakAreaSummary = Application.OpenForms.OfType <GraphSummary>().First(); var graphLibraryMatch = Application.OpenForms.OfType <GraphSpectrum>().First(); var libraryMatchGraphControl = AllControls(graphLibraryMatch).OfType <ZedGraphControl>().First(); RunUI(() => { Assert.IsTrue(Settings.Default.ShowLibraryChromatograms); AssertCurveListsSame(graphChromatogram.CurveList, libraryMatchGraphControl.GraphPane.CurveList); AssertCurveListsSame(graphChromatogram.CurveList, peakAreaSummary.GraphControl.GraphPane.CurveList); Assert.AreEqual(9, graphChromatogram.CurveList.Count); Assert.AreEqual(1, graphChromatogramGraphControl.MasterPane.PaneList.Count); Assert.AreEqual(1, peakAreaSummary.GraphControl.MasterPane.PaneList.Count); SkylineWindow.ShowPrecursorTransitions(); Assert.AreEqual(3, graphChromatogram.CurveList.Count); // TODO(nicksh): Enable this when libraries filter based on precursor/product //AssertCurveListsSame(graphChromatogram.CurveList, libraryMatchGraphControl.GraphPane.CurveList); AssertCurveListsSame(graphChromatogram.CurveList, peakAreaSummary.GraphControl.GraphPane.CurveList); SkylineWindow.ShowProductTransitions(); Assert.AreEqual(6, graphChromatogram.CurveList.Count); // TODO(nicksh): Enable this when libraries filter based on precursor/product AssertCurveListsSame(graphChromatogram.CurveList, libraryMatchGraphControl.GraphPane.CurveList); AssertCurveListsSame(graphChromatogram.CurveList, peakAreaSummary.GraphControl.GraphPane.CurveList); SkylineWindow.ShowAllTransitions(); SkylineWindow.ShowSplitChromatogramGraph(true); }); WaitForGraphs(); Assert.AreEqual(2, graphChromatogramGraphControl.MasterPane.PaneList.Count); Assert.AreEqual(2, peakAreaSummary.GraphControl.MasterPane.PaneList.Count); AssertCurveListsSame(graphChromatogram.GetCurveList(graphChromatogramGraphControl.MasterPane.PaneList[0]), peakAreaSummary.GraphControl.MasterPane.PaneList[0].CurveList); AssertCurveListsSame(graphChromatogram.GetCurveList(graphChromatogramGraphControl.MasterPane.PaneList[1]), peakAreaSummary.GraphControl.MasterPane.PaneList[1].CurveList); }
protected override void DoTest() { const double peakWidthZoomFactor = 2.0; RunUI(() => { SkylineWindow.OpenFile(TestFilesDir.GetTestPath("NoQuantitativeTransitionsTest.sky")); SkylineWindow.AutoZoomBestPeak(); }); WaitForDocumentLoaded(); RunDlg <ChromChartPropertyDlg>(SkylineWindow.ShowChromatogramProperties, dlg => { dlg.TimeRange = peakWidthZoomFactor; dlg.IsPeakWidthRelative = true; dlg.OkDialog(); }); // Do a rescore so that we can be sure that the way things are in the document and exactly // how the current version of Skyline calculates them var manageResultsDlg = ShowDialog <ManageResultsDlg>(SkylineWindow.ManageResults); RunDlg <RescoreResultsDlg>(manageResultsDlg.Rescore, dlg => dlg.Rescore(false)); WaitForDocumentLoaded(); var document = SkylineWindow.Document; // Make sure that the TransitionGroupChromInfo's have their values set based on the quantitative peaks, unless there // are no quantitative peaks foreach (var transitionGroupDocNode in document.MoleculeTransitionGroups) { for (int iReplicate = 0; iReplicate < transitionGroupDocNode.Results.Count; iReplicate++) { var transitionGroupChromInfo = transitionGroupDocNode.Results[iReplicate][0]; var quanChromInfos = new List <TransitionChromInfo>(); var nonQuanChromInfos = new List <TransitionChromInfo>(); foreach (var t in transitionGroupDocNode.Transitions) { var chromInfo = t.Results[iReplicate][0]; if (chromInfo.IsEmpty) { continue; } if (t.IsQuantitative(document.Settings)) { quanChromInfos.Add(chromInfo); } else { nonQuanChromInfos.Add(chromInfo); } } if (quanChromInfos.Any()) { AssertEx.AreEqual(transitionGroupChromInfo.StartRetentionTime, quanChromInfos.Min(c => c.StartRetentionTime)); AssertEx.AreEqual(transitionGroupChromInfo.EndRetentionTime, quanChromInfos.Max(c => c.EndRetentionTime)); AssertEx.AreEqual(transitionGroupChromInfo.Height, quanChromInfos.Max(c => c.Height)); } else { AssertEx.AreEqual(transitionGroupChromInfo.StartRetentionTime, nonQuanChromInfos.Min(c => c.StartRetentionTime)); AssertEx.AreEqual(transitionGroupChromInfo.EndRetentionTime, nonQuanChromInfos.Max(c => c.EndRetentionTime)); AssertEx.IsNull(transitionGroupChromInfo.Height); } } } // Verify that the chromatogram graph correctly zooms to the best quantitative peak, or, // if there are no quantitative peaks, falls back to the best non-quantitative peak, // or is zoomed out entirely foreach (var displayTypeChrom in new[] { DisplayTypeChrom.all, DisplayTypeChrom.single, DisplayTypeChrom.total }) { RunUI(() => SkylineWindow.SetDisplayTypeChrom(displayTypeChrom)); for (int iReplicate = 0; iReplicate < document.Settings.MeasuredResults.Chromatograms.Count; iReplicate++) { var chromatogramSet = document.Settings.MeasuredResults.Chromatograms[iReplicate]; var graphChrom = SkylineWindow.GetGraphChrom(chromatogramSet.Name); RunUI(() => { graphChrom.Activate(); graphChrom.Focus(); }); foreach (var protein in SkylineWindow.Document.MoleculeGroups) { foreach (var peptide in protein.Molecules) { foreach (var precursor in peptide.TransitionGroups) { foreach (var transition in precursor.Transitions) { RunUI(() => { SkylineWindow.SelectedPath = new IdentityPath(protein.Id, peptide.Id, precursor.Id, transition.Id); SkylineWindow.AutoZoomNone(); SkylineWindow.AutoZoomBestPeak(); }); var transitionChromInfos = new List <TransitionChromInfo>(); if (displayTypeChrom == DisplayTypeChrom.single) { var transitionChromInfo = transition.Results[iReplicate][0]; if (!transitionChromInfo.IsEmpty) { transitionChromInfos.Add(transitionChromInfo); } } else { transitionChromInfos.AddRange(precursor.Transitions.Where(t => t.ExplicitQuantitative) .Select(t => t.Results[iReplicate][0]).Where(t => !t.IsEmpty)); if (!transitionChromInfos.Any()) { if (displayTypeChrom != DisplayTypeChrom.total || precursor.Transitions.All(t => !t.ExplicitQuantitative)) { transitionChromInfos.AddRange(precursor.Transitions .Select(t => t.Results[iReplicate][0]).Where(t => !t.IsEmpty)); } } } var zoomState = graphChrom.ZoomState; if (transitionChromInfos.Any()) { var peakStartTime = transitionChromInfos.Min(t => t.StartRetentionTime); var peakEndTime = transitionChromInfos.Max(t => t.EndRetentionTime); var midPeak = (peakStartTime + peakEndTime) / 2; var halfPeakWidth = (peakEndTime - peakStartTime) / 2; double expectedZoomStart = midPeak - halfPeakWidth * peakWidthZoomFactor; double expectedZoomEnd = midPeak + halfPeakWidth * peakWidthZoomFactor; const double tolerance = .001; AssertEx.AreEqual(expectedZoomStart, zoomState.XAxis.Min, tolerance); AssertEx.AreEqual(expectedZoomEnd, zoomState.XAxis.Max, tolerance); } else { var expectedStart = graphChrom.ChromGroupInfos[0].TimeIntensitiesGroup.MinTime; var expectedEnd = graphChrom.ChromGroupInfos[0].TimeIntensitiesGroup.MaxTime; AssertEx.IsTrue(zoomState.XAxis.Min <= expectedStart); AssertEx.IsTrue(zoomState.XAxis.Max >= expectedEnd); } } } } } } } }
private void TofTest() { // Working wih High-Resolution Mass Spectra. // Import a new Document. High-Resolution Mass Spectra, working with TOF p22. string newDocumentFile = GetTestPath(@"TOF\BSA_Agilent.sky"); WaitForCondition(() => File.Exists(newDocumentFile)); RunUI(() => SkylineWindow.OpenFile(newDocumentFile)); bool asSmallMolecules = AsSmallMoleculesTestMode != RefinementSettings.ConvertToSmallMoleculesMode.none; if (asSmallMolecules) { ConvertDocumentToSmallMolecules(AsSmallMoleculesTestMode); } var docCalibrate1 = WaitForDocumentLoaded(); const int pepCount1 = 5, preCount1 = 5, tranCount1 = 30; AssertEx.IsDocumentState(docCalibrate1, null, 1, pepCount1, preCount1, tranCount1); // Try to import a file to show it fails. ImportResultsDlg importResultsDlg3 = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); RunUI(() => importResultsDlg3.NamedPathSets = importResultsDlg3.GetDataSourcePathsFileReplicates( new[] { MsDataFileUri.Parse(GetTestPath(@"TOF\6-BSA-500fmol" + ExtAgilentRaw)) })); var importProgress = ShowDialog <AllChromatogramsGraph>(importResultsDlg3.OkDialog); WaitForDocumentChangeLoaded(docCalibrate1); WaitForConditionUI(() => importProgress.Finished); string expectedErrorFormat = Resources.NoFullScanFilteringException_NoFullScanFilteringException_To_extract_chromatograms_from__0__full_scan_settings_must_be_enabled_; WaitForConditionUI(() => !string.IsNullOrEmpty(importProgress.Error), "Missing expected error text: " + expectedErrorFormat); RunUI(() => AssertEx.AreComparableStrings(expectedErrorFormat, importProgress.Error, 1)); RunUI(() => { importProgress.ClickClose(); SkylineWindow.Undo(); }); var document = SkylineWindow.Document; // Fill out Transition Settings Menu int tranCount2 = (AsSmallMoleculesTestMode != RefinementSettings.ConvertToSmallMoleculesMode.masses_only) ? (tranCount1 + preCount1 * 3) : (tranCount1 + preCount1); // No iostopes for mass-only document using (new CheckDocumentState(1, pepCount1, preCount1, tranCount2)) { var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => { transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.FullScan; transitionSettingsUI.PrecursorIsotopesCurrent = FullScanPrecursorIsotopes.Count; transitionSettingsUI.PrecursorMassAnalyzer = FullScanMassAnalyzerType.tof; transitionSettingsUI.Peaks = 3; transitionSettingsUI.AcquisitionMethod = FullScanAcquisitionMethod.Targeted; transitionSettingsUI.ProductMassAnalyzer = FullScanMassAnalyzerType.tof; }); PauseForScreenShot <TransitionSettingsUI.FullScanTab>("Transition Settings - Full-Scan tab for TOF", 28); RunUI(() => { transitionSettingsUI.RetentionTimeFilterType = RetentionTimeFilterType.none; transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.Filter; transitionSettingsUI.FragmentTypes += ", p"; }); PauseForScreenShot <TransitionSettingsUI.FilterTab>("Transition Settings - Filter tab", 29); OkDialog(transitionSettingsUI, transitionSettingsUI.OkDialog); } var docHighRes = WaitForDocumentChange(document); var tranSettingsHighRes = docHighRes.Settings.TransitionSettings; Assert.AreEqual(FullScanPrecursorIsotopes.Count, tranSettingsHighRes.FullScan.PrecursorIsotopes); Assert.AreEqual(FullScanMassAnalyzerType.tof, tranSettingsHighRes.FullScan.PrecursorMassAnalyzer); Assert.AreEqual(FullScanAcquisitionMethod.Targeted, tranSettingsHighRes.FullScan.AcquisitionMethod); Assert.IsTrue(ArrayUtil.EqualsDeep(new[] { IonType.y, IonType.b, IonType.precursor }, tranSettingsHighRes.Filter.IonTypes)); RunUI(() => SkylineWindow.ExpandPrecursors()); // Assert each peptide contains 3 precursors transitions (unless this is a masses-only small molecule doc). foreach (var nodeGroup in SkylineWindow.Document.MoleculeTransitionGroups) { for (int i = 0; i < nodeGroup.Children.Count; i++) { var nodeTran = (TransitionDocNode)nodeGroup.Children[i]; if (i < ((AsSmallMoleculesTestMode == RefinementSettings.ConvertToSmallMoleculesMode.masses_only) ? 1 : 3)) { Assert.AreEqual(IonType.precursor, nodeTran.Transition.IonType); } else { Assert.AreNotEqual(IonType.precursor, nodeTran.Transition.IonType); } } } RestoreViewOnScreen(30); PauseForScreenShot("Targets View tree clipped from main window", 30); RunDlg <ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg2 => { string[] filePaths = { GetTestPath(@"TOF\6-BSA-500fmol" + ExtAgilentRaw) }; importResultsDlg2.NamedPathSets = importResultsDlg2.GetDataSourcePathsFileReplicates(filePaths.Select(MsDataFileUri.Parse)); importResultsDlg2.OkDialog(); }); WaitForDocumentChangeLoaded(docHighRes); if (AsSmallMoleculesTestMode != RefinementSettings.ConvertToSmallMoleculesMode.masses_only) { FindNode(asSmallMolecules ? "LVNELTEFAK" : "K.LVNELTEFAK.T [65, 74]"); } else { FindNode(document.MoleculeTransitionGroups.First().CustomIon.DisplayName); } RunUI(() => { SkylineWindow.CollapsePrecursors(); SkylineWindow.AutoZoomNone(); SkylineWindow.ShowGraphPeakArea(false); SkylineWindow.ShowProductTransitions(); }); RestoreViewOnScreen(31); RunUI(() => SkylineWindow.Width = 1013); PauseForScreenShot("Main window full gradient import of high concentration and Targets tree clipped", 31); { var peptideSettingsUI = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); RunUI(() => { peptideSettingsUI.SelectedTab = PeptideSettingsUI.TABS.Prediction; Assert.IsTrue(peptideSettingsUI.IsUseMeasuredRT); Assert.AreEqual(2.0, peptideSettingsUI.TimeWindow); }); PauseForScreenShot <PeptideSettingsUI.PredictionTab>("Peptide Settings - Prediction tab", 32); OkDialog(peptideSettingsUI, peptideSettingsUI.CancelDialog); } using (new CheckDocumentState(1, pepCount1, preCount1, tranCount2)) { var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => { transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.FullScan; transitionSettingsUI.SetRetentionTimeFilter(RetentionTimeFilterType.scheduling_windows, 1); }); PauseForScreenShot <TransitionSettingsUI.FullScanTab>("Transition Settings - Full-Scan tab wtih scheduled extraction", 33); OkDialog(transitionSettingsUI, transitionSettingsUI.OkDialog); } var chooseSchedulingReplicateDlg = ShowDialog <ChooseSchedulingReplicatesDlg>(SkylineWindow.ImportResults); RunUI(() => { // Make sure UI is up to date to avoid race condition chooseSchedulingReplicateDlg.UpdateUi(); chooseSchedulingReplicateDlg.SelectOrDeselectAll(true); }); RunDlg <ImportResultsDlg>(chooseSchedulingReplicateDlg.OkDialog, importResultsDlg2 => { string[] filePaths = { GetTestPath(@"TOF\1-BSA-50amol" + ExtAgilentRaw), GetTestPath(@"TOF\2-BSA-100amol" + ExtAgilentRaw), GetTestPath(@"TOF\3-BSA-1fmol" + ExtAgilentRaw), GetTestPath(@"TOF\4-BSA-10fmol" + ExtAgilentRaw), GetTestPath(@"TOF\5-BSA-100fmol" + ExtAgilentRaw), }; importResultsDlg2.NamedPathSets = importResultsDlg2.GetDataSourcePathsFileReplicates(filePaths.Select(MsDataFileUri.Parse)); importResultsDlg2.OkDialog(); }); //Give the Raw files some time to be processed. WaitForCondition(15 * 60 * 1000, () => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); // 15 minutes WaitForClosedAllChromatogramsGraph(); RunUI(() => SkylineWindow.ShowGraphSpectrum(false)); WaitForGraphs(); TryWaitForConditionUI(() => SkylineWindow.GraphChromatograms.Count(graphChrom => !graphChrom.IsHidden) == 6); RunUI(() => { Assert.IsFalse(SkylineWindow.IsGraphSpectrumVisible); var listGraphs = SkylineWindow.GraphChromatograms.Where(graphChrom => !graphChrom.IsHidden).ToList(); if (listGraphs.Count != 6) { string hiddenGraphs = string.Empty; var listHidden = SkylineWindow.GraphChromatograms.Where(graphChrom => graphChrom.IsHidden).ToList(); if (listHidden.Count != 0) { hiddenGraphs = TextUtil.LineSeparate(string.Empty, "Hidden:", TextUtil.LineSeparate(listHidden.Select(g => g.TabText))); } Assert.Fail(TextUtil.LineSeparate(string.Format("Expecting 6 visible graphs but found {0}", listGraphs.Count), TextUtil.LineSeparate(listGraphs.Select(g => g.TabText)), hiddenGraphs)); } var chromGraphs = SkylineWindow.GraphChromatograms.ToArray(); Assert.AreEqual(6, chromGraphs.Length); }); RunDlg <ManageResultsDlg>(SkylineWindow.ManageResults, dlg => { for (int i = 0; i < 5; i++) { dlg.MoveDown(); } dlg.OkDialog(); }); RunDlg <ArrangeGraphsGroupedDlg>(SkylineWindow.ArrangeGraphsGrouped, dlg => { dlg.Groups = 6; dlg.GroupOrder = GroupGraphsOrder.Document; dlg.OkDialog(); }); WaitForGraphs(); RunUI(() => SkylineWindow.Height = 768); PauseForScreenShot("Chromatogram graphs clipped from main window", 34); RunUI(() => { var graphChrom6 = SkylineWindow.GetGraphChrom("6-BSA-500fmol"); var graphChrom5 = SkylineWindow.GetGraphChrom("5-BSA-100fmol"); var graphChrom4 = SkylineWindow.GetGraphChrom("4-BSA-10fmol"); var graphChrom3 = SkylineWindow.GetGraphChrom("3-BSA-1fmol"); var graphChrom2 = SkylineWindow.GetGraphChrom("2-BSA-100amol"); var graphChrom1 = SkylineWindow.GetGraphChrom("1-BSA-50amol"); Assert.AreEqual(13.3, graphChrom6.BestPeakTime ?? 0, 0.05); Assert.AreEqual(13.5, graphChrom5.BestPeakTime ?? 0, 0.05); Assert.AreEqual(13.6, graphChrom4.BestPeakTime ?? 0, 0.05); Assert.AreEqual(13.6, graphChrom3.BestPeakTime ?? 0, 0.05); Assert.AreEqual(13.6, graphChrom2.BestPeakTime ?? 0, 0.05); Assert.AreEqual(13.6, graphChrom1.BestPeakTime ?? 0, 0.05); }); RunUI(SkylineWindow.AutoZoomBestPeak); WaitForGraphs(); PauseForScreenShot("Chromatogram graphs clipped from main window zoomed", 35); RunUI(() => { SkylineWindow.ShowPeakAreaReplicateComparison(); SkylineWindow.ShowPeptideLogScale(true); }); // p. 28 PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas Replicate Comparison graph metafile", 36); WaitForDotProducts(); RunUI(() => { Assert.AreEqual((AsSmallMoleculesTestMode == RefinementSettings.ConvertToSmallMoleculesMode.none) ? 7 : 6, SkylineWindow.GraphPeakArea.Categories.Count()); Assert.AreEqual(6, SkylineWindow.GraphPeakArea.CurveCount); }); VerifyDotProducts(0.87, 0.67, 0.91, 0.90, 0.90, 0.90); RunUI(() => { SkylineWindow.ShowAllTransitions(); SkylineWindow.ShowSplitChromatogramGraph(false); SkylineWindow.ArrangeGraphsTabbed(); SkylineWindow.ActivateReplicate("6-BSA-500fmol"); SkylineWindow.Size = new Size(745, 545); SkylineWindow.ShowGraphPeakArea(false); }); PauseForScreenShot("Chromatogram graph metafile for 500 fmol", 37); RunUI(() => { SkylineWindow.ShowGraphPeakArea(true); SkylineWindow.ShowPrecursorTransitions(); SkylineWindow.ArrangeGraphsTiled(); SkylineWindow.ActivateReplicate("4-BSA-10fmol"); }); WaitForDotProducts(); RunUI(() => { Assert.AreEqual(7, SkylineWindow.GraphPeakArea.Categories.Count()); Assert.AreEqual((AsSmallMoleculesTestMode != RefinementSettings.ConvertToSmallMoleculesMode.masses_only) ? 3 : 1, SkylineWindow.GraphPeakArea.CurveCount); }); VerifyDotProducts(0.99, 0.52, 0.98, 1.00, 1.00, 1.00); RunUI(() => { SkylineWindow.ShowGraphPeakArea(false); SkylineWindow.Size = new Size(1013, 768); }); PauseForScreenShot("Main window", 38); RunUI(SkylineWindow.ShowPeakAreaReplicateComparison); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas Replicate Comparison graph metafile", 39); RunUI(() => SkylineWindow.SaveDocument()); WaitForConditionUI(() => !SkylineWindow.Dirty); }