-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtotal_spectrum.m
37 lines (25 loc) · 1 KB
/
total_spectrum.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function total_spectrum(input_imzml, input_sap, sa_path)
%% initialise
addpath(genpath(sa_path));
addJARsToClassPath();
nzm_multiple = 3;
[filepath,name,ext] = fileparts(input_imzml);
% Generate preprocessing workflow
preprocessing = PreprocessingWorkflow();
preprocessing.loadWorkflow(input_sap);
peakPicking = GradientPeakDetection();
medianPeakFilter = PeakThresholdFilterMedian(1, nzm_multiple);
peakPicking.addPeakFilter(medianPeakFilter);
%% make datacubes from each dataset
% obtain total spectrum
disp(['Generating Total Spectrum for ' ,input_imzml]);
parser = ImzMLParser(input_imzml);
parser.parse;
data = DataOnDisk(parser);
spectrumGeneration = TotalSpectrum();
spectrumGeneration.setPreprocessingWorkflow(preprocessing);
totalSpectrum = spectrumGeneration.process(data);
totalSpectrum = totalSpectrum.get(1);
spectralChannels = totalSpectrum.spectralChannels;
intensities = totalSpectrum.intensities;
save('mean_spectrum.mat', 'totalSpectrum', 'spectralChannels', 'intensities', 'input_imzml', '-v7.3')