public void TestGetModifiedSequence() { var seq = "NIDVLEGNEQFINAAKIITHPNFNGNTLDND"; var modifications = "X;X;X;X;X;X;X;X;X;X;X;X;X;X;X;Dimethyl (K);X;X;X;X;X;X;X;X;X;X;X;X;X;X;X"; var actual = MaxQuantPeptideTextReader.GetModifiedSequence(seq, modifications); Assert.AreEqual("NIDVLEGNEQFINAAK(Dimethyl)IITHPNFNGNTLDND", actual); }
public void TestRead() { MaxQuantPeptideTextReader reader = new MaxQuantPeptideTextReader(); var spectra = reader.ReadFromFile(TestContext.CurrentContext.TestDirectory + "/../../../data/maxquant_sites.txt"); Assert.AreEqual(162, spectra.Count); Assert.AreEqual("LQR_SCS_Nu_CA_SAX_Online_071226_06", spectra[0].Query.FileScan.Experimental); Assert.AreEqual(12044, spectra[0].Query.FileScan.FirstScan); Assert.AreEqual(0.000888, spectra[0].ExpectValue, 0.000001); Assert.AreEqual(21.4, spectra[0].Score, 0.0001); Assert.AreEqual("ASEDES*DLEDEEEKSQEDTEQK", spectra[0].Sequence); Assert.AreEqual("#S*GEDEQQEQTIAEDLVVTK", spectra[15].Sequence); Assert.AreEqual("*", reader.ModificationMap["(ph)"]); Assert.AreEqual("#", reader.ModificationMap["(ac)"]); Assert.AreEqual("@", reader.ModificationMap["(ox)"]); }
public override IEnumerable <string> Process() { var spectra = new MaxQuantPeptideTextReader().ReadFromFile(options.SiteFile); spectra.RemoveAll(m => m.DeltaScore < options.MinDeltaScore || m.Probability < options.MinProbability); spectra = (from g in spectra.GroupBy(m => m.Query.FileScan.ShortFileName) select g.OrderBy(l => l.Score).Last()).ToList(); if (options.IsSILAC) { var spmap = spectra.ToDictionary(m => m.Query.FileScan.ShortFileName); var existModificationChar = (from sp in spectra from c in sp.Sequence where !char.IsLetter(c) select c).Distinct().Count(); Dictionary <char, char> labelChars = new Dictionary <char, char>(); foreach (var c in options.SILACAminoacids) { labelChars[c] = ModificationConsts.MODIFICATION_CHAR[++existModificationChar]; } using (var sr = new StreamReader(options.MSMSFile)) { var headers = sr.ReadLine().Split('\t'); var rawIndex = Array.IndexOf(headers, "Raw file"); var scanIndex = Array.IndexOf(headers, "Scan number"); string line; while ((line = sr.ReadLine()) != null) { if (string.IsNullOrWhiteSpace(line)) { break; } var parts = line.Split('\t'); var raw = parts[rawIndex]; var scan = int.Parse(parts[scanIndex]); var sf = new SequestFilename(raw, scan, scan, 0, ""); var name = sf.ShortFileName; IIdentifiedSpectrum sp; if (spmap.TryGetValue(name, out sp)) { foreach (var pep in sp.Peptides) { var seq = pep.Sequence; StringBuilder sb = new StringBuilder(); for (int i = seq.Length - 1; i >= 0; i--) { char heavyChar; if (labelChars.TryGetValue(seq[i], out heavyChar)) { sb.Append(heavyChar); } sb.Append(seq[i]); } pep.Sequence = SequenceUtils.GetReversedSequence(sb.ToString()); } } } } } string resultFilename = options.SiteFile + ".peptides"; new MascotPeptideTextFormat("\t\"File, Scan(s)\"\tSequence\tCharge\tScore\tDeltaScore\tExpectValue\tPValue\tModification").WriteToFile(resultFilename, spectra); return(new[] { resultFilename }); }