Exemple #1
0
 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;
        }