private void WriteProteinOneLine(StreamWriter sw, IIdentifiedProteinGroup mpg, IdentifiedProteinTextWriter proteinWriter) { //find user-defined protein IIdentifiedProtein filtered = null; foreach (Regex reg in this.perferAccessNumberRegexs) { foreach (IIdentifiedProtein mp in mpg) { if (reg.Match(mp.Name).Success) { filtered = mp; break; } } if (filtered != null) { break; } } string name; string reference; if (filtered != null) { name = filtered.Name; reference = filtered.Description; filtered.UniquePeptideCount = mpg[0].UniquePeptideCount; } else { var names = new StringBuilder(); var refs = new StringBuilder(); for (int proteinIndex = 0; proteinIndex < mpg.Count; proteinIndex++) { names.Append(" ! ").Append(mpg[proteinIndex].Name); refs.Append(" ! ").Append(mpg[proteinIndex].Description); IIdentifiedProtein mpro = mpg[proteinIndex]; mpro.UniquePeptideCount = mpg[0].UniquePeptideCount; } filtered = mpg[0]; name = names.ToString().Substring(3); reference = refs.ToString().Substring(3); } sw.WriteLine("${0}-1\t{1}\t{2}{3}", mpg.Index, name, reference, proteinWriter.GetString(filtered)); }
private void WriteProteinMultipleLines(StreamWriter sw, IIdentifiedProteinGroup mpg, IdentifiedProteinTextWriter proteinWriter) { for (int proteinIndex = 0; proteinIndex < mpg.Count; proteinIndex++) { IIdentifiedProtein mpro = mpg[proteinIndex]; mpro.UniquePeptideCount = mpg[0].UniquePeptideCount; sw.WriteLine("${0}-{1}\t{2}\t{3}\t{4}", mpg.Index, proteinIndex + 1, mpro.Name, mpro.Description, proteinWriter.GetString(mpro)); } }