public void AddMissedCleavages()
        {
            if (this.maxMissedCleavages > 0)
            {
                var missedList = new List <DigestRangeLocation>();
                for (int i = 0; i < this.peptideQue.Count; i++)
                {
                    DigestRangeLocation loc = this.peptideQue[i];

                    for (int iMiss = 0; iMiss < this.maxMissedCleavages; iMiss++)
                    {
                        int j = i + 1 + iMiss;
                        if (j == this.peptideQue.Count)
                        {
                            break;
                        }

                        RangeLocation loc2 = this.peptideQue[j];
                        missedList.Add(new DigestRangeLocation(loc.Min, loc2.Max, iMiss + 1));
                    }
                }

                this.peptideQue.AddRange(missedList);
            }
        }
        public void CreatePeptideFeature(DigestRangeLocation loc)
        {
            if (!this.sequence.Annotation.ContainsKey(PEPTIDE_FEATURE_TYPE))
            {
                this.sequence.Annotation[PEPTIDE_FEATURE_TYPE] = new List <DigestPeptideInfo>();
            }
            var peptides = (List <DigestPeptideInfo>) this.sequence.Annotation[PEPTIDE_FEATURE_TYPE];

            var dpi = new DigestPeptideInfo();

            dpi.ProteinName  = this.sequence.Name;
            dpi.PeptideSeq   = this.sequence.SeqString.Substring(loc.Min - 1, loc.Max - loc.Min + 1);
            dpi.PeptideLoc   = new RangeLocation(loc);
            dpi.MissCleavage = loc.MissCleavage;
            peptides.Add(dpi);
        }