87 lines
3.2 KiB
Matlab
87 lines
3.2 KiB
Matlab
classdef PDExperiment
|
|
properties
|
|
name
|
|
description
|
|
filename
|
|
subjects
|
|
date
|
|
handle
|
|
settings = PDSettings
|
|
% struct('BaselineCorrection', 0,...
|
|
% 'FilterSize', 100, ...
|
|
% 'BlinkExtension', [10 10],...
|
|
% 'MaximumBlinkSize', 1000,...
|
|
% 'QualityThreshold',50);
|
|
%
|
|
% bl_types = {'None',...
|
|
% 'Average', ...
|
|
% 'Min', ...
|
|
% 'Percentile', ...
|
|
% 'Offset (fitted line)'};
|
|
|
|
aggregates %= PDAggregate;
|
|
|
|
end
|
|
methods
|
|
|
|
function[obj] = PDExperiment(varargin)
|
|
if nargin > 0
|
|
if strcmp(class(varargin{1}), 'PDSubject')
|
|
obj.subjects = varargin{1};
|
|
|
|
for s = 1:length(obj.subjects)
|
|
obj.subjects(s).index = s;
|
|
obj.subjects(s).name = sprintf('Subject %d', s);
|
|
end
|
|
else
|
|
if exist(varargin{1},'dir')
|
|
obj = obj.buildExperiment(varargin{1});
|
|
else
|
|
if strcmp(varargin{1}, 'placeholder');
|
|
% create an empty PDExperiment object (for GUI purposes)
|
|
else
|
|
error('Incorrect path entered / No PDSubjects entered');
|
|
end
|
|
end
|
|
end
|
|
|
|
if nargin ==1
|
|
if (strcmp(varargin{1}, 'placeholder'))
|
|
else
|
|
obj = obj.askForBaseline;
|
|
end
|
|
else
|
|
if ischar(varargin{2})
|
|
is_bl_type = find(strcmp(obj.bl_types, varargin{2}));
|
|
if isempty(is_bl_type)
|
|
warning('Baseline correction type is unknown.');
|
|
obj = obj.askForBaseline;
|
|
|
|
else
|
|
obj.settings.BaselineCorrection = is_bl_type;
|
|
try
|
|
obj.settings.BaselineCorrectionPercentile = varargin{3};
|
|
catch
|
|
end
|
|
|
|
end
|
|
else
|
|
obj.settings.BaselineCorrection = varargin{2};
|
|
end
|
|
|
|
end
|
|
|
|
|
|
else
|
|
error('No subjects entered');
|
|
end
|
|
|
|
|
|
|
|
obj = obj.consolidateSettings;
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
|