/// <summary> /// Read the file at path <paramref name="filePath"/>. /// </summary> /// <param name="filePath"></param> /// <returns></returns> public static SimpleMZIdentMLReader.SimpleMZIdentMLData ReadResultFile(string filePath) { SimpleMZIdentMLReader.SimpleMZIdentMLData results = null; var lowerFilePath = filePath.ToLower(); if (lowerFilePath.EndsWith(".mzid") || lowerFilePath.EndsWith(".mzid.gz")) { var mzidReader = new SimpleMZIdentMLReader(); results = mzidReader.Read(filePath); } else if (lowerFilePath.EndsWith("_ictda.tsv")) { results = DatabaseSearchResultData.ReadResultsFromFileToMzIdData(filePath); } return(results); }
/// <summary> /// Read results from tsv file into group of objects from PSI_Interface /// </summary> /// <param name="idFilePath"></param> /// <returns></returns> public static SimpleMZIdentMLReader.SimpleMZIdentMLData ReadResultsFromFileToMzIdData(string idFilePath) { var databaseSearchResultData = ReadResultsFromFile(idFilePath); var simpleMzIdentMLData = new SimpleMZIdentMLReader.SimpleMZIdentMLData(idFilePath); foreach (var databaseSearchResult in databaseSearchResultData) { var peptide = new SimpleMZIdentMLReader.PeptideRef { Sequence = databaseSearchResult.Sequence }; var identification = new SimpleMZIdentMLReader.SpectrumIdItem { Peptide = peptide, Charge = databaseSearchResult.Charge, ScanNum = databaseSearchResult.ScanNum, SpecEv = databaseSearchResult.SpecEValue, }; // Parse modification var modParts = databaseSearchResult.Modifications.Split(','); if (modParts.Length > 0) { foreach (var part in modParts) { var mod = part.Split(' '); if (mod.Length < 2) { continue; } var modName = mod[0]; var modIndex = Convert.ToInt32(mod[1]); var ipMod = Modification.Get(modName); var modification = new SimpleMZIdentMLReader.Modification { Mass = ipMod.Mass, Tag = modName, }; peptide.ModsAdd(modIndex, modification); } } var proteinAccessions = databaseSearchResult.ProteinName.Split(','); foreach (var accession in proteinAccessions) { var dbSequence = new SimpleMZIdentMLReader.DatabaseSequence { Accession = accession.Trim(), ProteinDescription = databaseSearchResult.ProteinDescription }; var peptideEvidence = new SimpleMZIdentMLReader.PeptideEvidence { DbSeq = dbSequence, Pre = databaseSearchResult.Pre, Post = databaseSearchResult.Post, PeptideRef = identification.Peptide, Start = databaseSearchResult.Start, End = databaseSearchResult.End, }; identification.PepEvidence.Add(peptideEvidence); } simpleMzIdentMLData.Identifications.Add(identification); } return(simpleMzIdentMLData); }