public void TestRead() { var mods = MaxQuantModificationList.ReadFromFile(TestContext.CurrentContext.TestDirectory + "/../../../data/maxquant_modifications.xml"); Assert.AreEqual(550, mods.Count); Assert.AreEqual("Acetyl (K)", mods[0].FullName); Assert.AreEqual("(ac)", mods[0].ShortName); Assert.AreEqual("C2H2O", mods[0].Composition.ToString()); Assert.AreEqual("Cysteinyl - carbamidomethyl", mods[549].FullName); Assert.AreEqual("(cy)", mods[549].ShortName); Assert.AreEqual("CH2OS", mods[549].Composition.ToString()); }
public List <IIdentifiedSpectrum> ExtractPeptides(Dictionary <string, MaxQuantModificationItem> shortModMap, string peptideFile) { var mods = MaxQuantModificationList.ReadFromFile(_option.MaxQuantModificationXml); var sites = new AnnotationFormat().ReadFromFile(_option.MaxQuantSiteFile); var msmsIds = new HashSet <string>(from s in sites let msmsids = s.Annotations["MS/MS IDs"] as string let msmsIdList = msmsids.Split(';') from msmsId in msmsIdList select msmsId); var format = new AnnotationFormat(); var msmsList = format.ReadFromFile(_option.MaxQuantMSMSFile); msmsList.RemoveAll(l => !msmsIds.Contains(l.Annotations["id"].ToString())); using (var sw = new StreamWriter(peptideFile)) { sw.WriteLine("FileScan\tSequence\tMH+\tDiff(MH+)\tCharge\tScore\tReference\tModification\tRetentionTime"); foreach (var msms in msmsList) { string modification; string modifiedSequence; ParseModification(msms, shortModMap, mods, out modification, out modifiedSequence); var mh = double.Parse(msms.Annotations["Mass"].ToString()) + Atom.H.MonoMass; var diffStr = msms.Annotations["Mass Error [ppm]"].ToString(); var diffmh = diffStr.Equals("NaN") ? 0 : PrecursorUtils.ppm2mz(mh, double.Parse(diffStr)); sw.WriteLine("{0},{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}", msms.Annotations["Raw file"], msms.Annotations["Scan number"], modifiedSequence, mh, diffmh, msms.Annotations["Charge"], msms.Annotations["Score"], msms.Annotations["Proteins"].ToString().Replace(";", "/"), modification, msms.Annotations["Retention time"]); } } return(new MascotPeptideTextFormat().ReadFromFile(peptideFile)); }