Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 protected virtual void WritePeptideHeader(StreamWriter sw)
 {
     sw.WriteLine(PeptideFormat.GetHeader());
 }
Exemple #6
0
 protected virtual void WritePeptide(StreamWriter sw, IIdentifiedSpectrum mph)
 {
     sw.WriteLine(PeptideFormat.GetString(mph));
 }
Exemple #7
0
        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);
            }
        }