/// <summary> /// Convert the sequence information from the external types to the internal types /// </summary> /// <param name="peptide"></param> /// <returns></returns> public static Sequence GetIpSequence(this SimpleMZIdentMLReader.PeptideRef peptide) { var aminoAcidSet = new AminoAcidSet(); var sequence = new Sequence(peptide.Sequence, aminoAcidSet); foreach (var mod in peptide.Mods) { var seqIndex = Math.Max(0, mod.Key - 1); var mzidMod = mod.Value; var modification = Modification.Get(mzidMod.Tag, mzidMod.Mass); sequence[seqIndex] = new ModifiedAminoAcid(sequence[seqIndex], modification); } return(new Sequence(sequence)); }
/// <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); }