Esempio n. 1
0
        private void ParsePeptidesBlock(List <string> argData)
        {
            _PeptideDict = new Dictionary <int, List <Peptides> >();
            int           PreviousQueryNum = 1;
            List <string> tmpLines         = new List <string>();

            foreach (string line in argData)
            {
                System.Text.RegularExpressions.Match QueryNumMatch = System.Text.RegularExpressions.Regex.Match(line.Split('=')[0].Split('_')[0], "\\d+");
                int QueryNum = Convert.ToInt32(QueryNumMatch.Value);
                if (PreviousQueryNum != QueryNum)
                {
                    int           PreviousPeptideNumber = 1;
                    List <string> PeptideTmp            = new List <string>();
                    //Parse in the same query
                    foreach (string tmpLine in tmpLines)
                    {
                        //Parse different peptide
                        int PeptideNum = Convert.ToInt32(tmpLine.Split('=')[0].Split('_')[1].Substring(1));
                        if (PreviousPeptideNumber != PeptideNum)
                        {
                            string   PeptideTerm = "";
                            string   Primary_NL  = "";
                            Peptides NewQ        = null;
                            foreach (string PeptideLine in PeptideTmp)
                            {
                                if (PeptideLine.Contains("terms"))
                                {
                                    PeptideTerm = PeptideLine.Split('=')[1];
                                }
                                else if (PeptideLine.Contains("primary_nl"))
                                {
                                    Primary_NL = PeptideLine.Split('=')[1];
                                }
                                else
                                {
                                    NewQ = new Peptides(QueryNum, PeptideLine, PeptideTerm, Primary_NL, _SummaryDict[QueryNum]);
                                }
                            }
                            if (!_PeptideDict.ContainsKey(QueryNum))
                            {
                                _PeptideDict.Add(QueryNum, new List <Peptides>());
                            }
                            _PeptideDict[QueryNum].Add(NewQ);
                            PeptideTmp.Clear();
                            PreviousPeptideNumber = PeptideNum;
                        }
                        PeptideTmp.Add(tmpLine); // add line to store the same peptide
                    }
                    tmpLines.Clear();
                    PreviousQueryNum = QueryNum;
                }
                tmpLines.Add(line);     //Add line to store the same query number
            }
        }
Esempio n. 2
0
 private void ParsePeptidesBlock(List<string> argData)
 {
     _PeptideDict = new Dictionary<int, List<Peptides>>();
     int PreviousQueryNum = 1;
     List<string> tmpLines = new List<string>();
     foreach (string line in argData)
     {
         System.Text.RegularExpressions.Match QueryNumMatch = System.Text.RegularExpressions.Regex.Match(line.Split('=')[0].Split('_')[0], "\\d+");
         int QueryNum = Convert.ToInt32(QueryNumMatch.Value);
         if (PreviousQueryNum != QueryNum)
         {
             int PreviousPeptideNumber = 1;
             List<string> PeptideTmp = new List<string>();
             //Parse in the same query
             foreach (string tmpLine in tmpLines)
             {
                 //Parse different peptide
                 int PeptideNum = Convert.ToInt32(tmpLine.Split('=')[0].Split('_')[1].Substring(1));
                 if (PreviousPeptideNumber != PeptideNum)
                 {
                     string PeptideTerm="";
                     string Primary_NL="";
                     Peptides NewQ = null;
                     foreach (string PeptideLine in PeptideTmp)
                     {
                         if(PeptideLine.Contains("terms"))
                         {
                             PeptideTerm = PeptideLine.Split('=')[1];
                         }
                         else if(PeptideLine.Contains("primary_nl"))
                         {
                             Primary_NL  = PeptideLine.Split('=')[1];
                         }
                         else
                         {
                             NewQ = new Peptides(QueryNum,PeptideLine,PeptideTerm,Primary_NL, _SummaryDict[QueryNum]);
                         }
                     }
                     if (!_PeptideDict.ContainsKey(QueryNum))
                     {
                         _PeptideDict.Add(QueryNum, new List<Peptides>());
                     }
                     _PeptideDict[QueryNum].Add(NewQ);
                     PeptideTmp.Clear();
                     PreviousPeptideNumber = PeptideNum;
                 }
                 PeptideTmp.Add(tmpLine); // add line to store the same peptide
             }
             tmpLines.Clear();
             PreviousQueryNum = QueryNum;
         }
         tmpLines.Add(line);     //Add line to store the same query number
     }
 }