public override void WriteToFile(string filename, List <IIdentifiedSpectrum> t) { using (var sw = new StreamWriter(filename)) { sw.WriteLine(PeptideFormat.GetHeader()); foreach (IIdentifiedSpectrum mph in t) { sw.WriteLine(PeptideFormat.GetString(mph)); } if (!NotExportSummary) { sw.WriteLine(); sw.WriteLine("----- summary -----"); var totalCount = IdentifiedSpectrumUtils.GetSpectrumCount(t); var totalUniqueCount = IdentifiedSpectrumUtils.GetUniquePeptideCount(t); sw.WriteLine("Total spectra: " + totalCount); sw.WriteLine("Total peptides: " + totalUniqueCount); var tags = (from s in t select s.Tag).Distinct().ToList(); if (tags.Count > 1) { tags.Sort(); sw.WriteLine(); sw.WriteLine("Tag\tSpectra\tPeptides"); sw.WriteLine("All\t{0}\t{1}", totalCount, totalUniqueCount); foreach (var tag in tags) { var tagspectra = from s in t where s.Tag == tag select s; sw.WriteLine("{0}\t{1}\t{2}", tag, IdentifiedSpectrumUtils.GetSpectrumCount(tagspectra), IdentifiedSpectrumUtils.GetUniquePeptideCount(tagspectra)); } } } } string enzymeFile = filename + ".enzyme"; new ProteaseFile().Write(enzymeFile, t); }
public override List <IIdentifiedSpectrum> ReadFromFile(string filename) { var result = new List <IIdentifiedSpectrum>(); using (var sr = new StreamReader(filename)) { string line = sr.ReadLine(); if (IgnoreComments) { while (line != null && line.StartsWith("#")) { line = sr.ReadLine(); } } this.PeptideFormat = new PeptideLineFormat(line); while ((line = sr.ReadLine()) != null) { if (line.Trim().Length == 0) { break; } result.Add(PeptideFormat.ParseString(line)); } } string enzymeFile = filename + ".enzyme"; if (File.Exists(enzymeFile)) { new ProteaseFile().Fill(enzymeFile, result); } DoAfterRead(result); return(result); }
private IIdentifiedProteinGroup ReadNextProteinGroup(StreamReader filein, Dictionary <string, IIdentifiedSpectrum> peptideMap, ref string lastLine) { Progress.SetPosition(filein.BaseStream.Position); while (!IdentifiedResultUtils.IsProteinLine(lastLine) && (lastLine = filein.ReadLine()) != null) { } if (lastLine == null) { return(null); } IIdentifiedProteinGroup result = new IdentifiedProteinGroup(); while (IdentifiedResultUtils.IsProteinLine(lastLine)) { IIdentifiedProtein protein = ProteinFormat.ParseString(lastLine); result.Add(protein); protein.GroupIndex = IdentifiedResultUtils.GetGroupIndex(lastLine); lastLine = filein.ReadLine(); } List <IIdentifiedSpectrum> peptides = new List <IIdentifiedSpectrum>(); while (!IdentifiedResultUtils.IsProteinLine(lastLine)) { if (Progress.IsCancellationPending()) { throw new UserTerminatedException(); } IIdentifiedSpectrum mphit = PeptideFormat.ParseString(lastLine); string id = string.Format("{0}-{1}-{2}-{3}", mphit.Query.FileScan.LongFileName, mphit.Rank, mphit.Engine, mphit.Tag); if (!peptideMap.ContainsKey(id)) { peptideMap[id] = mphit; } else { mphit = peptideMap[id]; } peptides.Add(mphit); lastLine = filein.ReadLine(); if (lastLine == null || lastLine.Trim().Length == 0) { break; } } foreach (IIdentifiedSpectrum hit in peptides) { result.AddIdentifiedSpectrum(hit); } return(result); }
public void Initialize(List <IIdentifiedSpectrum> spectra) { string oldPeptideHeader = PeptideFormat == null?GetDefaultPeptideHeader() : PeptideFormat.GetHeader(); List <string> pepAnnotations = AnnotationUtils.GetAnnotationKeys(spectra); string newPeptideHeader = StringUtils.GetMergedHeader(oldPeptideHeader, pepAnnotations, '\t'); PeptideFormat = new PeptideLineFormat(newPeptideHeader, GetEngineName(), spectra); }
protected virtual void WritePeptideHeader(StreamWriter sw) { sw.WriteLine(PeptideFormat.GetHeader()); }
protected virtual void WritePeptide(StreamWriter sw, IIdentifiedSpectrum mph) { sw.WriteLine(PeptideFormat.GetString(mph)); }
public void InitializeByResult(IIdentifiedResult identifiedResult) { string oldProteinHeader = ProteinFormat == null?GetDefaultProteinHeader() : ProteinFormat.GetHeader(); InitializeProteinFormat(identifiedResult, oldProteinHeader); string oldPeptideHeader = PeptideFormat == null?GetDefaultPeptideHeader() : PeptideFormat.GetHeader(); InitializePeptideFormat(identifiedResult, oldPeptideHeader); }
public override void WriteToFile(string fileName, IIdentifiedResult identifiedResult) { CheckFormat(identifiedResult); List <IIdentifiedSpectrum> allSpectra = identifiedResult.GetSpectra(); for (int i = 0; i < allSpectra.Count; i++) { allSpectra[i].Id = i.ToString(); } string linkFilename = GetLinkFileName(fileName); HashSet <IIdentifiedSpectrum> spectra = new HashSet <IIdentifiedSpectrum>(); using (var linkWriter = new StreamWriter(linkFilename)) { linkWriter.WriteLine("PeptideId\tGroupId"); using (var sw = new StreamWriter(fileName)) { sw.WriteLine(ProteinFormat.GetHeader()); var groups = GetValidGroups(identifiedResult); foreach (IIdentifiedProteinGroup mpg in groups) { GroupWriter.WriteToStream(sw, mpg); var validSpectra = GetValidSpectra(mpg.GetSortedPeptides()); foreach (var spectrum in validSpectra) { linkWriter.WriteLine(spectrum.Id + "\t" + mpg.Index); } spectra.UnionWith(validSpectra); } } } var finalSpectra = from s in spectra orderby s.Id select s; string peptideFile = GetPeptideFileName(fileName); if (!PeptideFormat.GetHeader().Contains("Id\t")) { PeptideFormat = new PeptideLineFormat("Id\t" + PeptideFormat.GetHeader()); } using (var sw = new StreamWriter(peptideFile)) { WritePeptideHeader(sw); foreach (IIdentifiedSpectrum mph in finalSpectra) { WritePeptide(sw, mph); } } if (identifiedResult.Count > 0 && identifiedResult[0][0].Sequence != null) { string fastaFilename = fileName + ".fasta"; WriteFastaFile(fastaFilename, identifiedResult); } }