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 } }
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 } }