public static ISpectraFilter CreateFilter(SpectraFilters filterType) { ISpectraFilter filter = null; switch (filterType) { case SpectraFilters.RawThreshold: filter = new ThresholdSpectralFilter(); break; case SpectraFilters.TopPercent: filter = new TopPercentSpectralFilter(); break; default: break; } return(filter); }
public void TestSpectralSimilarityScore( string pathX, int scanX, string pathY, int scanY, SpectralComparison comparerType, SpectraFilters filterType, double percent, double mzTolerance) { // Convert relative paths to absolute paths pathX = GetPath(pathX); pathY = GetPath(pathY); var spectrumX = GetSpectrum(pathX, scanX); var spectrumY = GetSpectrum(pathY, scanY); var comparer = SpectralComparerFactory.CreateSpectraComparer(comparerType, percent); var filter = SpectrumFilterFactory.CreateFilter(filterType); spectrumX.Peaks = filter.Threshold(spectrumX.Peaks, percent); spectrumY.Peaks = filter.Threshold(spectrumY.Peaks, percent); spectrumX.Peaks = XYData.Bin(spectrumX.Peaks, 0, 2000, mzTolerance); spectrumY.Peaks = XYData.Bin(spectrumY.Peaks, 0, 2000, mzTolerance); var value = comparer.CompareSpectra(spectrumX, spectrumY); var path = Path.GetDirectoryName(pathX); var plotTitle = string.Format("comparison-{2}-{3}-{0}-{1}_{4:0.000}", scanX, scanY, comparerType, percent, value); var pathCompareImage = Path.Combine(path, plotTitle + ".png"); DisplayComparisonPlot(spectrumX, spectrumY, mzTolerance, pathCompareImage, plotTitle); }