-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtotal_spectrum_together.m
49 lines (33 loc) · 1.34 KB
/
total_spectrum_together.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
38
39
40
41
42
43
44
45
46
47
48
49
function total_spectrum_together(input_folder, input_sap, sa_path)
%% initialise
addpath(genpath(sa_path));
addJARsToClassPath();
nzm_multiple = 3;
files_to_process = dir([input_folder filesep '*.imzML']); %gets all imzML files in folder
% Generate preprocessing workflow
preprocessing = PreprocessingWorkflow();
preprocessing.loadWorkflow(input_sap);
peakPicking = GradientPeakDetection();
medianPeakFilter = PeakThresholdFilterMedian(1, nzm_multiple);
peakPicking.addPeakFilter(medianPeakFilter);
intensities = cell(length(files_to_process),1);
%% make spectra from each dataset
for i = 1:length(files_to_process)
% obtain total spectrum
parser = ImzMLParser([files_to_process(i).folder filesep files_to_process(i).name]);
parser.parse;
data = DataOnDisk(parser);
spectrumGeneration = TotalSpectrum();
spectrumGeneration.setPreprocessingWorkflow(preprocessing);
totalSpectrum = spectrumGeneration.process(data);
totalSpectrum = totalSpectrum.get(1);
intensities{i} = totalSpectrum.intensities;
spectralChannels = totalSpectrum.spectralChannels;
end
%% combine intensities
combined_intensities = intensities{1};
for i = 2:length(intensities)
combined_intensities = combined_intensities + intensities{i};
end
intensities = combined_intensities;
save('mean_spectrum_together.mat', 'spectralChannels', 'intensities', 'input_folder', 'input_sap', '-v7.3')