private void TestPointsAcrossPeak() { RunUI(() => { SkylineWindow.OpenFile(TestFilesDir.GetTestPath("WormUnrefined.sky")); SkylineWindow.SetDisplayTypeChrom(DisplayTypeChrom.all); SkylineWindow.ArrangeGraphs(DisplayGraphsType.Tiled); SkylineWindow.ActivateReplicate("1"); }); WaitForDocumentLoaded(); WaitForGraphs(); var doc = SkylineWindow.Document; var pathToGroup = doc.GetPathTo((int)SrmDocument.Level.TransitionGroups, 0); RunUI(() => SkylineWindow.SelectPath(pathToGroup)); WaitForGraphs(); var nodeGroup = (TransitionGroupDocNode)doc.FindNode(pathToGroup); VerifyGraphItemsCorrect(nodeGroup, pathToGroup, true); RunUI(() => SkylineWindow.ToggleRawTimesMenuItem()); WaitForGraphs(); VerifyGraphItemsCorrect(nodeGroup, pathToGroup, false); }
private void TestOriginalPeak() { RunUI(() => { SkylineWindow.ActivateReplicate("1"); }); WaitForGraphs(); var graphChrom = SkylineWindow.GetGraphChrom("1"); // If the entire graph object list may be empty when the graph is offscreen // It is not worth it to make this work. if (!graphChrom.GraphItem.GraphObjList.Any() && Program.SkylineOffscreen) { return; } var norect = GetChromRect(graphChrom); Assert.IsNull(norect); RunUI(() => { var pathPep = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.Molecules, 0); var nodeGroup = SkylineWindow.DocumentUI.Peptides.ElementAt(0).TransitionGroups.First(); var listChanges = new List <ChangedPeakBoundsEventArgs> { new ChangedPeakBoundsEventArgs(new IdentityPath(pathPep, nodeGroup.TransitionGroup), null, graphChrom.NameSet, graphChrom.ChromGroupInfos[0].FilePath, graphChrom.GraphItems.First().GetNearestDisplayTime(40.0), graphChrom.GraphItems.First().GetNearestDisplayTime(42.0), PeakIdentification.ALIGNED, PeakBoundsChangeType.both) }; graphChrom.SimulateChangedPeakBounds(listChanges); }); WaitForGraphs(); var rect = GetChromRect(graphChrom); Assert.IsNotNull(rect); var tag = (ChromGraphItem.GraphObjTag)rect.Tag; Assert.AreEqual(tag.StartTime.DisplayTime.ToString("N2"), 40.31.ToString(CultureInfo.CurrentCulture)); Assert.AreEqual(tag.EndTime.DisplayTime.ToString("N2"), 41.21.ToString(CultureInfo.CurrentCulture)); Assert.IsNull(GetChromRect(SkylineWindow.GetGraphChrom("2"))); Assert.IsNull(GetChromRect(SkylineWindow.GetGraphChrom("3"))); Assert.IsNull(GetChromRect(SkylineWindow.GetGraphChrom("4"))); }
private void DoStudy7Test() { // Preparing a Document to Accept the Study 7 Transition List, p. 15 RunUI(() => SkylineWindow.NewDocument()); var peptideSettingsUI1 = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); var mod13Cr = new StaticMod("Label:13C(6) (C-term R)", "R", ModTerminus.C, false, null, LabelAtoms.C13, RelativeRT.Matching, null, null, null); AddHeavyMod(mod13Cr, peptideSettingsUI1, "Edit Isotope Modification form", 17); RunUI(() => { peptideSettingsUI1.PickedHeavyMods = new[] { "Label:13C(6) (C-term R)", HEAVY_K }; peptideSettingsUI1.PickedLibraries = new[] { "" }; peptideSettingsUI1.SelectedBackgroundProteome = Resources.SettingsList_ELEMENT_NONE_None; peptideSettingsUI1.OkDialog(); }); // Pasting a Transition List into the Document, p. 18. string clipboardSaveText = string.Empty; RunUI(() => { var filePath = GetTestPath(@"Study 7\Study7 transition list.xls"); SetExcelFileClipboardText(filePath, "Simple", 6, false); clipboardSaveText = ClipboardEx.GetText(); }); { var messageDlg = ShowDialog <ImportTransitionListErrorDlg>(SkylineWindow.Paste); PauseForScreenShot <ImportTransitionListErrorDlg>("Error message form (expected)", 18); OkDialog(messageDlg, messageDlg.CancelDialog); // Restore the clipboard text after pausing ClipboardEx.SetText(clipboardSaveText); } RunDlg <TransitionSettingsUI>(() => SkylineWindow.ShowTransitionSettingsUI(TransitionSettingsUI.TABS.Instrument), transitionSettingsUI => { transitionSettingsUI.InstrumentMaxMz = 1800; transitionSettingsUI.OkDialog(); }); RunUI(() => { SkylineWindow.Paste(); SkylineWindow.CollapsePeptides(); }); PauseForScreenShot("Targets tree (selected from main window)", 19); // Adjusting Modifications Manually, p. 19. AdjustModifications("AGLCQTFVYGGCR", true, 'V', 747.348); PauseForScreenShot("Target tree clipped from main window", 22); AdjustModifications("IVGGWECEK", true, 'V', 541.763); AdjustModifications("YEVQGEVFTKPQLWP", false, 'L', 913.974); RunUI(() => SkylineWindow.SaveDocument(GetTestPath(@"Study 7\Study7.sky"))); // Importing Data from a Multiple Sample WIFF file, p. 23. var importResultsDlg1 = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); var openDataSourceDialog1 = ShowDialog <OpenDataSourceDialog>(() => importResultsDlg1.NamedPathSets = importResultsDlg1.GetDataSourcePathsFile(null)); RunUI(() => { openDataSourceDialog1.CurrentDirectory = new MsDataFilePath(GetTestPath("Study 7")); openDataSourceDialog1.SelectAllFileType(IsFullData ? ".wiff" : ExtensionTestContext.ExtAbWiff); // Force true wiff for FullData }); if (UseRawFilesOrFullData) { var importResultsSamplesDlg = ShowDialog <ImportResultsSamplesDlg>(openDataSourceDialog1.Open); PauseForScreenShot <ImportResultsSamplesDlg>("Choose Samples form", 23); RunUI(() => { if (IsFullData) { importResultsSamplesDlg.CheckAll(true); importResultsSamplesDlg.ExcludeSample(0); // Blank importResultsSamplesDlg.ExcludeSample(25); // QC importResultsSamplesDlg.ExcludeSample(26); importResultsSamplesDlg.ExcludeSample(27); importResultsSamplesDlg.ExcludeSample(28); importResultsSamplesDlg.ExcludeSample(45); // A2 importResultsSamplesDlg.ExcludeSample(46); importResultsSamplesDlg.ExcludeSample(47); importResultsSamplesDlg.ExcludeSample(48); importResultsSamplesDlg.ExcludeSample(49); // gradientwash importResultsSamplesDlg.ExcludeSample(50); importResultsSamplesDlg.ExcludeSample(51); importResultsSamplesDlg.ExcludeSample(52); importResultsSamplesDlg.ExcludeSample(53); // A3 importResultsSamplesDlg.ExcludeSample(54); importResultsSamplesDlg.ExcludeSample(55); importResultsSamplesDlg.ExcludeSample(56); } else { importResultsSamplesDlg.CheckAll(false); importResultsSamplesDlg.IncludeSample(1); importResultsSamplesDlg.IncludeSample(2); importResultsSamplesDlg.IncludeSample(11); importResultsSamplesDlg.IncludeSample(12); } }); OkDialog(importResultsSamplesDlg, importResultsSamplesDlg.OkDialog); } else { RunUI(openDataSourceDialog1.Open); } { var importResultsNameDlg = ShowDialog <ImportResultsNameDlg>(importResultsDlg1.OkDialog); PauseForScreenShot <ImportDocResultsDlg>("Import Results Common prefix form", 24); OkDialog(importResultsNameDlg, importResultsNameDlg.YesDialog); } WaitForCondition(() => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); RestoreViewOnScreen(25); // Inspecting and Adjusting Peak Integration, p. 24. RunUI(() => { SkylineWindow.ShowPeakAreaReplicateComparison(); SkylineWindow.ShowGraphRetentionTime(true); }); if (!IsPauseForScreenShots && !IsFullData) { TestApplyToAll(); } PauseForScreenShot <GraphSummary.RTGraphView>("Main window with peaks and retention times showing", 25); CheckReportCompatibility.CheckAll(SkylineWindow.Document); RunUI(SkylineWindow.EditDelete); FindNode("IVGGWECEK"); // Not L10N TransitionGroupTreeNode selNodeGroup = null; RunUI(() => { selNodeGroup = (TransitionGroupTreeNode)SkylineWindow.SequenceTree.SelectedNode.Nodes[1]; Assert.AreEqual(selNodeGroup.StateImageIndex, (int)SequenceTree.StateImageId.peak_blank); }); RunDlg <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI, transitionSettingsUI => { transitionSettingsUI.MZMatchTolerance = 0.065; transitionSettingsUI.OkDialog(); }); RunUI(() => { Assert.AreEqual((int)SequenceTree.StateImageId.peak, selNodeGroup.StateImageIndex); SkylineWindow.ToggleIntegrateAll(); }); RunUI(() => { foreach (PeptideDocNode nodePep in SkylineWindow.Document.Molecules) { string sequence = nodePep.Peptide.Sequence; int imageIndex = PeptideTreeNode.GetPeakImageIndex(nodePep, SkylineWindow.SequenceTree); if ((sequence != null) && (sequence.StartsWith("YLA") || sequence.StartsWith("YEV"))) // Not L10N { Assert.AreEqual((int)SequenceTree.StateImageId.keep, imageIndex, string.Format("Expected keep icon for the peptide {0}, found {1}", sequence, imageIndex)); } else if (sequence != null) { Assert.AreEqual((int)SequenceTree.StateImageId.peak, imageIndex, string.Format("Expected peak icon for the peptide {0}, found {1}", sequence, imageIndex)); } else // Custom Ion { Assert.AreEqual((int)SequenceTree.StateImageId.peak_blank, imageIndex, string.Format("Expected peak_blank icon for the custom ion {0}, found {1}", nodePep.ModifiedTarget, imageIndex)); } } }); PauseForScreenShot("Main window", 27); // Data Inspection with Peak Areas View, p. 27. FindNode("SSDLVALSGGHTFGK"); // Not L10N RunUI(NormalizeGraphToHeavy); RestoreViewOnScreen(28); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph metafile", 28); FindNode((564.7746).ToString(LocalizationHelper.CurrentCulture) + "++"); // ESDTSYVSLK - Not L10N PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph metafile", 29); RunUI(SkylineWindow.ExpandPeptides); string hgflprLight = (363.7059).ToString(LocalizationHelper.CurrentCulture) + "++"; // HGFLPR - Not L10N FindNode(hgflprLight); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph metafile", 30); RunUI(() => SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_percent_view)); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph normalized metafile", 31); RunUI(() => SkylineWindow.ShowGraphPeakArea(false)); RunUI(() => SkylineWindow.ActivateReplicate("E_03")); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile with interference", 31); RunUI(() => SkylineWindow.ShowGraphPeakArea(true)); RunUI(() => { SkylineWindow.ShowPeakAreaPeptideGraph(); SkylineWindow.ShowTotalTransitions(); SkylineWindow.ShowCVValues(true); SkylineWindow.ShowPeptideOrder(SummaryPeptideOrder.document); }); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas Peptide Comparison graph metafile", 32); // Annotating replicates with concentration values var chooseAnnotationsDlg = ShowDialog <DocumentSettingsDlg>(SkylineWindow.ShowDocumentSettingsDialog); var editListDlg = ShowDialog <EditListDlg <SettingsListBase <AnnotationDef>, AnnotationDef> >(chooseAnnotationsDlg.EditAnnotationList); RunUI(editListDlg.ResetList); var defineAnnotationDlg = ShowDialog <DefineAnnotationDlg>(editListDlg.AddItem); RunUI(() => { defineAnnotationDlg.AnnotationName = "Concentration"; defineAnnotationDlg.AnnotationType = AnnotationDef.AnnotationType.number; defineAnnotationDlg.AnnotationTargets = AnnotationDef.AnnotationTargetSet.Singleton(AnnotationDef.AnnotationTarget.replicate); }); PauseForScreenShot <DefineAnnotationDlg>("Define Annotation form", 33); OkDialog(defineAnnotationDlg, defineAnnotationDlg.OkDialog); OkDialog(editListDlg, () => editListDlg.DialogResult = DialogResult.OK); RunUI(() => chooseAnnotationsDlg.AnnotationsCheckedListBox.SetItemChecked(0, true)); PauseForScreenShot <DocumentSettingsDlg>("Annotation Settings form", 34); OkDialog(chooseAnnotationsDlg, chooseAnnotationsDlg.OkDialog); RunUI(() => SkylineWindow.ShowResultsGrid(true)); RunUI(() => { SkylineWindow.SelectedPath = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.MoleculeGroups, 0); }); WaitForGraphs(); WaitForConditionUI(() => FindOpenForm <LiveResultsGrid>().IsComplete); RunUI(() => { Settings.Default.ResultsGridSynchSelection = false; var resultsGrid = FindOpenForm <LiveResultsGrid>().DataGridView; var colConcentration = // ReSharper disable LocalizableElement resultsGrid.Columns.Cast <DataGridViewColumn>().First(col => "Concentration" == col.HeaderText); // Not L10N // ReSharper restore LocalizableElement if (IsFullData) { float[] concentrations = { 0f, 60, 175, 513, 1500, 2760, 4980, 9060, 16500, 30000 }; for (int i = 0; i < concentrations.Length; i++) { for (int j = i * 4; j < (i + 1) * 4; j++) { SetCellValue(resultsGrid, j, colConcentration.Index, concentrations[i]); } } } else { SetCellValue(resultsGrid, 0, colConcentration.Index, 0f); SetCellValue(resultsGrid, 1, colConcentration.Index, 0f); SetCellValue(resultsGrid, 2, colConcentration.Index, 175f); SetCellValue(resultsGrid, 3, colConcentration.Index, 175f); } }); WaitForGraphs(); PauseForScreenShot <LiveResultsGrid>("Results grid with annotations (scrolled to the end)", 35); FindNode("SSDLVALSGGHTFGK"); // Not L10N RunUI(() => { SkylineWindow.ShowPeakAreaReplicateComparison(); SkylineWindow.GroupByReplicateAnnotation("Concentration"); NormalizeGraphToHeavy(); }); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph with CVs metafile", 36); RunUI(() => SkylineWindow.ShowCVValues(false)); RunUI(() => SkylineWindow.SaveDocument()); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph grouped by concentration metafile", 36); PauseForAuditLog(); // Further Exploration, p. 33. RunUI(() => { SkylineWindow.OpenFile(GetTestPath(@"Study 7\Study II\Study 7ii (site 52).sky")); // Not L10N SkylineWindow.ShowPeakAreaPeptideGraph(); SkylineWindow.ShowCVValues(true); }); WaitForCondition(() => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas peptide comparison graph metafile", 37); FindNode("LSEPAELTDAVK"); RunUI(SkylineWindow.ShowRTReplicateGraph); PauseForScreenShot <GraphSummary.RTGraphView>("Retention Times replicate graph metafile", 38); FindNode("INDISHTQSVSAK"); RunUI(SkylineWindow.ShowPeakAreaReplicateComparison); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas normalized to heave graph metafile", 38); RunUI(() => SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.none)); WaitForGraphs(); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas no normalization graph metafile", 39); FindNode(hgflprLight); RunUI(() => { SkylineWindow.ShowAllTransitions(); NormalizeGraphToHeavy(); }); WaitForGraphs(); PauseForScreenShot <GraphSummary.AreaGraphView>("Area Ratio to Heavy graph showing interference metafile", 40); RunUI(() => SkylineWindow.ShowGraphPeakArea(false)); RunUI(() => SkylineWindow.ActivateReplicate("E_ 03")); WaitForGraphs(); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile showing slight interference", 40); }
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() { var folderAbsoluteQuant = UseRawFiles ? "AbsoluteQuant" : "AbsoluteQuantMzml"; // Generating a Transition List, p. 4 { var doc = SkylineWindow.Document; var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => { // Predicition Settings transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.Prediction; transitionSettingsUI.PrecursorMassType = MassType.Monoisotopic; transitionSettingsUI.FragmentMassType = MassType.Monoisotopic; transitionSettingsUI.RegressionCEName = "Thermo TSQ Vantage"; transitionSettingsUI.RegressionDPName = Resources.SettingsList_ELEMENT_NONE_None; }); PauseForScreenShot <TransitionSettingsUI.PredictionTab>("Transition Settings - Prediction tab", 4); RunUI(() => { // Filter Settings transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.Filter; transitionSettingsUI.PrecursorCharges = "2"; transitionSettingsUI.ProductCharges = "1"; transitionSettingsUI.FragmentTypes = "y"; transitionSettingsUI.RangeFrom = Resources.TransitionFilter_FragmentStartFinders_ion_3; transitionSettingsUI.RangeTo = Resources.TransitionFilter_FragmentEndFinders_last_ion_minus_1; transitionSettingsUI.SpecialIons = new string[0]; }); PauseForScreenShot <TransitionSettingsUI.FilterTab>("Transition Settings - Filter tab", 4); OkDialog(transitionSettingsUI, transitionSettingsUI.OkDialog); WaitForDocumentChange(doc); } // Configuring Peptide settings p. 4 PeptideSettingsUI peptideSettingsUI = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); RunUI(() => peptideSettingsUI.SelectedTab = PeptideSettingsUI.TABS.Modifications); PauseForScreenShot <PeptideSettingsUI.ModificationsTab>("Peptide Settings - Modification tab", 5); var modHeavyK = new StaticMod("Label:13C(6)15N(2) (C-term K)", "K", ModTerminus.C, false, null, LabelAtoms.C13 | LabelAtoms.N15, RelativeRT.Matching, null, null, null); AddHeavyMod(modHeavyK, peptideSettingsUI, "Edit Isotope Modification over Transition Settings", 5); RunUI(() => peptideSettingsUI.PickedHeavyMods = new[] { modHeavyK.Name }); PauseForScreenShot <PeptideSettingsUI.ModificationsTab>("Peptide Settings - Modification tab with mod added", 5); OkDialog(peptideSettingsUI, peptideSettingsUI.OkDialog); // Inserting a peptide sequence p. 5 using (new CheckDocumentState(1, 1, 2, 10)) { RunUI(() => SetClipboardText("IEAIPQIDK\tGST-tag")); var pasteDlg = ShowDialog <PasteDlg>(SkylineWindow.ShowPastePeptidesDlg); RunUI(pasteDlg.PastePeptides); WaitForProteinMetadataBackgroundLoaderCompletedUI(); PauseForScreenShot <PasteDlg.PeptideListTab>("Insert Peptide List", 6); OkDialog(pasteDlg, pasteDlg.OkDialog); } RunUI(SkylineWindow.ExpandPrecursors); RunUI(() => SkylineWindow.SaveDocument(TestFilesDir.GetTestPath(folderAbsoluteQuant + @"test_file.sky"))); WaitForCondition(() => File.Exists(TestFilesDir.GetTestPath(folderAbsoluteQuant + @"test_file.sky"))); PauseForScreenShot("Main window with Targets view", 6); // Exporting a transition list p. 6 { 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", 7); OkDialog(exportMethodDlg, () => exportMethodDlg.OkDialog(TestFilesDir.GetTestPath("Quant_Abs_Thermo_TSQ_Vantage.csv"))); } // Importing RAW files into Skyline p. 7 var importResultsDlg = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); PauseForScreenShot <ImportResultsDlg>("Import Results - click OK to get shot of Import Results Files and then cancel", 8); RunUI(() => { var rawFiles = DataSourceUtil.GetDataSources(TestFilesDirs[0].FullPath).First().Value.Skip(1); var namedPathSets = from rawFile in rawFiles select new KeyValuePair <string, MsDataFileUri[]>( rawFile.GetFileNameWithoutExtension(), new[] { rawFile }); importResultsDlg.NamedPathSets = namedPathSets.ToArray(); }); RunDlg <ImportResultsNameDlg>(importResultsDlg.OkDialog, importResultsNameDlg => importResultsNameDlg.NoDialog()); WaitForGraphs(); RunUI(() => { SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Molecules, 0); Settings.Default.ArrangeGraphsOrder = GroupGraphsOrder.Document.ToString(); Settings.Default.ArrangeGraphsReversed = false; SkylineWindow.ArrangeGraphsTiled(); SkylineWindow.AutoZoomBestPeak(); }); WaitForCondition(() => Equals(8, SkylineWindow.GraphChromatograms.Count(graphChrom => !graphChrom.IsHidden)), "unexpected visible graphChromatogram count"); WaitForCondition(10 * 60 * 1000, // ten minutes () => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); PauseForScreenShot("Main window with imported data", 9); // Analyzing SRM Data from FOXN1-GST Sample p. 9 RunDlg <ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg1 => { var rawFiles = DataSourceUtil.GetDataSources(TestFilesDirs[0].FullPath).First().Value.Take(1); var namedPathSets = from rawFile in rawFiles select new KeyValuePair <string, MsDataFileUri[]>( rawFile.GetFileNameWithoutExtension(), new[] { rawFile }); importResultsDlg1.NamedPathSets = namedPathSets.ToArray(); importResultsDlg1.OkDialog(); }); WaitForGraphs(); CheckReportCompatibility.CheckAll(SkylineWindow.Document); WaitForCondition(5 * 60 * 1000, // five minutes () => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); RunUI(() => { SkylineWindow.ToggleIntegrateAll(); SkylineWindow.ArrangeGraphsTabbed(); SkylineWindow.ShowRTReplicateGraph(); SkylineWindow.ShowPeakAreaReplicateComparison(); // Total normalization SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_percent_view); }); RunUI(() => SkylineWindow.ActivateReplicate("FOXN1-GST")); WaitForGraphs(); RunUI(() => SkylineWindow.SelectedPath = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.TransitionGroups, 0)); WaitForGraphs(); RunUI(() => { Assert.AreEqual(SkylineWindow.SelectedResultsIndex, SkylineWindow.GraphPeakArea.ResultsIndex); Assert.AreEqual(SkylineWindow.SelectedResultsIndex, SkylineWindow.GraphRetentionTime.ResultsIndex); }); RunUI(() => { int transitionCount = SkylineWindow.DocumentUI.PeptideTransitionGroups.First().TransitionCount; CheckGstGraphs(transitionCount, transitionCount); }); PauseForScreenShot("Main window with Peak Areas, Retention Times and FOXN1-GST for light", 10); RunUI(() => SkylineWindow.SelectedPath = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.TransitionGroups, 1)); WaitForGraphs(); RunUI(() => { int transitionCount = SkylineWindow.DocumentUI.PeptideTransitionGroups.ToArray()[1].TransitionCount; CheckGstGraphs(transitionCount, transitionCount); }); PauseForScreenShot("Main window with Peak Areas, Retention Times and FOXN1-GST for heavy", 10); RunUI(() => SkylineWindow.SelectedPath = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.Molecules, 0)); WaitForGraphs(); // Heavy normalization RunUI(() => SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_ratio_view)); WaitForGraphs(); RunUI(() => { int transitionGroupCount = SkylineWindow.DocumentUI.Peptides.First().TransitionGroupCount; CheckGstGraphs(transitionGroupCount, transitionGroupCount - 1); }); PauseForScreenShot("Main window with totals graphs for light and heavy and FOXN1-GST", 11); // Peptide Quantitification Settings p. 11 var peptideSettingsUi = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); const string quantUnits = "fmol/ul"; RunUI(() => { peptideSettingsUi.SelectedTab = PeptideSettingsUI.TABS.Quantification; peptideSettingsUi.QuantRegressionFit = RegressionFit.LINEAR; peptideSettingsUi.QuantNormalizationMethod = new NormalizationMethod.RatioToLabel(IsotopeLabelType.heavy); peptideSettingsUi.QuantUnits = quantUnits; }); PauseForScreenShot("Peptide Settings Quantification Tab", 12); OkDialog(peptideSettingsUi, peptideSettingsUi.OkDialog); // Specify analyte concentrations of external standards RunUI(() => SkylineWindow.ShowDocumentGrid(true)); var documentGridForm = FindOpenForm <DocumentGridForm>(); RunUI(() => { documentGridForm.ChooseView(Resources.SkylineViewContext_GetDocumentGridRowSources_Replicates); }); WaitForConditionUI(() => documentGridForm.IsComplete); var concentrations = new[] { 40, 12.5, 5, 2.5, 1, .5, .25, .1 }; for (int iRow = 0; iRow < concentrations.Length; iRow++) { // ReSharper disable AccessToModifiedClosure RunUI(() => { var colSampleType = documentGridForm.FindColumn(PropertyPath.Root.Property("SampleType")); documentGridForm.DataGridView.Rows[iRow].Cells[colSampleType.Index].Value = SampleType.STANDARD; }); WaitForConditionUI(() => documentGridForm.IsComplete); RunUI(() => { var colAnalyteConcentration = documentGridForm.FindColumn(PropertyPath.Root.Property("AnalyteConcentration")); var cell = documentGridForm.DataGridView.Rows[iRow].Cells[colAnalyteConcentration.Index]; documentGridForm.DataGridView.CurrentCell = cell; cell.Value = concentrations[iRow]; }); // ReSharper restore AccessToModifiedClosure WaitForConditionUI(() => documentGridForm.IsComplete); } PauseForScreenShot("Document grid with concentrations filled in", 13); // View the calibration curve p. 13 RunUI(() => SkylineWindow.ShowCalibrationForm()); var calibrationForm = FindOpenForm <CalibrationForm>(); PauseForScreenShot("View calibration curve", 14); Assert.AreEqual(CalibrationCurveFitter.AppendUnits(QuantificationStrings.Analyte_Concentration, quantUnits), calibrationForm.ZedGraphControl.GraphPane.XAxis.Title.Text); Assert.AreEqual(string.Format(QuantificationStrings.CalibrationCurveFitter_PeakAreaRatioText__0___1__Peak_Area_Ratio, IsotopeLabelType.light.Title, IsotopeLabelType.heavy.Title), calibrationForm.ZedGraphControl.GraphPane.YAxis.Title.Text); }
private void DoStudy7Test() { // Preparing a Document to Accept the Study 7 Transition List, p. 18 RunUI(() => SkylineWindow.NewDocument()); var peptideSettingsUI1 = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); if (IsCoverShotMode) { var modHeavyK = new StaticMod(HEAVY_K, "K", ModTerminus.C, false, null, LabelAtoms.C13 | LabelAtoms.N15, // Not L10N RelativeRT.Matching, null, null, null); AddHeavyMod(modHeavyK, peptideSettingsUI1, "Edit Isotope Modification form", 6); } var mod13Cr = new StaticMod("Label:13C(6) (C-term R)", "R", ModTerminus.C, false, null, LabelAtoms.C13, RelativeRT.Matching, null, null, null); AddHeavyMod(mod13Cr, peptideSettingsUI1, "Edit Isotope Modification form", 18); RunUI(() => { peptideSettingsUI1.PickedHeavyMods = new[] { "Label:13C(6) (C-term R)", HEAVY_K }; peptideSettingsUI1.PickedLibraries = new string[0]; peptideSettingsUI1.SelectedBackgroundProteome = Resources.SettingsList_ELEMENT_NONE_None; peptideSettingsUI1.OkDialog(); }); // Pasting a Transition List into the Document, p. 19. string clipboardSaveText = string.Empty; RunUI(() => { var filePath = GetTestPath(@"Study 7\Study7 transition list.xls"); SetExcelFileClipboardText(filePath, "Simple", 6, false); clipboardSaveText = ClipboardEx.GetText(); }); // We expect this to fail due to instrument settings rather than format issues eg "The product m/z 1519.78 is out of range for the instrument settings, in the peptide sequence YEVQGEVFTKPQLWP. Check the Instrument tab in the Transition Settings." { var transitionSelectdgl = ShowDialog <ImportTransitionListColumnSelectDlg>(SkylineWindow.Paste); var messageDlg = ShowDialog <ImportTransitionListErrorDlg>(transitionSelectdgl.AcceptButton.PerformClick); AssertEx.AreComparableStrings(TextUtil.SpaceSeparate(Resources.MassListRowReader_CalcTransitionExplanations_The_product_m_z__0__is_out_of_range_for_the_instrument_settings__in_the_peptide_sequence__1_, Resources.MassListRowReader_CalcPrecursorExplanations_Check_the_Instrument_tab_in_the_Transition_Settings), messageDlg.ErrorList[0].ErrorMessage, 2); RunUI(() => messageDlg.Size = new Size(838, 192)); PauseForScreenShot <ImportTransitionListErrorDlg>("Error message form (expected)", 19); OkDialog(messageDlg, messageDlg.CancelButton.PerformClick); // Acknowledge the error but decline to proceed with import RunUI(() => transitionSelectdgl.DialogResult = DialogResult.Cancel); // Cancel the import // Restore the clipboard text after pausing ClipboardEx.SetText(clipboardSaveText); } RunDlg <TransitionSettingsUI>(() => SkylineWindow.ShowTransitionSettingsUI(TransitionSettingsUI.TABS.Instrument), transitionSettingsUI => { transitionSettingsUI.InstrumentMaxMz = 1800; transitionSettingsUI.OkDialog(); }); PasteTransitionListSkipColumnSelect(); RunUI(SkylineWindow.CollapsePeptides); PauseForScreenShot("Targets tree (selected from main window)", 20); // Adjusting Modifications Manually, p. 19. AdjustModifications("AGLCQTFVYGGCR", true, 'V', 747.348); PauseForScreenShot("Target tree clipped from main window", 22); AdjustModifications("IVGGWECEK", true, 'V', 541.763); AdjustModifications("YEVQGEVFTKPQLWP", false, 'L', 913.974); RunUI(() => SkylineWindow.SaveDocument(GetTestPath(@"Study 7\Study7.sky"))); // Importing Data from a Multiple Sample WIFF file, p. 23. var importResultsDlg1 = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); var openDataSourceDialog1 = ShowDialog <OpenDataSourceDialog>(() => importResultsDlg1.NamedPathSets = importResultsDlg1.GetDataSourcePathsFile(null)); RunUI(() => { openDataSourceDialog1.CurrentDirectory = new MsDataFilePath(GetTestPath("Study 7")); openDataSourceDialog1.SelectAllFileType(UseRawFilesOrFullData ? ".wiff" : ".mzML"); // Force true wiff for FullData }); if (UseRawFilesOrFullData) { var importResultsSamplesDlg = ShowDialog <ImportResultsSamplesDlg>(openDataSourceDialog1.Open); PauseForScreenShot <ImportResultsSamplesDlg>("Choose Samples form", 24); RunUI(() => { if (IsFullData) { importResultsSamplesDlg.CheckAll(true); importResultsSamplesDlg.ExcludeSample(0); // Blank importResultsSamplesDlg.ExcludeSample(25); // QC importResultsSamplesDlg.ExcludeSample(26); importResultsSamplesDlg.ExcludeSample(27); importResultsSamplesDlg.ExcludeSample(28); importResultsSamplesDlg.ExcludeSample(45); // A2 importResultsSamplesDlg.ExcludeSample(46); importResultsSamplesDlg.ExcludeSample(47); importResultsSamplesDlg.ExcludeSample(48); importResultsSamplesDlg.ExcludeSample(49); // gradientwash importResultsSamplesDlg.ExcludeSample(50); importResultsSamplesDlg.ExcludeSample(51); importResultsSamplesDlg.ExcludeSample(52); importResultsSamplesDlg.ExcludeSample(53); // A3 importResultsSamplesDlg.ExcludeSample(54); importResultsSamplesDlg.ExcludeSample(55); importResultsSamplesDlg.ExcludeSample(56); } else { importResultsSamplesDlg.CheckAll(false); importResultsSamplesDlg.IncludeSample(1); importResultsSamplesDlg.IncludeSample(2); importResultsSamplesDlg.IncludeSample(11); importResultsSamplesDlg.IncludeSample(12); } }); OkDialog(importResultsSamplesDlg, importResultsSamplesDlg.OkDialog); } else { RunUI(openDataSourceDialog1.Open); } { var importResultsNameDlg = ShowDialog <ImportResultsNameDlg>(importResultsDlg1.OkDialog); PauseForScreenShot <ImportResultsNameDlg>("Import Results Common prefix form", 25); OkDialog(importResultsNameDlg, importResultsNameDlg.YesDialog); } WaitForCondition(() => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); RestoreViewOnScreen(26); // Inspecting and Adjusting Peak Integration, p. 24. RunUI(() => { SkylineWindow.ShowPeakAreaReplicateComparison(); SkylineWindow.ShowGraphRetentionTime(true); SkylineWindow.Size = new Size(1029, 659); }); if (!IsPauseForScreenShots && !IsFullData) { TestApplyToAll(); } PauseForScreenShot <GraphSummary.RTGraphView>("Main window with peaks and retention times showing", 26); CheckReportCompatibility.CheckAll(SkylineWindow.Document); RunUI(SkylineWindow.EditDelete); FindNode("IVGGWECEK"); // Not L10N TransitionGroupTreeNode selNodeGroup = null; RunUI(() => { selNodeGroup = (TransitionGroupTreeNode)SkylineWindow.SequenceTree.SelectedNode.Nodes[1]; Assert.AreEqual(selNodeGroup.StateImageIndex, (int)SequenceTree.StateImageId.peak_blank); }); RunDlg <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI, transitionSettingsUI => { transitionSettingsUI.MZMatchTolerance = 0.065; transitionSettingsUI.OkDialog(); }); RunUI(() => { Assert.AreEqual((int)SequenceTree.StateImageId.peak, selNodeGroup.StateImageIndex); SkylineWindow.ToggleIntegrateAll(); }); RunUI(() => { foreach (PeptideDocNode nodePep in SkylineWindow.Document.Molecules) { string sequence = nodePep.Peptide.Sequence; int imageIndex = PeptideTreeNode.GetPeakImageIndex(nodePep, SkylineWindow.SequenceTree); if ((sequence != null) && (sequence.StartsWith("YLA") || sequence.StartsWith("YEV"))) // Not L10N { Assert.AreEqual((int)SequenceTree.StateImageId.keep, imageIndex, string.Format("Expected keep icon for the peptide {0}, found {1}", sequence, imageIndex)); } else if (sequence != null) { Assert.AreEqual((int)SequenceTree.StateImageId.peak, imageIndex, string.Format("Expected peak icon for the peptide {0}, found {1}", sequence, imageIndex)); } else // Custom Ion { Assert.AreEqual((int)SequenceTree.StateImageId.peak_blank, imageIndex, string.Format("Expected peak_blank icon for the custom ion {0}, found {1}", nodePep.ModifiedTarget, imageIndex)); } } }); PauseForScreenShot("Main window", 27); // Data Inspection with Peak Areas View, p. 29. RestoreViewOnScreen(28); FindNode("SSDLVALSGGHTFGK"); // Not L10N RunUI(NormalizeGraphToHeavy); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph metafile", 29); FindNode((564.7746).ToString(LocalizationHelper.CurrentCulture) + "++"); // ESDTSYVSLK - Not L10N PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph metafile", 30); RunUI(SkylineWindow.ExpandPeptides); string hgflprLight = (363.7059).ToString(LocalizationHelper.CurrentCulture) + "++"; // HGFLPR - Not L10N FindNode(hgflprLight); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph metafile", 31); RunUI(() => SkylineWindow.NormalizeAreaGraphTo(NormalizeOption.TOTAL)); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph normalized metafile", 32); RunUI(() => { SkylineWindow.ShowGraphPeakArea(false); SkylineWindow.ActivateReplicate("E_03"); SkylineWindow.Size = new Size(757, 655); }); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile with interference", 32); RunUI(() => SkylineWindow.ShowGraphPeakArea(true)); RunUI(() => { SkylineWindow.ShowPeakAreaPeptideGraph(); SkylineWindow.ShowTotalTransitions(); SkylineWindow.ShowCVValues(true); SkylineWindow.ShowPeptideOrder(SummaryPeptideOrder.document); }); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas Peptide Comparison graph metafile", 33); float[] concentrations = { 0f, 60, 175, 513, 1500, 2760, 4980, 9060, 16500, 30000 }; var documentGrid = ShowDialog <DocumentGridForm>(() => SkylineWindow.ShowDocumentGrid(true)); var pathConcentration = PropertyPath.Parse("AnalyteConcentration"); var pathSampleType = PropertyPath.Parse("SampleType"); RunUI(() => documentGrid.ChooseView(Resources.SkylineViewContext_GetDocumentGridRowSources_Replicates)); WaitForConditionUI(() => documentGrid.RowCount == (IsFullData ? concentrations.Length * 4 : 4) && documentGrid.FindColumn(pathConcentration) != null && documentGrid.FindColumn(pathSampleType) != null); // Let it initialize RunUI(() => { // Parent is a DocPane and Parent.Parent is the floating window documentGrid.Parent.Parent.Size = new Size(585, 325); var documentGridView = documentGrid.DataGridView; var colConcentration = documentGrid.FindColumn(pathConcentration); var colStandardType = documentGrid.FindColumn(pathSampleType); if (IsFullData) { for (int i = 0; i < concentrations.Length; i++) { for (int j = i * 4; j < (i + 1) * 4; j++) { double?concentration = concentrations[i]; SetCellValue(documentGridView, j, colConcentration.Index, concentration); SetCellValue(documentGridView, j, colStandardType.Index, concentration == 0 ? SampleType.BLANK : SampleType.STANDARD); } } } else { SetCellValue(documentGridView, 0, colConcentration.Index, 0.0); SetCellValue(documentGridView, 0, colStandardType.Index, SampleType.BLANK); SetCellValue(documentGridView, 1, colConcentration.Index, 0.0); SetCellValue(documentGridView, 1, colStandardType.Index, SampleType.BLANK); SetCellValue(documentGridView, 2, colConcentration.Index, 175.0); SetCellValue(documentGridView, 2, colStandardType.Index, SampleType.STANDARD); SetCellValue(documentGridView, 3, colConcentration.Index, 175.0); SetCellValue(documentGridView, 3, colStandardType.Index, SampleType.STANDARD); } }); WaitForGraphs(); PauseForScreenShot <DocumentGridForm>("Document grid filled (scrolled to the end)", 35); RunUI(() => documentGrid.Close()); FindNode("SSDLVALSGGHTFGK"); // Not L10N RunUI(() => { SkylineWindow.ShowPeakAreaReplicateComparison(); var settings = SkylineWindow.DocumentUI.Settings; var valConcentration = ReplicateValue.GetAllReplicateValues(settings).Skip(1).First(); SkylineWindow.GroupByReplicateValue(valConcentration); NormalizeGraphToHeavy(); }); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph with CVs metafile", 36); RunUI(() => SkylineWindow.ShowCVValues(false)); RunUI(() => SkylineWindow.SaveDocument()); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas graph grouped by concentration metafile", 37); PauseForAuditLog(); // Further Exploration, p. 33. RunUI(() => { SkylineWindow.OpenFile(GetTestPath(@"Study 7\Study II\Study 7ii (site 52).sky")); // Not L10N SkylineWindow.ShowPeakAreaPeptideGraph(); SkylineWindow.ShowCVValues(true); }); WaitForCondition(() => SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); RestoreViewOnScreen(38); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas peptide comparison graph metafile", 38); FindNode("LSEPAELTDAVK"); RunUI(() => { SkylineWindow.ShowGraphPeakArea(false); SkylineWindow.Width = 920; SkylineWindow.ShowRTReplicateGraph(); }); PauseForScreenShot <GraphSummary.RTGraphView>("Retention Times replicate graph metafile", 38); FindNode("INDISHTQSVSAK"); RunUI(SkylineWindow.ShowPeakAreaReplicateComparison); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas normalized to heave graph metafile", 39); if (IsCoverShotMode) { RunUI(() => { Settings.Default.ChromatogramFontSize = 14; Settings.Default.AreaFontSize = 14; SkylineWindow.ChangeTextSize(TreeViewMS.LRG_TEXT_FACTOR); SkylineWindow.AutoZoomBestPeak(); }); RestoreCoverViewOnScreen(); RunUI(() => SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SelectedNode.Parent); WaitForGraphs(); RunUI(() => SkylineWindow.SequenceTree.SelectedNode = SkylineWindow.SelectedNode.Nodes[0]); RunUI(SkylineWindow.FocusDocument); TakeCoverShot(); return; } RunUI(() => SkylineWindow.NormalizeAreaGraphTo(NormalizeOption.NONE)); WaitForGraphs(); PauseForScreenShot <GraphSummary.AreaGraphView>("Peak Areas no normalization graph metafile", 40); FindNode(hgflprLight); RunUI(() => { SkylineWindow.ShowAllTransitions(); NormalizeGraphToHeavy(); }); WaitForGraphs(); PauseForScreenShot <GraphSummary.AreaGraphView>("Area Ratio to Heavy graph showing interference metafile", 41); RunUI(() => SkylineWindow.ShowGraphPeakArea(false)); RunUI(() => SkylineWindow.ActivateReplicate("E_ 03")); WaitForGraphs(); PauseForScreenShot <GraphChromatogram>("Chromatogram graph metafile showing slight interference", 41); }
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); }
protected override void DoTest() { var folderAbsoluteQuant = UseRawFiles ? "AbsoluteQuant" : "AbsoluteQuantMzml"; // Generating a Transition List, p. 4 { var doc = SkylineWindow.Document; var transitionSettingsUI = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI); RunUI(() => { // Predicition Settings transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.Prediction; transitionSettingsUI.PrecursorMassType = MassType.Monoisotopic; transitionSettingsUI.FragmentMassType = MassType.Monoisotopic; transitionSettingsUI.RegressionCEName = "Thermo TSQ Vantage"; transitionSettingsUI.RegressionDPName = Resources.SettingsList_ELEMENT_NONE_None; }); PauseForScreenShot <TransitionSettingsUI.PredictionTab>("Transition Settings - Prediction tab", 4); RunUI(() => { // Filter Settings transitionSettingsUI.SelectedTab = TransitionSettingsUI.TABS.Filter; transitionSettingsUI.PrecursorCharges = "2"; transitionSettingsUI.ProductCharges = "1"; transitionSettingsUI.FragmentTypes = "y"; transitionSettingsUI.RangeFrom = Resources.TransitionFilter_FragmentStartFinders_ion_3; transitionSettingsUI.RangeTo = Resources.TransitionFilter_FragmentEndFinders_last_ion_minus_1; transitionSettingsUI.SpecialIons = new string[0]; }); PauseForScreenShot <TransitionSettingsUI.FilterTab>("Transition Settings - Filter tab", 4); OkDialog(transitionSettingsUI, transitionSettingsUI.OkDialog); WaitForDocumentChange(doc); } // Configuring Peptide settings p. 4 PeptideSettingsUI peptideSettingsUI = ShowDialog <PeptideSettingsUI>(SkylineWindow.ShowPeptideSettingsUI); RunUI(() => peptideSettingsUI.SelectedTab = PeptideSettingsUI.TABS.Modifications); PauseForScreenShot <PeptideSettingsUI.ModificationsTab>("Peptide Settings - Modification tab", 5); var modHeavyK = new StaticMod("Label:13C(6)15N(2) (C-term K)", "K", ModTerminus.C, false, null, LabelAtoms.C13 | LabelAtoms.N15, RelativeRT.Matching, null, null, null); AddHeavyMod(modHeavyK, peptideSettingsUI, "Edit Isotope Modification over Transition Settings", 5); RunUI(() => peptideSettingsUI.PickedHeavyMods = new[] { modHeavyK.Name }); PauseForScreenShot <PeptideSettingsUI.ModificationsTab>("Peptide Settings - Modification tab with mod added", 5); OkDialog(peptideSettingsUI, peptideSettingsUI.OkDialog); // Inserting a peptide sequence p. 5 using (new CheckDocumentState(1, 1, 2, 10)) { RunUI(() => SetClipboardText("IEAIPQIDK\tGST-tag")); var pasteDlg = ShowDialog <PasteDlg>(SkylineWindow.ShowPastePeptidesDlg); RunUI(pasteDlg.PastePeptides); WaitForProteinMetadataBackgroundLoaderCompletedUI(); PauseForScreenShot <PasteDlg.PeptideListTab>("Insert Peptide List", 6); OkDialog(pasteDlg, pasteDlg.OkDialog); } RunUI(SkylineWindow.ExpandPrecursors); RunUI(() => SkylineWindow.SaveDocument(TestFilesDir.GetTestPath(folderAbsoluteQuant + @"test_file.sky"))); WaitForCondition(() => File.Exists(TestFilesDir.GetTestPath(folderAbsoluteQuant + @"test_file.sky"))); PauseForScreenShot("Main window with Targets view", 6); // Exporting a transition list p. 6 { 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", 7); OkDialog(exportMethodDlg, () => exportMethodDlg.OkDialog(TestFilesDir.GetTestPath("Quant_Abs_Thermo_TSQ_Vantage.csv"))); } // Importing RAW files into Skyline p. 7 var importResultsDlg = ShowDialog <ImportResultsDlg>(SkylineWindow.ImportResults); PauseForScreenShot <ImportResultsDlg>("Import Results - click OK to get shot of Import Results Files and then cancel", 8); RunUI(() => { var rawFiles = DataSourceUtil.GetDataSources(TestFilesDirs[0].FullPath).First().Value.Skip(1); var namedPathSets = from rawFile in rawFiles select new KeyValuePair <string, MsDataFileUri[]>( rawFile.GetFileNameWithoutExtension(), new[] { rawFile }); importResultsDlg.NamedPathSets = namedPathSets.ToArray(); }); RunDlg <ImportResultsNameDlg>(importResultsDlg.OkDialog, importResultsNameDlg => importResultsNameDlg.NoDialog()); WaitForGraphs(); RunUI(() => { SkylineWindow.SelectedPath = SkylineWindow.Document.GetPathTo((int)SrmDocument.Level.Molecules, 0); Settings.Default.ArrangeGraphsOrder = GroupGraphsOrder.Document.ToString(); Settings.Default.ArrangeGraphsReversed = false; SkylineWindow.ArrangeGraphsTiled(); SkylineWindow.AutoZoomBestPeak(); }); WaitForCondition(() => Equals(8, SkylineWindow.GraphChromatograms.Count(graphChrom => !graphChrom.IsHidden)), "unexpected visible graphChromatogram count"); WaitForCondition(10 * 60 * 1000, // ten minutes () => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); PauseForScreenShot("Main window with imported data", 9); // Analyzing SRM Data from FOXN1-GST Sample p. 9 RunDlg <ImportResultsDlg>(SkylineWindow.ImportResults, importResultsDlg1 => { var rawFiles = DataSourceUtil.GetDataSources(TestFilesDirs[0].FullPath).First().Value.Take(1); var namedPathSets = from rawFile in rawFiles select new KeyValuePair <string, MsDataFileUri[]>( rawFile.GetFileNameWithoutExtension(), new[] { rawFile }); importResultsDlg1.NamedPathSets = namedPathSets.ToArray(); importResultsDlg1.OkDialog(); }); WaitForGraphs(); CheckReportCompatibility.CheckAll(SkylineWindow.Document); WaitForCondition(5 * 60 * 1000, // five minutes () => SkylineWindow.Document.Settings.HasResults && SkylineWindow.Document.Settings.MeasuredResults.IsLoaded); RunUI(() => { SkylineWindow.ToggleIntegrateAll(); SkylineWindow.ArrangeGraphsTabbed(); SkylineWindow.ShowRTReplicateGraph(); SkylineWindow.ShowPeakAreaReplicateComparison(); // Total normalization SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_percent_view); }); RunUI(() => SkylineWindow.ActivateReplicate("FOXN1-GST")); WaitForGraphs(); RunUI(() => SkylineWindow.SelectedPath = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.TransitionGroups, 0)); WaitForGraphs(); RunUI(() => { Assert.AreEqual(SkylineWindow.SelectedResultsIndex, SkylineWindow.GraphPeakArea.ResultsIndex); Assert.AreEqual(SkylineWindow.SelectedResultsIndex, SkylineWindow.GraphRetentionTime.ResultsIndex); }); RunUI(() => { int transitionCount = SkylineWindow.DocumentUI.PeptideTransitionGroups.First().TransitionCount; CheckGstGraphs(transitionCount, transitionCount); }); PauseForScreenShot("Main window with Peak Areas, Retention Times and FOXN1-GST for light", 10); RunUI(() => SkylineWindow.SelectedPath = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.TransitionGroups, 1)); WaitForGraphs(); RunUI(() => { int transitionCount = SkylineWindow.DocumentUI.PeptideTransitionGroups.ToArray()[1].TransitionCount; CheckGstGraphs(transitionCount, transitionCount); }); PauseForScreenShot("Main window with Peak Areas, Retention Times and FOXN1-GST for heavy", 10); RunUI(() => SkylineWindow.SelectedPath = SkylineWindow.DocumentUI.GetPathTo((int)SrmDocument.Level.Molecules, 0)); WaitForGraphs(); // Heavy normalization RunUI(() => SkylineWindow.NormalizeAreaGraphTo(AreaNormalizeToView.area_ratio_view)); WaitForGraphs(); RunUI(() => { int transitionGroupCount = SkylineWindow.DocumentUI.Peptides.First().TransitionGroupCount; CheckGstGraphs(transitionGroupCount, transitionGroupCount - 1); }); PauseForScreenShot("Main window with totals graphs for light and heavy and FOXN1-GST", 11); const int columnsToAddCount = 4; var columnSeparator = TextUtil.CsvSeparator; // Generating a Calibration Curve p. 11 var exportLiveReportDlg = ShowDialog <ExportLiveReportDlg>(SkylineWindow.ShowExportReportDialog); var editReportListDlg = ShowDialog <ManageViewsForm>(exportLiveReportDlg.EditList); const string reportName = "Peptide Ratio Results Test"; var columnsToAdd = new[] { PropertyPath.Parse("Proteins!*.Peptides!*.Sequence"), PropertyPath.Parse("Proteins!*.Name"), PropertyPath.Parse("Replicates!*.Name"), PropertyPath.Parse("Proteins!*.Peptides!*.Results!*.Value.RatioToStandard"), }; Assert.AreEqual(columnsToAddCount, columnsToAdd.Length); { var viewEditor = ShowDialog <ViewEditor>(editReportListDlg.AddView); RunUI(() => { viewEditor.ViewName = reportName; foreach (var id in columnsToAdd) { Assert.IsTrue(viewEditor.ChooseColumnsTab.TrySelect(id), "Unable to select {0}", id); viewEditor.ChooseColumnsTab.AddSelectedColumn(); } Assert.AreEqual(columnsToAdd.Length, viewEditor.ChooseColumnsTab.ColumnCount); }); // TODO: MultiViewProvider not yet supported in Common PauseForScreenShot <ViewEditor>("Edit Report form", 12); OkDialog(viewEditor, viewEditor.OkDialog); } RunUI(editReportListDlg.OkDialog); WaitForClosedForm(editReportListDlg); RunUI(() => { exportLiveReportDlg.ReportName = reportName; exportLiveReportDlg.OkDialog(TestFilesDir.GetTestPath("Calibration.csv"), columnSeparator); }); // Check if export file is correct. string filePath = TestFilesDir.GetTestPath("Calibration.csv"); Assert.IsTrue(File.Exists(filePath)); string[] lines = File.ReadAllLines(filePath); string[] line0 = lines[0].Split(columnSeparator); int count = line0.Length; Assert.IsTrue(lines.Count() == SkylineWindow.Document.Settings.MeasuredResults.Chromatograms.Count + 1); Assert.AreEqual(columnsToAddCount, count); // Check export file data double ratio1 = Double.Parse(lines[1].Split(new[] { columnSeparator }, 4)[3]); double ratio2 = Double.Parse(lines[2].Split(new[] { columnSeparator }, 4)[3]); double ratio3 = Double.Parse(lines[3].Split(new[] { columnSeparator }, 4)[3]); double ratio4 = Double.Parse(lines[4].Split(new[] { columnSeparator }, 4)[3]); double ratio5 = Double.Parse(lines[5].Split(new[] { columnSeparator }, 4)[3]); double ratio6 = Double.Parse(lines[6].Split(new[] { columnSeparator }, 4)[3]); double ratio7 = Double.Parse(lines[7].Split(new[] { columnSeparator }, 4)[3]); double ratio8 = Double.Parse(lines[8].Split(new[] { columnSeparator }, 4)[3]); double ratio9 = Double.Parse(lines[9].Split(new[] { columnSeparator }, 4)[3]); Assert.AreEqual(21.4513, ratio1, 0.1); Assert.AreEqual(6.2568, ratio2, 0.1); Assert.AreEqual(2.0417, ratio3, 0.1); Assert.AreEqual(0.8244, ratio4, 0.1); Assert.AreEqual(0.2809, ratio5, 0.1); Assert.AreEqual(0.1156, ratio6, 0.1); Assert.AreEqual(0.0819, ratio7, 0.1); Assert.AreEqual(0.0248, ratio8, 0.1); Assert.AreEqual(0.7079, ratio9, 0.1); CheckReportCompatibility.CheckAll(SkylineWindow.Document); }