예제 #1
0
        public static void WritePepXml()
        {
            string filePath = Path.Combine(Examples.BASE_DIRECTORY, "example.pepXML");

            Console.WriteLine("Writting to " + filePath);
            using (PepXmlWriter writer = new PepXmlWriter(filePath))
            {
                writer.WriteSampleProtease(Protease.GetProtease("Trypsin"));

                writer.StartSearchSummary("OMSSA", true, true);

                writer.WriteProteinDatabase("Resources/yeast_uniprot_120226.fasta");

                writer.WriteSearchProtease(Protease.GetProtease("Trypsin"), 3);

                writer.WriteModification(ModificationDictionary.GetModification("Acetyl"), ModificationSites.K | ModificationSites.NPep);
                writer.WriteModification(ModificationDictionary.GetModification("CAM"), ModificationSites.C);

                writer.WriteModification(ModificationDictionary.GetModification("Phospho"), ModificationSites.S | ModificationSites.T | ModificationSites.Y, false);

                writer.SetCurrentStage(PepXmlWriter.Stage.Spectra, true);

                writer.StartSpectrum(15, 1.234, 523.4324, 3);

                PeptideSpectralMatch psm = new PeptideSpectralMatch(PeptideSpectralMatchScoreType.OmssaEvalue);
                psm.Score = 1.5e-5;
                Protein protein = new Protein("", "Test Protein");
                psm.Peptide = new Peptide("DEREK", protein);
                psm.Charge  = 3;
                writer.WritePSM(psm);

                writer.EndSpectrum();
            }
        }
예제 #2
0
        public override IEnumerable <string> Process(string filename)
        {
            var parser = new OutParser();

            string resultFilename;

            if (null == this.targetDir)
            {
                resultFilename = FileUtils.ChangeExtension(filename, ".xml");
            }
            else
            {
                resultFilename = targetDir + "/" + FileUtils.ChangeExtension(new FileInfo(filename).Name, ".xml");
            }


            using (PepXmlWriter writer = new PepXmlWriter("out"))
            {
                writer.Open(resultFilename);

                writer.OpenMsmsRunSummary(filename);

                SequestParam sp = new SequestParamFile().ReadFromFile(filename);

                writer.WriteSequestParam(sp);

                using (var reader = new OutsReader(filename))
                {
                    int totalCount = reader.FileCount;
                    Progress.SetRange(0, totalCount);
                    int currentCount = 0;

                    while (reader.HasNext)
                    {
                        if (Progress.IsCancellationPending())
                        {
                            throw new UserTerminatedException();
                        }

                        List <string>       contents = reader.NextContent();
                        IIdentifiedSpectrum sph      = parser.Parse(contents);
                        if (sph == null)
                        {
                            continue;
                        }

                        writer.WriteSequestPeptideHit(sph);

                        currentCount++;
                        Progress.SetPosition(currentCount);
                    }
                    Progress.SetPosition(totalCount);
                }
                writer.CloseMsmsRunSummary();
            }

            return(new[] { resultFilename });
        }
예제 #3
0
        public void Convert(string omssaCSV, MSDataFile dataFile)
        {
            string filePath = Path.ChangeExtension(omssaCSV, ".pepxml");

            using (PepXmlWriter writer = new PepXmlWriter(filePath))
            {
                writer.WriteSampleProtease(Protease);

                writer.StartSearchSummary("OMSSA", true, true);

                writer.WriteProteinDatabase(FastaDatabaseFile);

                writer.WriteSearchProtease(Protease, MissedClevages);

                foreach (int modNumber in FixedMods)
                {
                    OmssaModification mod;
                    if (OmssaModification.TryGetModification(modNumber, out mod))
                    {
                        writer.WriteModification(mod, mod.Sites, true);
                    }
                }

                foreach (int modNumber in VariableMods)
                {
                    OmssaModification mod;
                    if (OmssaModification.TryGetModification(modNumber, out mod))
                    {
                        writer.WriteModification(mod, mod.Sites, false);
                    }
                }


                writer.SetCurrentStage(PepXmlWriter.Stage.Spectra, true);

                using (OmssaCsvPsmReader reader = new OmssaCsvPsmReader(omssaCSV, UserModFile))
                {
                    reader.AddMSDataFile(dataFile);
                    reader.LoadProteins(FastaDatabaseFile);
                    foreach (PeptideSpectralMatch psm in reader.ReadNextPsm())
                    {
                        writer.StartSpectrum(psm.SpectrumNumber, psm.Spectrum.RetentionTime, psm.Spectrum.PrecursorMz, psm.Spectrum.PrecursorCharge);
                        writer.WritePSM(psm);
                        writer.EndSpectrum();
                    }
                }
            }
        }