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); }
public override IIdentifiedResult ReadFromFile(string fileName) { if (!File.Exists(fileName)) { throw new FileNotFoundException("File not exist : " + fileName); } IIdentifiedResult result = Allocate(); Dictionary <string, IIdentifiedSpectrum> peptideMap = new Dictionary <string, IIdentifiedSpectrum>(); using (StreamReader filein = new StreamReader(new FileStream(fileName, FileMode.Open, FileAccess.Read))) { Progress.SetRange(0, filein.BaseStream.Length); IIdentifiedProteinGroup group; string lastLine = filein.ReadLine(); if (lastLine == null) { return(result); } if (ProteinFormat != null) { ProteinFormat = new LineFormat <IIdentifiedProtein>(ProteinFormat.Factory, lastLine, GetEngineName()); } else { ProteinFormat = new ProteinLineFormat(lastLine, GetEngineName()); } lastLine = filein.ReadLine(); if (lastLine == null) { return(result); } if (PeptideFormat != null) { PeptideFormat = new LineFormat <IIdentifiedSpectrum>(PeptideFormat.Factory, lastLine, GetEngineName()); } else { PeptideFormat = new PeptideLineFormat(lastLine, GetEngineName()); } lastLine = null; while ((group = ReadNextProteinGroup(filein, peptideMap, ref lastLine)) != null) { result.Add(group); } } string fastaFile = fileName + ".fasta"; if (File.Exists(fastaFile)) { IdentifiedResultUtils.FillSequenceFromFasta(fastaFile, result, null); } return(result); }
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); } }