public void PrintOffsetFrequency() { var methodName = MethodBase.GetCurrentMethod().Name; TestUtils.ShowStarting(methodName); if (!File.Exists(TsvFile)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, TsvFile); } var spectrumMatches = InitTest(); using (var debugFile = new StreamWriter(OutputFileName)) { foreach (var spectrumMatch in spectrumMatches) { var offsetFrequencyTable = new PrecursorOffsetFrequencyTable(100, spectrumMatch.PrecursorCharge, 1.005/spectrumMatch.PrecursorCharge); var ionType = _ionTypes[spectrumMatch.PrecursorCharge - 1]; var ion = ionType.GetIon(spectrumMatch.PeptideComposition); var mz = ion.GetMonoIsotopicMz(); offsetFrequencyTable.AddMatches(new List<SpectrumMatch> {spectrumMatch}); var offsetFrequencies = offsetFrequencyTable.GetProbabilities(); debugFile.WriteLine("ScanNum\tM/Z\tPrecursor Charge\tIon Type\tPeptide"); debugFile.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", spectrumMatch.Spectrum.ScanNum, mz, spectrumMatch.PrecursorCharge, ionType.Name, spectrumMatch.Peptide); debugFile.WriteLine("Offset\tM/Z"); foreach (var offsetFrequency in offsetFrequencies) { if (offsetFrequency.Found > 0) debugFile.WriteLine("{0}\t{1}", offsetFrequency.Label, offsetFrequency.Label+mz); } } } }