public void GenerateFigure3_Matches(string directory, SpectralComparison comparerType, double mzBinSize, double mzTolerance, double netTolerance, double similarityScoreCutoff, double peptideScore, double peptideFdr, double ionPercent, int numberOfRequiredPeaks) { AlignmentAnalysisWriterFactory.BasePath = @"M:\doc\papers\paperAlignment\Data\figure4"; Console.WriteLine(@"Post-Pre Tests For {0}", directory); var cacheFiles = Directory.GetFiles(directory, "*.mscache"); var msgfFiles = Directory.GetFiles(directory, "*_msgfdb_fht.txt"); Console.WriteLine(@"Building data cache"); var map = cacheFiles.ToDictionary<string, string, FigureBase.PathCache>(path => path.ToLower(), path => null); var data = (from path in msgfFiles let name = path.ToLower().Replace("_msgfdb_fht.txt", ".mscache") let newName = Path.Combine(directory, name) let features = Path.Combine(directory, name) where map.ContainsKey(newName) select new FigureBase.PathCache { Cache = newName, Msgf = path, Features = features }).ToList(); // The options for the analysis var options = new SpectralOptions { MzBinSize = mzBinSize, MzTolerance = mzTolerance, NetTolerance = netTolerance, SimilarityCutoff = similarityScoreCutoff, TopIonPercent = ionPercent, IdScore = peptideScore, ComparerType = comparerType, Fdr = peptideFdr, RequiredPeakCount = numberOfRequiredPeaks }; Console.WriteLine(@"{0}", data.Count); var comparison = 0; for (var i = 0; i < data.Count; i++) { var cachex = data[i]; // Get the raw path stored in the cache file... // then get the dataset object var rawPathX = ScanSummaryCache.ReadPath(cachex.Cache); var datasetX = new AlignmentDataset(rawPathX, "", cachex.Msgf); // create a raw file reader for the datasets using (var readerX = RawLoaderFactory.CreateFileReader(datasetX.RawFile)) { // wrap it in the cached object so we can load scan meta-data var cacheReaderX = new RawLoaderCache(readerX); var cacheDataX = ScanSummaryCache.ReadCache(cachex.Cache); readerX.AddDataFile(rawPathX, 0); cacheReaderX.AddCache(0, cacheDataX); for (var j = i + 1; j < data.Count; j++) { // Then the writer for creating a report var writer = AlignmentAnalysisWriterFactory.Create(AlignmentFigureType.Figure3, "results-figure3-largeScale" + comparison); comparison++; var cachey = data[j]; // Get the raw path stored in the cache file... // then get the dataset object var rawPathY = ScanSummaryCache.ReadPath(cachey.Cache); var datasetY = new AlignmentDataset(rawPathY, "", cachey.Msgf); // create a raw file reader for the datasets using (var readerY = RawLoaderFactory.CreateFileReader(datasetY.RawFile)) { // wrap it in the cached object so we can load scan meta-data var cacheReaderY = new RawLoaderCache(readerY); var cacheDataY = ScanSummaryCache.ReadCache(cachey.Cache); cacheReaderY.AddCache(0, cacheDataY); readerY.AddDataFile(rawPathY, 0); var names = new List<string> { data[i].Cache, data[j].Cache }; // Write the results var analysis = MatchDatasets(comparerType, cacheReaderX, cacheReaderY, options, datasetX, datasetY, names); AlignMatches(analysis, writer); } } } } }
public void GenerateFigure4_MetaMatches(string directory, SpectralComparison comparerType, double mzBinSize, double mzTolerance, double netTolerance, double similarityScoreCutoff, double peptideScore, double peptideFdr, double ionPercent, int numberOfRequiredPeaks, string name) { AlignmentAnalysisWriterFactory.BasePath = @"M:\doc\papers\paperAlignment\Data\figure4"; Console.WriteLine(@"Post-Pre Tests For {0}", directory); var cacheFiles = Directory.GetFiles(directory, "*.mscache"); Console.WriteLine(@"Building data cache"); var data = cacheFiles.Select(path => new FigureBase.PathCache { Cache = path }).ToList(); // The options for the analysis var options = new SpectralOptions { MzBinSize = mzBinSize, MzTolerance = mzTolerance, NetTolerance = netTolerance, SimilarityCutoff = similarityScoreCutoff, TopIonPercent = ionPercent, IdScore = peptideScore, ComparerType = comparerType, Fdr = peptideFdr, RequiredPeakCount = numberOfRequiredPeaks }; var comparison = 0; for (var i = 0; i < data.Count; i++) { var cachex = data[i]; // Get the raw path stored in the cache file... // then get the dataset object var rawPathX = ScanSummaryCache.ReadPath(cachex.Cache); var datasetX = new AlignmentDataset(rawPathX, "", cachex.Msgf); // create a raw file reader for the datasets using (var readerX = RawLoaderFactory.CreateFileReader(datasetX.RawFile)) { // wrap it in the cached object so we can load scan meta-data var cacheReaderX = new RawLoaderCache(readerX); var cacheDataX = ScanSummaryCache.ReadCache(cachex.Cache); readerX.AddDataFile(rawPathX, 0); cacheReaderX.AddCache(0, cacheDataX); for (var j = i + 1; j < data.Count; j++) { var cachey = data[j]; // Get the raw path stored in the cache file... // then get the dataset object var rawPathY = ScanSummaryCache.ReadPath(cachey.Cache); var datasetY = new AlignmentDataset(rawPathY, "", cachey.Msgf); // create a raw file reader for the datasets using (var readerY = RawLoaderFactory.CreateFileReader(datasetY.RawFile)) { // Then the writer for creating a report var writer = AlignmentAnalysisWriterFactory.Create(AlignmentFigureType.Figure3, name + comparison); comparison++; // wrap it in the cached object so we can load scan meta-data var cacheReaderY = new RawLoaderCache(readerY); var cacheDataY = ScanSummaryCache.ReadCache(cachey.Cache); cacheReaderY.AddCache(0, cacheDataY); readerY.AddDataFile(rawPathY, 0); var names = new List<string> { data[i].Cache, data[j].Cache }; var analysis = MatchDatasets(comparerType, readerX, readerY, options, datasetX, datasetY, names); AlignMatches(analysis, writer); writer.Close(); } } } } }