annotate parameterStore/MAPparamsStd.m @ 24:a5e4a43c1673

major revision looks stable
author Ray Meddis <rmeddis@essex.ac.uk>
date Thu, 16 Jun 2011 16:43:49 +0100
parents 4ef8e0e63866
children b03ef38fe497
rev   line source
rmeddis@10 1 function method=MAPparamsStd ...
rmeddis@10 2 (BFlist, sampleRate, showParams)
rmeddis@10 3 % MAPparams<> establishes a complete set of MAP parameters
rmeddis@10 4 % Parameter file names must be of the form <MAPparams> <name>
rmeddis@10 5 %
rmeddis@10 6 % input arguments
rmeddis@10 7 % BFlist (optional) specifies the desired list of channel BFs
rmeddis@10 8 % otherwise defaults set below
rmeddis@10 9 % sampleRate (optional), default is 50000.
rmeddis@10 10 % showParams (optional) =1 prints out the complete set of parameters
rmeddis@10 11 % output argument
rmeddis@10 12 % method passes a miscelleny of values
rmeddis@10 13
rmeddis@10 14 global inputStimulusParams OMEParams DRNLParams
rmeddis@10 15 global IHC_VResp_VivoParams IHCpreSynapseParams AN_IHCsynapseParams
rmeddis@10 16 global MacGregorParams MacGregorMultiParams filteredSACFParams
rmeddis@10 17 global experiment % used by calls from multiThreshold only
rmeddis@10 18 global IHC_cilia_RPParams
rmeddis@10 19
rmeddis@10 20 currentFile=mfilename; % i.e. the name of this mfile
rmeddis@10 21 method.parameterSource=currentFile(10:end); % for the record
rmeddis@10 22
rmeddis@10 23 switchOffEfferent=0;
rmeddis@10 24 efferentDelay=0.010;
rmeddis@10 25 method.segmentDuration=efferentDelay;
rmeddis@10 26
rmeddis@10 27 if nargin<3, showParams=0; end
rmeddis@10 28 if nargin<2, sampleRate=50000; end
rmeddis@10 29 if nargin<1 || BFlist(1)<0 % if BFlist= -1, set BFlist to default
rmeddis@10 30 lowestBF=250; highestBF= 8000; numChannels=21;
rmeddis@10 31 % 21 chs (250-8k)includes BFs at 250 500 1000 2000 4000 8000
rmeddis@10 32 BFlist=round(logspace(log10(lowestBF),log10(highestBF),numChannels));
rmeddis@10 33 end
rmeddis@10 34 % BFlist=1000;
rmeddis@10 35
rmeddis@10 36 % preserve for backward campatibility
rmeddis@10 37 method.nonlinCF=BFlist;
rmeddis@10 38 method.dt=1/sampleRate;
rmeddis@10 39
rmeddis@10 40 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
rmeddis@10 41 % set model parameters
rmeddis@10 42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
rmeddis@10 43
rmeddis@10 44 %% #1 inputStimulus
rmeddis@10 45 inputStimulusParams=[];
rmeddis@10 46 inputStimulusParams.sampleRate= sampleRate;
rmeddis@10 47
rmeddis@10 48 %% #2 outerMiddleEar
rmeddis@10 49 OMEParams=[]; % clear the structure first
rmeddis@10 50 % outer ear resonances band pass filter [gain lp order hp]
rmeddis@10 51 OMEParams.externalResonanceFilters= [ 10 1 1000 4000];
rmeddis@10 52
rmeddis@10 53 % highpass stapes filter
rmeddis@10 54 % Huber gives 2e-9 m at 80 dB and 1 kHz (2e-13 at 0 dB SPL)
rmeddis@10 55 OMEParams.OMEstapesLPcutoff= 1000;
rmeddis@10 56 OMEParams.stapesScalar= 45e-9;
rmeddis@10 57
rmeddis@10 58 % Acoustic reflex: maximum attenuation should be around 25 dB Price (1966)
rmeddis@10 59 % i.e. a minimum ratio of 0.056.
rmeddis@10 60 if ~switchOffEfferent
rmeddis@10 61 % 'spikes' model: AR based on brainstem spiking activity (LSR)
rmeddis@10 62 OMEParams.rateToAttenuationFactor=0.003; % * N(all ICspikes)
rmeddis@10 63 % OMEParams.rateToAttenuationFactor=0; % * N(all ICspikes)
rmeddis@10 64 % 'probability model': Ar based on An firing probabilities (LSR)
rmeddis@10 65 OMEParams.rateToAttenuationFactorProb=0.005;% * N(all ANrates)
rmeddis@10 66 % OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
rmeddis@10 67 else
rmeddis@10 68 OMEParams.rateToAttenuationFactor=0; % 0= off
rmeddis@10 69 OMEParams.rateToAttenuationFactorProb=0; % 0= off
rmeddis@10 70 end
rmeddis@10 71 % asymptote should be around 100-200 ms
rmeddis@10 72 OMEParams.ARtau=.05; % AR smoothing function
rmeddis@10 73 % delay must be longer than the segment length
rmeddis@10 74 OMEParams.ARdelay=efferentDelay; %Moss gives 8.5 ms latency
rmeddis@10 75 OMEParams.ARrateThreshold=0;
rmeddis@10 76
rmeddis@10 77 %% #3 DRNL
rmeddis@10 78 DRNLParams=[]; % clear the structure first
rmeddis@10 79 DRNLParams.BFlist=BFlist;
rmeddis@10 80
rmeddis@10 81 % DRNL nonlinear path
rmeddis@10 82 DRNLParams.a=3e4; % nonlinear path gain (below compression threshold)
rmeddis@10 83 % DRNLParams.a=3e2; % DRNL.a=0 means no OHCs (no nonlinear path)
rmeddis@10 84
rmeddis@10 85 DRNLParams.b=8e-6; % *compression threshold raised compression
rmeddis@10 86 % DRNLParams.b=1; % b=1 means no compression
rmeddis@10 87
rmeddis@10 88 DRNLParams.c=0.2; % compression exponent
rmeddis@10 89 % nonlinear filters
rmeddis@10 90 DRNLParams.nonlinCFs=BFlist;
rmeddis@10 91 DRNLParams.nonlinOrder= 3; % order of nonlinear gammatone filters
rmeddis@10 92 p=0.2895; q=170; % human (% p=0.14; q=366; % cat)
rmeddis@10 93 DRNLParams.nlBWs= p * BFlist + q;
rmeddis@10 94 DRNLParams.p=p; DRNLParams.q=q; % save p and q for printing only
rmeddis@10 95
rmeddis@10 96 % DRNL linear path:
rmeddis@10 97 DRNLParams.g=100; % linear path gain factor
rmeddis@10 98 % linCF is not necessarily the same as nonlinCF
rmeddis@10 99 minLinCF=153.13; coeffLinCF=0.7341; % linCF>nonlinBF for BF < 1 kHz
rmeddis@10 100 DRNLParams.linCFs=minLinCF+coeffLinCF*BFlist;
rmeddis@10 101 DRNLParams.linOrder= 3; % order of linear gammatone filters
rmeddis@10 102 minLinBW=100; coeffLinBW=0.6531;
rmeddis@10 103 DRNLParams.linBWs=minLinBW + coeffLinBW*BFlist; % bandwidths of linear filters
rmeddis@10 104
rmeddis@10 105 % DRNL MOC efferents
rmeddis@10 106 DRNLParams.MOCdelay = efferentDelay; % must be < segment length!
rmeddis@10 107 if ~switchOffEfferent
rmeddis@10 108 % 'spikes' model: MOC based on brainstem spiking activity (HSR)
rmeddis@10 109 DRNLParams.rateToAttenuationFactor = .009; % strength of MOC
rmeddis@10 110 DRNLParams.rateToAttenuationFactor = .009; % strength of MOC
rmeddis@10 111 % DRNLParams.rateToAttenuationFactor = 0; % strength of MOC
rmeddis@10 112
rmeddis@10 113 % 'spikes' model: MOC based on brainstem spiking activity (HSR)
rmeddis@10 114 DRNLParams.rateToAttenuationFactorProb = .002; % strength of MOC
rmeddis@10 115 else
rmeddis@10 116 DRNLParams.rateToAttenuationFactor = 0; % 0 = MOC off (probability)
rmeddis@10 117 DRNLParams.rateToAttenuationFactorProb = 0; % 0 = MOC off (spikes)
rmeddis@10 118 end
rmeddis@10 119 DRNLParams.MOCtau =.03; % smoothing for MOC
rmeddis@10 120 DRNLParams.MOCrateThreshold =50; % set to AN rate threshold
rmeddis@10 121
rmeddis@10 122
rmeddis@10 123 %% #4 IHC_cilia_RPParams
rmeddis@10 124
rmeddis@10 125 IHC_cilia_RPParams.tc= 0.0003; % 0.0003 filter time simulates viscocity
rmeddis@10 126 % IHC_cilia_RPParams.tc= 0.0005; % 0.0003 filter time simulates viscocity
rmeddis@10 127 IHC_cilia_RPParams.C= 0.05; % 0.1 scalar (C_cilia )
rmeddis@10 128 IHC_cilia_RPParams.u0= 5e-9;
rmeddis@10 129 IHC_cilia_RPParams.s0= 30e-9;
rmeddis@10 130 IHC_cilia_RPParams.u1= 1e-9;
rmeddis@10 131 IHC_cilia_RPParams.s1= 1e-9;
rmeddis@10 132
rmeddis@10 133 IHC_cilia_RPParams.Gmax= 5e-9; % 2.5e-9 maximum conductance (Siemens)
rmeddis@10 134 IHC_cilia_RPParams.Ga= 1e-9; % 4.3e-9 fixed apical membrane conductance
rmeddis@10 135
rmeddis@10 136 % #5 IHC_RP
rmeddis@10 137 IHC_cilia_RPParams.Cab= 4e-012; % IHC capacitance (F)
rmeddis@10 138 IHC_cilia_RPParams.Cab= 1e-012; % IHC capacitance (F)
rmeddis@10 139 IHC_cilia_RPParams.Et= 0.100; % endocochlear potential (V)
rmeddis@10 140 % IHC_cilia_RPParams.Et= 0.07; % endocochlear potential (V)
rmeddis@10 141
rmeddis@10 142 IHC_cilia_RPParams.Gk= 2e-008; % 1e-8 potassium conductance (S)
rmeddis@10 143 IHC_cilia_RPParams.Ek= -0.08; % -0.084 K equilibrium potential
rmeddis@10 144 IHC_cilia_RPParams.Rpc= 0.04; % combined resistances
rmeddis@10 145
rmeddis@10 146
rmeddis@10 147 %% #5 IHCpreSynapse
rmeddis@10 148 IHCpreSynapseParams=[];
rmeddis@10 149 IHCpreSynapseParams.GmaxCa= 14e-9;% maximum calcium conductance
rmeddis@10 150 IHCpreSynapseParams.GmaxCa= 12e-9;% maximum calcium conductance
rmeddis@10 151 IHCpreSynapseParams.ECa= 0.066; % calcium equilibrium potential
rmeddis@10 152 IHCpreSynapseParams.beta= 400; % determine Ca channel opening
rmeddis@10 153 IHCpreSynapseParams.gamma= 100; % determine Ca channel opening
rmeddis@10 154 IHCpreSynapseParams.tauM= 0.00005; % membrane time constant ?0.1ms
rmeddis@10 155 IHCpreSynapseParams.power= 3;
rmeddis@10 156 % reminder: changing z has a strong effect on HF thresholds (like Et)
rmeddis@10 157 IHCpreSynapseParams.z= 2e42; % scalar Ca -> vesicle release rate
rmeddis@10 158
rmeddis@10 159 LSRtauCa=50e-6; HSRtauCa=85e-6; % seconds
rmeddis@10 160 % LSRtauCa=35e-6; HSRtauCa=70e-6; % seconds
rmeddis@10 161 IHCpreSynapseParams.tauCa= [LSRtauCa HSRtauCa]; %LSR and HSR fiber
rmeddis@10 162
rmeddis@10 163 %% #6 AN_IHCsynapse
rmeddis@10 164 % c=kym/(y(l+r)+kl) (spontaneous rate)
rmeddis@10 165 % c=(approx) ym/l (saturated rate)
rmeddis@10 166 AN_IHCsynapseParams=[]; % clear the structure first
rmeddis@10 167 AN_IHCsynapseParams.M= 12; % maximum vesicles at synapse
rmeddis@10 168 AN_IHCsynapseParams.y= 4; % depleted vesicle replacement rate
rmeddis@10 169 AN_IHCsynapseParams.y= 6; % depleted vesicle replacement rate
rmeddis@10 170
rmeddis@10 171 AN_IHCsynapseParams.x= 30; % replenishment from re-uptake store
rmeddis@10 172 AN_IHCsynapseParams.x= 60; % replenishment from re-uptake store
rmeddis@10 173
rmeddis@10 174 % reduce l to increase saturated rate
rmeddis@10 175 AN_IHCsynapseParams.l= 100; % *loss rate of vesicles from the cleft
rmeddis@10 176 AN_IHCsynapseParams.l= 250; % *loss rate of vesicles from the cleft
rmeddis@10 177
rmeddis@10 178 AN_IHCsynapseParams.r= 500; % *reuptake rate from cleft into cell
rmeddis@10 179 % AN_IHCsynapseParams.r= 300; % *reuptake rate from cleft into cell
rmeddis@10 180
rmeddis@10 181 AN_IHCsynapseParams.refractory_period= 0.00075;
rmeddis@10 182 % number of AN fibers at each BF (used only for spike generation)
rmeddis@10 183 AN_IHCsynapseParams.numFibers= 100;
rmeddis@10 184 AN_IHCsynapseParams.TWdelay=0.004; % ?delay before stimulus first spike
rmeddis@10 185
rmeddis@10 186 %% #7 MacGregorMulti (first order brainstem neurons)
rmeddis@10 187 MacGregorMultiParams=[];
rmeddis@10 188 MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
rmeddis@10 189 switch MacGregorMultiType
rmeddis@10 190 case 'primary-like'
rmeddis@10 191 MacGregorMultiParams.nNeuronsPerBF= 10; % N neurons per BF
rmeddis@10 192 MacGregorMultiParams.type = 'primary-like cell';
rmeddis@10 193 MacGregorMultiParams.fibersPerNeuron=4; % N input fibers
rmeddis@10 194 MacGregorMultiParams.dendriteLPfreq=200; % dendritic filter
rmeddis@10 195 MacGregorMultiParams.currentPerSpike=0.11e-6; % (A) per spike
rmeddis@10 196 MacGregorMultiParams.Cap=4.55e-9; % cell capacitance (Siemens)
rmeddis@10 197 MacGregorMultiParams.tauM=5e-4; % membrane time constant (s)
rmeddis@10 198 MacGregorMultiParams.Ek=-0.01; % K+ eq. potential (V)
rmeddis@10 199 MacGregorMultiParams.dGkSpike=3.64e-5; % K+ cond.shift on spike,S
rmeddis@10 200 MacGregorMultiParams.tauGk= 0.0012; % K+ conductance tau (s)
rmeddis@10 201 MacGregorMultiParams.Th0= 0.01; % equilibrium threshold (V)
rmeddis@10 202 MacGregorMultiParams.c= 0.01; % threshold shift on spike, (V)
rmeddis@10 203 MacGregorMultiParams.tauTh= 0.015; % variable threshold tau
rmeddis@10 204 MacGregorMultiParams.Er=-0.06; % resting potential (V)
rmeddis@10 205 MacGregorMultiParams.Eb=0.06; % spike height (V)
rmeddis@10 206
rmeddis@10 207 case 'chopper'
rmeddis@10 208 MacGregorMultiParams.nNeuronsPerBF= 10; % N neurons per BF
rmeddis@10 209 MacGregorMultiParams.type = 'chopper cell';
rmeddis@10 210 MacGregorMultiParams.fibersPerNeuron=10; % N input fibers
rmeddis@10 211 % MacGregorMultiParams.fibersPerNeuron=6; % N input fibers
rmeddis@10 212
rmeddis@10 213 MacGregorMultiParams.dendriteLPfreq=50; % dendritic filter
rmeddis@10 214 MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
rmeddis@10 215 % MacGregorMultiParams.currentPerSpike=45e-9; % *per spike
rmeddis@10 216
rmeddis@10 217 MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
rmeddis@10 218 MacGregorMultiParams.tauM=0.002; % membrane time constant (s)
rmeddis@10 219 MacGregorMultiParams.Ek=-0.01; % K+ eq. potential (V)
rmeddis@10 220 MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
rmeddis@10 221 MacGregorMultiParams.tauGk= 0.0001;% K+ conductance tau (s)
rmeddis@10 222 MacGregorMultiParams.Th0= 0.01; % equilibrium threshold (V)
rmeddis@10 223 MacGregorMultiParams.c= 0; % threshold shift on spike, (V)
rmeddis@10 224 MacGregorMultiParams.tauTh= 0.02; % variable threshold tau
rmeddis@10 225 MacGregorMultiParams.Er=-0.06; % resting potential (V)
rmeddis@10 226 MacGregorMultiParams.Eb=0.06; % spike height (V)
rmeddis@10 227 MacGregorMultiParams.PSTHbinWidth= 1e-4;
rmeddis@10 228 end
rmeddis@10 229
rmeddis@10 230 %% #8 MacGregor (second-order neuron). Only one per channel
rmeddis@10 231 MacGregorParams=[]; % clear the structure first
rmeddis@10 232 MacGregorParams.type = 'chopper cell';
rmeddis@10 233 MacGregorParams.fibersPerNeuron=10; % N input fibers
rmeddis@10 234 MacGregorParams.dendriteLPfreq=100; % dendritic filter
rmeddis@10 235 MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
rmeddis@10 236
rmeddis@10 237 MacGregorParams.Cap=16.7e-9; % cell capacitance (Siemens)
rmeddis@10 238 MacGregorParams.tauM=0.002; % membrane time constant (s)
rmeddis@10 239 MacGregorParams.Ek=-0.01; % K+ eq. potential (V)
rmeddis@10 240 MacGregorParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
rmeddis@10 241 MacGregorParams.tauGk= 0.0003; % K+ conductance tau (s)
rmeddis@10 242 MacGregorParams.Th0= 0.01; % equilibrium threshold (V)
rmeddis@10 243 MacGregorParams.c= 0; % threshold shift on spike, (V)
rmeddis@10 244 MacGregorParams.tauTh= 0.02; % variable threshold tau
rmeddis@10 245 MacGregorParams.Er=-0.06; % resting potential (V)
rmeddis@10 246 MacGregorParams.Eb=0.06; % spike height (V)
rmeddis@10 247 MacGregorParams.debugging=0; % (special)
rmeddis@10 248 % wideband accepts input from all channels (of same fiber type)
rmeddis@10 249 % use wideband to create inhibitory units
rmeddis@10 250 MacGregorParams.wideband=0; % special for wideband units
rmeddis@10 251 % MacGregorParams.saveAllData=0;
rmeddis@10 252
rmeddis@10 253 %% #9 filteredSACF
rmeddis@10 254 minPitch= 300; maxPitch= 3000; numPitches=60; % specify lags
rmeddis@10 255 pitches=100*log10(logspace(minPitch/100, maxPitch/100, numPitches));
rmeddis@10 256 filteredSACFParams.lags=1./pitches; % autocorrelation lags vector
rmeddis@10 257 filteredSACFParams.acfTau= .003; % time constant of running ACF
rmeddis@10 258 filteredSACFParams.lambda= 0.12; % slower filter to smooth ACF
rmeddis@10 259 filteredSACFParams.plotFilteredSACF=1; % 0 plots unfiltered ACFs
rmeddis@10 260 filteredSACFParams.plotACFs=0; % special plot (see code)
rmeddis@10 261 % filteredSACFParams.usePressnitzer=0; % attenuates ACF at long lags
rmeddis@10 262 filteredSACFParams.lagsProcedure= 'useAllLags';
rmeddis@10 263 % filteredSACFParams.lagsProcedure= 'useBernsteinLagWeights';
rmeddis@10 264 % filteredSACFParams.lagsProcedure= 'omitShortLags';
rmeddis@10 265 filteredSACFParams.criterionForOmittingLags=3;
rmeddis@10 266
rmeddis@10 267 % checks
rmeddis@10 268 if AN_IHCsynapseParams.numFibers<MacGregorMultiParams.fibersPerNeuron
rmeddis@10 269 error('MacGregorMulti: too few input fibers for input to MacG unit')
rmeddis@10 270 end
rmeddis@10 271
rmeddis@10 272
rmeddis@10 273 %% write all parameters to the command window
rmeddis@10 274 % showParams is currently set at the top of htis function
rmeddis@10 275 if showParams
rmeddis@10 276 fprintf('\n %%%%%%%%\n')
rmeddis@10 277 fprintf('\n%s\n', method.parameterSource)
rmeddis@10 278 fprintf('\n')
rmeddis@10 279 nm=UTIL_paramsList(whos);
rmeddis@10 280 for i=1:length(nm)
rmeddis@10 281 % eval(['UTIL_showStruct(' nm{i} ', ''' nm{i} ''')'])
rmeddis@10 282 if ~strcmp(nm(i), 'method')
rmeddis@10 283 eval(['UTIL_showStructureSummary(' nm{i} ', ''' nm{i} ''', 10)'])
rmeddis@10 284 end
rmeddis@10 285 end
rmeddis@10 286 end
rmeddis@10 287
rmeddis@10 288
rmeddis@10 289
rmeddis@10 290 % ********************************************************************** comparison data
rmeddis@10 291 % store individual data here for display on the multiThreshold GUI (if used)
rmeddis@10 292 % the final value in each vector is an identifier (BF or duration))
rmeddis@10 293 if isstruct(experiment)
rmeddis@10 294 switch experiment.paradigm
rmeddis@10 295 case {'IFMC','IFMC_8ms'}
rmeddis@10 296 % based on MPa
rmeddis@10 297 comparisonData=[
rmeddis@10 298 66 51 49 48 46 45 54 250;
rmeddis@10 299 60 54 46 42 39 49 65 500;
rmeddis@10 300 64 51 38 32 33 59 75 1000;
rmeddis@10 301 59 51 36 30 41 81 93 2000;
rmeddis@10 302 71 63 53 44 36 76 95 4000;
rmeddis@10 303 70 64 43 35 35 66 88 6000;
rmeddis@10 304 110 110 110 110 110 110 110 8000;
rmeddis@10 305 ];
rmeddis@10 306 if length(BFlist)==1 && ~isempty(comparisonData)
rmeddis@10 307 availableFrequencies=comparisonData(:,end)';
rmeddis@10 308 findRow= find(BFlist==availableFrequencies);
rmeddis@10 309 if ~isempty (findRow)
rmeddis@10 310 experiment.comparisonData=comparisonData(findRow,:);
rmeddis@10 311 end
rmeddis@10 312 end
rmeddis@10 313
rmeddis@10 314 case {'TMC','TMC_8ms'}
rmeddis@10 315 % based on MPa
rmeddis@10 316 comparisonData=[
rmeddis@10 317 48 58 63 68 75 80 85 92 99 250;
rmeddis@10 318 33 39 40 49 52 61 64 77 79 500;
rmeddis@10 319 39 42 50 81 83 92 96 97 110 1000;
rmeddis@10 320 24 26 32 37 46 51 59 71 78 2000;
rmeddis@10 321 65 68 77 85 91 93 110 110 110 4000;
rmeddis@10 322 20 19 26 44 80 95 96 110 110 6000;
rmeddis@10 323 ];
rmeddis@10 324 if length(BFlist)==1 && ~isempty(comparisonData)
rmeddis@10 325 availableFrequencies=comparisonData(:,end)';
rmeddis@10 326 findRow= find(BFlist==availableFrequencies);
rmeddis@10 327 if ~isempty (findRow)
rmeddis@10 328 experiment.comparisonData=comparisonData(findRow,:);
rmeddis@10 329 end
rmeddis@10 330 end
rmeddis@10 331
rmeddis@10 332 case { 'absThreshold', 'absThreshold_8'}
rmeddis@10 333 % MPa thresholds
rmeddis@10 334 experiment.comparisonData=[
rmeddis@10 335 32 26 16 18 22 22 0.008;
rmeddis@10 336 16 13 6 9 15 11 0.500
rmeddis@10 337 ];
rmeddis@10 338
rmeddis@10 339
rmeddis@10 340 otherwise
rmeddis@10 341 experiment.comparisonData=[];
rmeddis@10 342 end
rmeddis@10 343 end
rmeddis@10 344
rmeddis@10 345