public static PeptidesAndTransitionGroups GetSelectedPeptides(GraphSummary graphSummary) { return(PeptidesAndTransitionGroups.Get(graphSummary.StateProvider.SelectedNodes, graphSummary.ResultsIndex, int.MaxValue)); }
/// <summary> /// Returns the peptides that are explicitly or implictly selected in the tree view. /// Peptides are implicitly selected when the protein containing them is selected. /// </summary> private PeptidesAndTransitionGroups GetSelectedPeptides() { var peptidesAndTransitionGroups = new PeptidesAndTransitionGroups(); if (!Settings.Default.AllowMultiplePeptideSelection) return peptidesAndTransitionGroups; foreach (var selectedNode in _stateProvider.SelectedNodes) { // Add all peptides from a selected protein. var proteinNode = selectedNode as PeptideGroupTreeNode; if (proteinNode != null) { peptidesAndTransitionGroups.ProteinSelected = true; foreach (var nodePep in proteinNode.DocNode.Molecules) { peptidesAndTransitionGroups.Add(new IdentityPath(proteinNode.Path, nodePep.Id), nodePep); } } else { // Walk up the sequence tree until we find a peptide. var node = (TreeNode) selectedNode; while (node != null && !(node is PeptideTreeNode)) node = node.Parent; var nodePepTree = node as PeptideTreeNode; if (nodePepTree != null) peptidesAndTransitionGroups.Add(nodePepTree.Path, nodePepTree.DocNode); } } if (peptidesAndTransitionGroups.NodePeps.Count == 0) { foreach (var selectedNode in _stateProvider.SelectedNodes) { // Add transition groups directly. var node = (TreeNode) selectedNode; while (node != null && !(node is TransitionGroupTreeNode)) node = node.Parent; if (node != null) { var groupTreeNode = (TransitionGroupTreeNode) node; var pepTreeNode = (PeptideTreeNode) groupTreeNode.Parent; peptidesAndTransitionGroups.Add(pepTreeNode.Path, pepTreeNode.DocNode, groupTreeNode.DocNode); } } } peptidesAndTransitionGroups.Complete(MaxPeptidesDisplayed, _chromIndex); return peptidesAndTransitionGroups; }