0001 function parameters = LoadParameters(filename)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 if ~exist(filename),
0019 error(['File ''' filename ''' not found.']);
0020 end
0021 [pathname,basename] = fileparts(filename);
0022 parameters.session.path = pathname;
0023 parameters.session.name = basename;
0024
0025 if isempty(which('xmltree')),
0026 error('This function requires the <a href="http://www.artefact.tk/software/matlab/xml/">xmltree</a> toolbox by G. Flandin.');
0027 end
0028
0029 t = xmltree(filename);
0030 p = convert(t);
0031 if ~isempty(p.spikeDetection),
0032 parameters.spikeGroups.nGroups = length(p.spikeDetection.channelGroups.group);
0033 if parameters.spikeGroups.nGroups == 1,
0034 parameters.spikeGroups.nSamples = str2num(p.spikeDetection.channelGroups.group.nSamples);
0035 parameters.spikeGroups.peakSamples = str2num(p.spikeDetection.channelGroups.group.peakSampleIndex);
0036 channels = p.spikeDetection.channelGroups.group.channels.channel;
0037 if isa(channels,'cell'),
0038 for channel = 1:length(channels),
0039 parameters.spikeGroups.groups{1}(channel) = str2num(channels{channel});
0040 end
0041 else
0042 parameters.spikeGroups.groups{1} = str2num(channels);
0043 end
0044 else
0045 for group = 1:parameters.spikeGroups.nGroups,
0046 parameters.spikeGroups.nSamples(group) = str2num(p.spikeDetection.channelGroups.group{group}.nSamples);
0047 parameters.spikeGroups.peakSamples(group) = str2num(p.spikeDetection.channelGroups.group{group}.peakSampleIndex);
0048 if isempty(p.spikeDetection.channelGroups.group{group}.channels),
0049 parameters.spikeGroups.groups{group} = [];
0050 continue
0051 end
0052 channels = p.spikeDetection.channelGroups.group{group}.channels.channel;
0053 if isa(channels,'cell'),
0054 for channel = 1:length(channels),
0055 parameters.spikeGroups.groups{group}(channel) = str2num(channels{channel});
0056 end
0057 else
0058 parameters.spikeGroups.groups{group} = str2num(channels);
0059 end
0060 end
0061 end
0062 else
0063 parameters.spikeGroups.nSamples = [];
0064 parameters.spikeGroups.peakSampleIndex = [];
0065 parameters.spikeGroups.groups = {};
0066 parameters.spikeGroups.nGroups = 0;
0067 end
0068
0069 parameters.nChannels = str2num(p.acquisitionSystem.nChannels);
0070 parameters.nBits = str2num(p.acquisitionSystem.nBits);
0071 parameters.rates.lfp = str2num(p.fieldPotentials.lfpSamplingRate);
0072 parameters.rates.wideband = str2num(p.acquisitionSystem.samplingRate);
0073 try
0074 parameters.rates.video = str2num(p.video.samplingRate);
0075 parameters.maxX = str2num(p.video.width);
0076 parameters.maxY = str2num(p.video.height);
0077 catch
0078 parameters.rates.video = 0;
0079 parameters.maxX = 0;
0080 parameters.maxY = 0;
0081 disp('... warning: missing video parameters (set to zero)');
0082 end