protected override bool IsMatch(PeptideDocNode nodePep)
        {
            // Populate look-ups for later to be able to determine if transitions
            // are fully matched or not.
            _dictChargeToMatchInfo = new Dictionary<int, TransitionMatchInfo>();
            foreach (var nodeGroup in nodePep.TransitionGroups)
            {
                TransitionMatchInfo matchInfo;
                int charge = nodeGroup.TransitionGroup.PrecursorCharge;
                if (!_dictChargeToMatchInfo.TryGetValue(charge, out matchInfo))
                {
                    matchInfo = new TransitionMatchInfo();
                    _dictChargeToMatchInfo.Add(charge, matchInfo);
                }
                matchInfo.AddTransitionGroup(nodeGroup);

                foreach (var nodeTran in nodeGroup.Transitions)
                {
                    matchInfo.AddTransition(nodeTran, nodeGroup);
                }
            }
            // Not actually looking for peptides
            return false;
        }
        protected override bool IsMatch(PeptideDocNode nodePep)
        {
            // Populate look-ups for later to be able to determine if transitions
            // are fully matched or not.
            _dictChargeToMatchInfo = new Dictionary <Adduct, TransitionMatchInfo>();
            foreach (var nodeGroup in nodePep.TransitionGroups)
            {
                TransitionMatchInfo matchInfo;
                var charge = nodeGroup.TransitionGroup.PrecursorAdduct.Unlabeled; // Ignore any isotope labels embedded in adduct (e.g. read M5C13+2H as M+2H)
                if (!_dictChargeToMatchInfo.TryGetValue(charge, out matchInfo))
                {
                    matchInfo = new TransitionMatchInfo();
                    _dictChargeToMatchInfo.Add(charge, matchInfo);
                }
                matchInfo.AddTransitionGroup(nodeGroup);

                foreach (var nodeTran in nodeGroup.Transitions)
                {
                    matchInfo.AddTransition(nodeTran, nodeGroup);
                }
            }
            // Not actually looking for peptides
            return(false);
        }
        protected override bool IsMatch(PeptideDocNode nodePep)
        {
            // Populate look-ups for later to be able to determine if transitions
            // are fully matched or not.
            _dictChargeToMatchInfo = new Dictionary <int, TransitionMatchInfo>();
            foreach (var nodeGroup in nodePep.TransitionGroups)
            {
                TransitionMatchInfo matchInfo;
                int charge = nodeGroup.TransitionGroup.PrecursorCharge;
                if (!_dictChargeToMatchInfo.TryGetValue(charge, out matchInfo))
                {
                    matchInfo = new TransitionMatchInfo();
                    _dictChargeToMatchInfo.Add(charge, matchInfo);
                }
                matchInfo.AddTransitionGroup(nodeGroup);

                foreach (var nodeTran in nodeGroup.Transitions)
                {
                    matchInfo.AddTransition(nodeTran, nodeGroup);
                }
            }
            // Not actually looking for peptides
            return(false);
        }