Revision 31:c54a34161e4a parameterStore

View differences:

parameterStore/MAPparamsEndo.m
1
function method=MAPparamsEndo ...
2
    (BFlist, sampleRate, showParams, paramChanges)
3
% MAPparams<> establishes a complete set of MAP parameters
4
% Parameter file names must be of the form <MAPparams> <name>
5
%
6
% input arguments
7
%  BFlist     (optional) specifies the desired list of channel BFs
8
%    otherwise defaults set below
9
%  sampleRate (optional), default is 50000.
10
%  showParams (optional) =1 prints out the complete set of parameters
11
% output argument
12
%  method passes a miscelleny of values
13

  
14
global inputStimulusParams OMEParams DRNLParams IHC_cilia_RPParams
15
global IHC_VResp_VivoParams IHCpreSynapseParams  AN_IHCsynapseParams
16
global MacGregorParams MacGregorMultiParams  filteredSACFParams
17
global experiment % used by calls from multiThreshold only
18

  
19

  
20
currentFile=mfilename;                      % i.e. the name of this mfile
21
method.parameterSource=currentFile(10:end); % for the record
22

  
23
efferentDelay=0.010;
24
method.segmentDuration=efferentDelay;
25

  
26
if nargin<3, showParams=0; end
27
if nargin<2, sampleRate=50000; end
28
if nargin<1 || BFlist(1)<0 % if BFlist= -1, set BFlist to default
29
    lowestBF=250; 	highestBF= 8000; 	numChannels=21;
30
    % 21 chs (250-8k)includes BFs at 250 500 1000 2000 4000 8000
31
    BFlist=round(logspace(log10(lowestBF),log10(highestBF),numChannels));
32
end
33
% BFlist=1000;
34

  
35
% preserve for backward campatibility
36
method.nonlinCF=BFlist; 
37
method.dt=1/sampleRate; 
38

  
39
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40
% set  model parameters
41
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42

  
43
%%  #1 inputStimulus
44
inputStimulusParams=[];
45
inputStimulusParams.sampleRate= sampleRate; 
46

  
47
%%  #2 outerMiddleEar
48
OMEParams=[];  % clear the structure first
49
% outer ear resonances band pass filter  [gain lp order  hp]
50
OMEParams.externalResonanceFilters=      [ 10 1 1000 4000];
51
                                       
52
% highpass stapes filter  
53
%  Huber gives 2e-9 m at 80 dB and 1 kHz (2e-13 at 0 dB SPL)
54
OMEParams.OMEstapesLPcutoff= 1000;
55
OMEParams.stapesScalar=	     45e-9;
56

  
57
% Acoustic reflex: maximum attenuation should be around 25 dB Price (1966)
58
% i.e. a minimum ratio of 0.056.
59
% 'spikes' model: AR based on brainstem spiking activity (LSR)
60
OMEParams.rateToAttenuationFactor=0.006;   % * N(all ICspikes)
61
% OMEParams.rateToAttenuationFactor=0;   % * N(all ICspikes)
62

  
63
% 'probability model': Ar based on AN firing probabilities (LSR)
64
OMEParams.rateToAttenuationFactorProb=0.01;% * N(all ANrates)
65
% OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
66

  
67
% asymptote should be around 100-200 ms
68
OMEParams.ARtau=.05; % AR smoothing function
69
% delay must be longer than the segment length
70
OMEParams.ARdelay=efferentDelay;  %Moss gives 8.5 ms latency
71
OMEParams.ARrateThreshold=0;
72

  
73
%%  #3 DRNL
74
DRNLParams=[];  % clear the structure first
75
DRNLParams.BFlist=BFlist;
76

  
77
% DRNL nonlinear path
78
DRNLParams.a=5e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
79
DRNLParams.a=2e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
80

  
81
DRNLParams.b=8e-6;    % *compression threshold raised compression
82
% DRNLParams.b=1;    % b=1 means no compression
83

  
84
DRNLParams.c=0.2;     % compression exponent
85
% nonlinear filters
86
DRNLParams.nonlinCFs=BFlist;
87
DRNLParams.nonlinOrder=	3;           % order of nonlinear gammatone filters
88
p=0.2895;   q=170;  % human  (% p=0.14;   q=366;  % cat)
89
DRNLParams.nlBWs=  p * BFlist + q;
90
DRNLParams.p=p;   DRNLParams.q=q;   % save p and q for printing only
91

  
92
% DRNL linear path:
93
DRNLParams.g=100;     % linear path gain factor
94
% linCF is not necessarily the same as nonlinCF
95
minLinCF=153.13; coeffLinCF=0.7341;   % linCF>nonlinBF for BF < 1 kHz
96
DRNLParams.linCFs=minLinCF+coeffLinCF*BFlist;
97
DRNLParams.linOrder=	3;           % order of linear gammatone filters
98
minLinBW=100; coeffLinBW=0.6531;
99
DRNLParams.linBWs=minLinBW + coeffLinBW*BFlist; % bandwidths of linear  filters
100

  
101
% DRNL MOC efferents
102
DRNLParams.MOCdelay = efferentDelay;            % must be < segment length!
103

  
104
% 'spikes' model: MOC based on brainstem spiking activity (HSR)
105
DRNLParams.rateToAttenuationFactor = .01;  % strength of MOC
106
%      DRNLParams.rateToAttenuationFactor = 0;  % strength of MOC
107
% 'probability' model: MOC based on AN spiking activity (HSR)
108
DRNLParams.rateToAttenuationFactorProb = .0055;  % strength of MOC
109
% DRNLParams.rateToAttenuationFactorProb = .0;  % strength of MOC
110
DRNLParams.MOCrateThresholdProb =70;                % spikes/s probability only
111

  
112
DRNLParams.MOCtau =.1;                         % smoothing for MOC
113

  
114

  
115
%% #4 IHC_cilia_RPParams
116

  
117
IHC_cilia_RPParams.tc=	0.0003;   % 0.0003 filter time simulates viscocity
118
% IHC_cilia_RPParams.tc=	0.0005;   % 0.0003 filter time simulates viscocity
119
IHC_cilia_RPParams.C=	0.03;      % 0.1 scalar (C_cilia ) 
120
IHC_cilia_RPParams.u0=	5e-9;       
121
IHC_cilia_RPParams.s0=	30e-9;
122
IHC_cilia_RPParams.u1=	1e-9;
123
IHC_cilia_RPParams.s1=	1e-9;
124

  
125
IHC_cilia_RPParams.Gmax= 6e-9;    % 2.5e-9 maximum conductance (Siemens)
126
IHC_cilia_RPParams.Ga=	1e-9;  % 4.3e-9 fixed apical membrane conductance
127
IHC_cilia_RPParams.Ga=	.8e-9;  % 4.3e-9 fixed apical membrane conductance
128

  
129
%  #5 IHC_RP
130
IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
131
% IHC_cilia_RPParams.Cab=	1e-012;         % IHC capacitance (F)
132
IHC_cilia_RPParams.Et=	0.05;          % endocochlear potential (V)
133

  
134
IHC_cilia_RPParams.Gk=	2e-008;         % 1e-8 potassium conductance (S)
135
IHC_cilia_RPParams.Ek=	-0.08;          % -0.084 K equilibrium potential
136
IHC_cilia_RPParams.Rpc=	0.04;           % combined resistances
137

  
138

  
139
%%  #5 IHCpreSynapse
140
IHCpreSynapseParams=[];
141
IHCpreSynapseParams.GmaxCa=	14e-9;% maximum calcium conductance
142
IHCpreSynapseParams.GmaxCa=	12e-9;% maximum calcium conductance
143
IHCpreSynapseParams.ECa=	0.066;  % calcium equilibrium potential
144
IHCpreSynapseParams.beta=	400;	% determine Ca channel opening
145
IHCpreSynapseParams.gamma=	100;	% determine Ca channel opening
146
IHCpreSynapseParams.tauM=	0.00005;	% membrane time constant ?0.1ms
147
IHCpreSynapseParams.power=	3;
148
% reminder: changing z has a strong effect on HF thresholds (like Et)
149
IHCpreSynapseParams.z=	    2e42;   % scalar Ca -> vesicle release rate
150

  
151
LSRtauCa=35e-6;            HSRtauCa=85e-6;            % seconds
152
% LSRtauCa=35e-6;            HSRtauCa=70e-6;            % seconds
153
IHCpreSynapseParams.tauCa= [LSRtauCa HSRtauCa]; %LSR and HSR fiber
154

  
155
%%  #6 AN_IHCsynapse
156
% c=kym/(y(l+r)+kl)	(spontaneous rate)
157
% c=(approx)  ym/l  (saturated rate)
158
AN_IHCsynapseParams=[];             % clear the structure first
159
AN_IHCsynapseParams.M=	12;         % maximum vesicles at synapse
160
AN_IHCsynapseParams.y=	4;          % depleted vesicle replacement rate
161
AN_IHCsynapseParams.y=	6;          % depleted vesicle replacement rate
162

  
163
AN_IHCsynapseParams.x=	30;         % replenishment from re-uptake store
164
AN_IHCsynapseParams.x=	60;         % replenishment from re-uptake store
165

  
166
% reduce l to increase saturated rate
167
AN_IHCsynapseParams.l=	100; % *loss rate of vesicles from the cleft
168
AN_IHCsynapseParams.l=	250; % *loss rate of vesicles from the cleft
169

  
170
AN_IHCsynapseParams.r=	500; % *reuptake rate from cleft into cell
171
% AN_IHCsynapseParams.r=	300; % *reuptake rate from cleft into cell
172

  
173
AN_IHCsynapseParams.refractory_period=	0.00075;
174
% number of AN fibers at each BF (used only for spike generation)
175
AN_IHCsynapseParams.numFibers=	100; 
176
AN_IHCsynapseParams.TWdelay=0.004;  % ?delay before stimulus first spike
177

  
178
AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
179

  
180
%%  #7 MacGregorMulti (first order brainstem neurons)
181
MacGregorMultiParams=[];
182
MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
183
switch MacGregorMultiType
184
    case 'primary-like'
185
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
186
        MacGregorMultiParams.type = 'primary-like cell';
187
        MacGregorMultiParams.fibersPerNeuron=4;   % N input fibers
188
        MacGregorMultiParams.dendriteLPfreq=200;  % dendritic filter
189
        MacGregorMultiParams.currentPerSpike=0.11e-6; % (A) per spike
190
        MacGregorMultiParams.Cap=4.55e-9;   % cell capacitance (Siemens)
191
        MacGregorMultiParams.tauM=5e-4;     % membrane time constant (s)
192
        MacGregorMultiParams.Ek=-0.01;      % K+ eq. potential (V)
193
        MacGregorMultiParams.dGkSpike=3.64e-5; % K+ cond.shift on spike,S
194
        MacGregorMultiParams.tauGk=	0.0012; % K+ conductance tau (s)
195
        MacGregorMultiParams.Th0=	0.01;   % equilibrium threshold (V)
196
        MacGregorMultiParams.c=	0.01;       % threshold shift on spike, (V)
197
        MacGregorMultiParams.tauTh=	0.015;  % variable threshold tau
198
        MacGregorMultiParams.Er=-0.06;      % resting potential (V)
199
        MacGregorMultiParams.Eb=0.06;       % spike height (V)
200

  
201
    case 'chopper'
202
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
203
        MacGregorMultiParams.type = 'chopper cell';
204
        MacGregorMultiParams.fibersPerNeuron=10;  % N input fibers
205
%         MacGregorMultiParams.fibersPerNeuron=6;  % N input fibers
206

  
207
        MacGregorMultiParams.dendriteLPfreq=50;   % dendritic filter
208
        MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
209
%         MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
210
        
211
        MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
212
        MacGregorMultiParams.tauM=0.002;  % membrane time constant (s)
213
        MacGregorMultiParams.Ek=-0.01;    % K+ eq. potential (V)
214
        MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
215
        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
216
        MacGregorMultiParams.Th0=	0.01; % equilibrium threshold (V)
217
        MacGregorMultiParams.c=	0;        % threshold shift on spike, (V)
218
        MacGregorMultiParams.tauTh=	0.02; % variable threshold tau
219
        MacGregorMultiParams.Er=-0.06;    % resting potential (V)
220
        MacGregorMultiParams.Eb=0.06;     % spike height (V)
221
        MacGregorMultiParams.PSTHbinWidth=	1e-4;
222
end
223

  
224
%%  #8 MacGregor (second-order neuron). Only one per channel
225
MacGregorParams=[];                 % clear the structure first
226
MacGregorParams.type = 'chopper cell';
227
MacGregorParams.fibersPerNeuron=10; % N input fibers
228
MacGregorParams.dendriteLPfreq=100; % dendritic filter
229
MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
230
MacGregorParams.currentPerSpike=40e-9;% *(A) per spike
231

  
232
MacGregorParams.Cap=16.7e-9;        % cell capacitance (Siemens)
233
MacGregorParams.tauM=0.002;         % membrane time constant (s)
234
MacGregorParams.Ek=-0.01;           % K+ eq. potential (V)
235
MacGregorParams.dGkSpike=1.33e-4;   % K+ cond.shift on spike,S
236
MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
237
MacGregorParams.Th0=	0.01;       % equilibrium threshold (V)
238
MacGregorParams.c=	0;              % threshold shift on spike, (V)
239
MacGregorParams.tauTh=	0.02;       % variable threshold tau
240
MacGregorParams.Er=-0.06;           % resting potential (V)
241
MacGregorParams.Eb=0.06;            % spike height (V)
242
MacGregorParams.debugging=0;        % (special)
243
% wideband accepts input from all channels (of same fiber type)
244
% use wideband to create inhibitory units
245
MacGregorParams.wideband=0;         % special for wideband units
246
% MacGregorParams.saveAllData=0;
247

  
248
%%  #9 filteredSACF
249
minPitch=	300; maxPitch=	3000; numPitches=60;    % specify lags
250
pitches=100*log10(logspace(minPitch/100, maxPitch/100, numPitches));
251
filteredSACFParams.lags=1./pitches;     % autocorrelation lags vector
252
filteredSACFParams.acfTau=	.003;       % time constant of running ACF
253
filteredSACFParams.lambda=	0.12;       % slower filter to smooth ACF
254
filteredSACFParams.plotFilteredSACF=1;  % 0 plots unfiltered ACFs
255
filteredSACFParams.plotACFs=0;          % special plot (see code)
256
%  filteredSACFParams.usePressnitzer=0; % attenuates ACF at  long lags
257
filteredSACFParams.lagsProcedure=  'useAllLags';
258
% filteredSACFParams.lagsProcedure=  'useBernsteinLagWeights';
259
% filteredSACFParams.lagsProcedure=  'omitShortLags';
260
filteredSACFParams.criterionForOmittingLags=3;
261

  
262
% checks
263
if AN_IHCsynapseParams.numFibers<MacGregorMultiParams.fibersPerNeuron
264
    error('MacGregorMulti: too few input fibers for input to MacG unit')
265
end
266

  
267

  
268
%% now accept last minute parameter changes required by the calling program
269
% paramChanges
270
if nargin>3 && ~isempty(paramChanges)
271
    nChanges=length(paramChanges);
272
    for idx=1:nChanges
273
        eval(paramChanges{idx})
274
    end
275
end
276

  
277

  
278
%% write all parameters to the command window
279
% showParams is currently set at the top of htis function
280
if showParams
281
    fprintf('\n %%%%%%%%\n')
282
    fprintf('\n%s\n', method.parameterSource)
283
    fprintf('\n')
284
    nm=UTIL_paramsList(whos);
285
    for i=1:length(nm)
286
        %         eval(['UTIL_showStruct(' nm{i} ', ''' nm{i} ''')'])
287
        if ~strcmp(nm(i), 'method')
288
            eval(['UTIL_showStructureSummary(' nm{i} ', ''' nm{i} ''', 10)'])
289
        end
290
    end
291

  
292
    % highlight parameter changes made locally
293
    if nargin>3 && ~isempty(paramChanges)
294
        fprintf('\n Local parameter changes:\n')
295
        for i=1:length(paramChanges)
296
            disp(paramChanges{i})
297
        end
298
    end
299
end
300

  
301
% for backward compatibility
302
experiment.comparisonData=[];
parameterStore/MAPparamsJE.m
1
function method=MAPparamsJE ...
2
    (BFlist, sampleRate, showParams, paramChanges)
3
% MAPparams<> establishes a complete set of MAP parameters
4
% Parameter file names must be of the form <MAPparams> <name>
5
%
6
% input arguments
7
%  BFlist     (optional) specifies the desired list of channel BFs
8
%    otherwise defaults set below
9
%  sampleRate (optional), default is 50000.
10
%  showParams (optional) =1 prints out the complete set of parameters
11
% output argument
12
%  method passes a miscelleny of values
13

  
14
global inputStimulusParams OMEParams DRNLParams IHC_cilia_RPParams
15
global IHC_VResp_VivoParams IHCpreSynapseParams  AN_IHCsynapseParams
16
global MacGregorParams MacGregorMultiParams  filteredSACFParams
17
global experiment % used by calls from multiThreshold only
18

  
19

  
20
currentFile=mfilename;                      % i.e. the name of this mfile
21
method.parameterSource=currentFile(10:end); % for the record
22

  
23
efferentDelay=0.010;
24
method.segmentDuration=efferentDelay;
25

  
26
if nargin<3, showParams=0; end
27
if nargin<2, sampleRate=50000; end
28
if nargin<1 || BFlist(1)<0 % if BFlist= -1, set BFlist to default
29
    lowestBF=250; 	highestBF= 8000; 	numChannels=21;
30
    % 21 chs (250-8k)includes BFs at 250 500 1000 2000 4000 8000
31
    BFlist=round(logspace(log10(lowestBF),log10(highestBF),numChannels));
32
end
33
% BFlist=1000;
34

  
35
% preserve for backward campatibility
36
method.nonlinCF=BFlist; 
37
method.dt=1/sampleRate; 
38

  
39
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40
% set  model parameters
41
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42

  
43
%%  #1 inputStimulus
44
inputStimulusParams=[];
45
inputStimulusParams.sampleRate= sampleRate; 
46

  
47
%%  #2 outerMiddleEar
48
OMEParams=[];  % clear the structure first
49
% outer ear resonances band pass filter  [gain lp order  hp]
50
OMEParams.externalResonanceFilters=      [ 10 1 1000 4000];
51
                                       
52
% highpass stapes filter  
53
%  Huber gives 2e-9 m at 80 dB and 1 kHz (2e-13 at 0 dB SPL)
54
OMEParams.OMEstapesLPcutoff= 1000;
55
OMEParams.stapesScalar=	     45e-9;
56

  
57
% Acoustic reflex: maximum attenuation should be around 25 dB Price (1966)
58
% i.e. a minimum ratio of 0.056.
59
% 'spikes' model: AR based on brainstem spiking activity (LSR)
60
OMEParams.rateToAttenuationFactor=0.006;   % * N(all ICspikes)
61
% OMEParams.rateToAttenuationFactor=0;   % * N(all ICspikes)
62

  
63
% 'probability model': Ar based on AN firing probabilities (LSR)
64
OMEParams.rateToAttenuationFactorProb=0.01;% * N(all ANrates)
65
% OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
66

  
67
% asymptote should be around 100-200 ms
68
OMEParams.ARtau=.05; % AR smoothing function
69
% delay must be longer than the segment length
70
OMEParams.ARdelay=efferentDelay;  %Moss gives 8.5 ms latency
71
OMEParams.ARrateThreshold=0;
72

  
73
%%  #3 DRNL
74
DRNLParams=[];  % clear the structure first
75
DRNLParams.BFlist=BFlist;
76

  
77
% DRNL nonlinear path
78
DRNLParams.a=5e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
79
DRNLParams.a=2e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
80

  
81
DRNLParams.b=8e-6;    % *compression threshold raised compression
82
% DRNLParams.b=1;    % b=1 means no compression
83

  
84
DRNLParams.c=0.2;     % compression exponent
85
% nonlinear filters
86
DRNLParams.nonlinCFs=BFlist;
87
DRNLParams.nonlinOrder=	3;           % order of nonlinear gammatone filters
88
p=0.2895;   q=170;  % human  (% p=0.14;   q=366;  % cat)
89
DRNLParams.nlBWs=  p * BFlist + q;
90
DRNLParams.p=p;   DRNLParams.q=q;   % save p and q for printing only
91

  
92
% DRNL linear path:
93
DRNLParams.g=1000;     % linear path gain factor
94
% linCF is not necessarily the same as nonlinCF
95
minLinCF=153.13; coeffLinCF=0.7341;   % linCF>nonlinBF for BF < 1 kHz
96
DRNLParams.linCFs=minLinCF+coeffLinCF*BFlist;
97
DRNLParams.linOrder=	3;           % order of linear gammatone filters
98
minLinBW=100; coeffLinBW=0.6531;
99
DRNLParams.linBWs=minLinBW + coeffLinBW*BFlist; % bandwidths of linear  filters
100

  
101
% DRNL MOC efferents
102
DRNLParams.MOCdelay = efferentDelay;            % must be < segment length!
103

  
104
% 'spikes' model: MOC based on brainstem spiking activity (HSR)
105
DRNLParams.rateToAttenuationFactor = .01;  % strength of MOC
106
%      DRNLParams.rateToAttenuationFactor = 0;  % strength of MOC
107
% 'probability' model: MOC based on AN spiking activity (HSR)
108
DRNLParams.rateToAttenuationFactorProb = .0055;  % strength of MOC
109
% DRNLParams.rateToAttenuationFactorProb = .0;  % strength of MOC
110
DRNLParams.MOCrateThresholdProb =70;                % spikes/s probability only
111

  
112
DRNLParams.MOCtau =.1;                         % smoothing for MOC
113

  
114

  
115
%% #4 IHC_cilia_RPParams
116

  
117
IHC_cilia_RPParams.tc=	0.0003;   % 0.0003 filter time simulates viscocity
118
% IHC_cilia_RPParams.tc=	0.0005;   % 0.0003 filter time simulates viscocity
119
IHC_cilia_RPParams.C=	0.03;      % 0.1 scalar (C_cilia ) 
120
IHC_cilia_RPParams.u0=	5e-9;       
121
IHC_cilia_RPParams.s0=	30e-9;
122
IHC_cilia_RPParams.u1=	1e-9;
123
IHC_cilia_RPParams.s1=	1e-9;
124

  
125
IHC_cilia_RPParams.Gmax= 6e-9;    % 2.5e-9 maximum conductance (Siemens)
126
IHC_cilia_RPParams.Ga=	1e-9;  % 4.3e-9 fixed apical membrane conductance
127
IHC_cilia_RPParams.Ga=	.8e-9;  % 4.3e-9 fixed apical membrane conductance
128

  
129
%  #5 IHC_RP
130
IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
131
% IHC_cilia_RPParams.Cab=	1e-012;         % IHC capacitance (F)
132
IHC_cilia_RPParams.Et=	0.05;          % endocochlear potential (V)
133

  
134
IHC_cilia_RPParams.Gk=	2e-008;         % 1e-8 potassium conductance (S)
135
IHC_cilia_RPParams.Ek=	-0.08;          % -0.084 K equilibrium potential
136
IHC_cilia_RPParams.Rpc=	0.04;           % combined resistances
137

  
138

  
139
%%  #5 IHCpreSynapse
140
IHCpreSynapseParams=[];
141
IHCpreSynapseParams.GmaxCa=	14e-9;% maximum calcium conductance
142
IHCpreSynapseParams.GmaxCa=	12e-9;% maximum calcium conductance
143
IHCpreSynapseParams.ECa=	0.066;  % calcium equilibrium potential
144
IHCpreSynapseParams.beta=	400;	% determine Ca channel opening
145
IHCpreSynapseParams.gamma=	100;	% determine Ca channel opening
146
IHCpreSynapseParams.tauM=	0.00005;	% membrane time constant ?0.1ms
147
IHCpreSynapseParams.power=	3;
148
% reminder: changing z has a strong effect on HF thresholds (like Et)
149
IHCpreSynapseParams.z=	    2e42;   % scalar Ca -> vesicle release rate
150

  
151
LSRtauCa=35e-6;            HSRtauCa=85e-6;            % seconds
152
% LSRtauCa=35e-6;            HSRtauCa=70e-6;            % seconds
153
IHCpreSynapseParams.tauCa= [LSRtauCa HSRtauCa]; %LSR and HSR fiber
154

  
155
%%  #6 AN_IHCsynapse
156
% c=kym/(y(l+r)+kl)	(spontaneous rate)
157
% c=(approx)  ym/l  (saturated rate)
158
AN_IHCsynapseParams=[];             % clear the structure first
159
AN_IHCsynapseParams.M=	12;         % maximum vesicles at synapse
160
AN_IHCsynapseParams.y=	4;          % depleted vesicle replacement rate
161
AN_IHCsynapseParams.y=	6;          % depleted vesicle replacement rate
162

  
163
AN_IHCsynapseParams.x=	30;         % replenishment from re-uptake store
164
AN_IHCsynapseParams.x=	60;         % replenishment from re-uptake store
165

  
166
% reduce l to increase saturated rate
167
AN_IHCsynapseParams.l=	100; % *loss rate of vesicles from the cleft
168
AN_IHCsynapseParams.l=	250; % *loss rate of vesicles from the cleft
169

  
170
AN_IHCsynapseParams.r=	500; % *reuptake rate from cleft into cell
171
% AN_IHCsynapseParams.r=	300; % *reuptake rate from cleft into cell
172

  
173
AN_IHCsynapseParams.refractory_period=	0.00075;
174
% number of AN fibers at each BF (used only for spike generation)
175
AN_IHCsynapseParams.numFibers=	100; 
176
AN_IHCsynapseParams.TWdelay=0.004;  % ?delay before stimulus first spike
177

  
178
AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
179

  
180
%%  #7 MacGregorMulti (first order brainstem neurons)
181
MacGregorMultiParams=[];
182
MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
183
switch MacGregorMultiType
184
    case 'primary-like'
185
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
186
        MacGregorMultiParams.type = 'primary-like cell';
187
        MacGregorMultiParams.fibersPerNeuron=4;   % N input fibers
188
        MacGregorMultiParams.dendriteLPfreq=200;  % dendritic filter
189
        MacGregorMultiParams.currentPerSpike=0.11e-6; % (A) per spike
190
        MacGregorMultiParams.Cap=4.55e-9;   % cell capacitance (Siemens)
191
        MacGregorMultiParams.tauM=5e-4;     % membrane time constant (s)
192
        MacGregorMultiParams.Ek=-0.01;      % K+ eq. potential (V)
193
        MacGregorMultiParams.dGkSpike=3.64e-5; % K+ cond.shift on spike,S
194
        MacGregorMultiParams.tauGk=	0.0012; % K+ conductance tau (s)
195
        MacGregorMultiParams.Th0=	0.01;   % equilibrium threshold (V)
196
        MacGregorMultiParams.c=	0.01;       % threshold shift on spike, (V)
197
        MacGregorMultiParams.tauTh=	0.015;  % variable threshold tau
198
        MacGregorMultiParams.Er=-0.06;      % resting potential (V)
199
        MacGregorMultiParams.Eb=0.06;       % spike height (V)
200

  
201
    case 'chopper'
202
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
203
        MacGregorMultiParams.type = 'chopper cell';
204
        MacGregorMultiParams.fibersPerNeuron=10;  % N input fibers
205
%         MacGregorMultiParams.fibersPerNeuron=6;  % N input fibers
206

  
207
        MacGregorMultiParams.dendriteLPfreq=50;   % dendritic filter
208
        MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
209
%         MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
210
        
211
        MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
212
        MacGregorMultiParams.tauM=0.002;  % membrane time constant (s)
213
        MacGregorMultiParams.Ek=-0.01;    % K+ eq. potential (V)
214
        MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
215
        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
216
        MacGregorMultiParams.Th0=	0.01; % equilibrium threshold (V)
217
        MacGregorMultiParams.c=	0;        % threshold shift on spike, (V)
218
        MacGregorMultiParams.tauTh=	0.02; % variable threshold tau
219
        MacGregorMultiParams.Er=-0.06;    % resting potential (V)
220
        MacGregorMultiParams.Eb=0.06;     % spike height (V)
221
        MacGregorMultiParams.PSTHbinWidth=	1e-4;
222
end
223

  
224
%%  #8 MacGregor (second-order neuron). Only one per channel
225
MacGregorParams=[];                 % clear the structure first
226
MacGregorParams.type = 'chopper cell';
227
MacGregorParams.fibersPerNeuron=10; % N input fibers
228
MacGregorParams.dendriteLPfreq=100; % dendritic filter
229
MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
230
MacGregorParams.currentPerSpike=40e-9;% *(A) per spike
231

  
232
MacGregorParams.Cap=16.7e-9;        % cell capacitance (Siemens)
233
MacGregorParams.tauM=0.002;         % membrane time constant (s)
234
MacGregorParams.Ek=-0.01;           % K+ eq. potential (V)
235
MacGregorParams.dGkSpike=1.33e-4;   % K+ cond.shift on spike,S
236
MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
237
MacGregorParams.Th0=	0.01;       % equilibrium threshold (V)
238
MacGregorParams.c=	0;              % threshold shift on spike, (V)
239
MacGregorParams.tauTh=	0.02;       % variable threshold tau
240
MacGregorParams.Er=-0.06;           % resting potential (V)
241
MacGregorParams.Eb=0.06;            % spike height (V)
242
MacGregorParams.debugging=0;        % (special)
243
% wideband accepts input from all channels (of same fiber type)
244
% use wideband to create inhibitory units
245
MacGregorParams.wideband=0;         % special for wideband units
246
% MacGregorParams.saveAllData=0;
247

  
248
%%  #9 filteredSACF
249
minPitch=	300; maxPitch=	3000; numPitches=60;    % specify lags
250
pitches=100*log10(logspace(minPitch/100, maxPitch/100, numPitches));
251
filteredSACFParams.lags=1./pitches;     % autocorrelation lags vector
252
filteredSACFParams.acfTau=	.003;       % time constant of running ACF
253
filteredSACFParams.lambda=	0.12;       % slower filter to smooth ACF
254
filteredSACFParams.plotFilteredSACF=1;  % 0 plots unfiltered ACFs
255
filteredSACFParams.plotACFs=0;          % special plot (see code)
256
%  filteredSACFParams.usePressnitzer=0; % attenuates ACF at  long lags
257
filteredSACFParams.lagsProcedure=  'useAllLags';
258
% filteredSACFParams.lagsProcedure=  'useBernsteinLagWeights';
259
% filteredSACFParams.lagsProcedure=  'omitShortLags';
260
filteredSACFParams.criterionForOmittingLags=3;
261

  
262
% checks
263
if AN_IHCsynapseParams.numFibers<MacGregorMultiParams.fibersPerNeuron
264
    error('MacGregorMulti: too few input fibers for input to MacG unit')
265
end
266

  
267

  
268
%% now accept last minute parameter changes required by the calling program
269
% paramChanges
270
if nargin>3 && ~isempty(paramChanges)
271
    nChanges=length(paramChanges);
272
    for idx=1:nChanges
273
        eval(paramChanges{idx})
274
    end
275
end
276

  
277

  
278
%% write all parameters to the command window
279
% showParams is currently set at the top of htis function
280
if showParams
281
    fprintf('\n %%%%%%%%\n')
282
    fprintf('\n%s\n', method.parameterSource)
283
    fprintf('\n')
284
    nm=UTIL_paramsList(whos);
285
    for i=1:length(nm)
286
        %         eval(['UTIL_showStruct(' nm{i} ', ''' nm{i} ''')'])
287
        if ~strcmp(nm(i), 'method')
288
            eval(['UTIL_showStructureSummary(' nm{i} ', ''' nm{i} ''', 10)'])
289
        end
290
    end
291

  
292
    % highlight parameter changes made locally
293
    if nargin>3 && ~isempty(paramChanges)
294
        fprintf('\n Local parameter changes:\n')
295
        for i=1:length(paramChanges)
296
            disp(paramChanges{i})
297
        end
298
    end
299
end
300

  
301
% for backward compatibility
302
experiment.comparisonData=[];
parameterStore/MAPparamsNormalHold.m
1
function method=MAPparamsNormal ...
2
    (BFlist, sampleRate, showParams, paramChanges)
3
% MAPparams<> establishes a complete set of MAP parameters
4
% Parameter file names must be of the form <MAPparams> <name>
5
%
6
% input arguments
7
%  BFlist     (optional) specifies the desired list of channel BFs
8
%    otherwise defaults set below
9
%  sampleRate (optional), default is 50000.
10
%  showParams (optional) =1 prints out the complete set of parameters
11
% output argument
12
%  method passes a miscelleny of values
13

  
14
global inputStimulusParams OMEParams DRNLParams IHC_cilia_RPParams
15
global IHC_VResp_VivoParams IHCpreSynapseParams  AN_IHCsynapseParams
16
global MacGregorParams MacGregorMultiParams  filteredSACFParams
17
global experiment % used by calls from multiThreshold only
18

  
19

  
20
currentFile=mfilename;                      % i.e. the name of this mfile
21
method.parameterSource=currentFile(10:end); % for the record
22

  
23
efferentDelay=0.010;
24
method.segmentDuration=efferentDelay;
25

  
26
if nargin<3, showParams=0; end
27
if nargin<2, sampleRate=50000; end
28
if nargin<1 || BFlist(1)<0 % if BFlist= -1, set BFlist to default
29
    lowestBF=250; 	highestBF= 8000; 	numChannels=21;
30
    % 21 chs (250-8k)includes BFs at 250 500 1000 2000 4000 8000
31
    BFlist=round(logspace(log10(lowestBF),log10(highestBF),numChannels));
32
end
33
% BFlist=1000;
34

  
35
% preserve for backward campatibility
36
method.nonlinCF=BFlist; 
37
method.dt=1/sampleRate; 
38

  
39
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40
% set  model parameters
41
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42

  
43
%%  #1 inputStimulus
44
inputStimulusParams=[];
45
inputStimulusParams.sampleRate= sampleRate; 
46

  
47
%%  #2 outerMiddleEar
48
OMEParams=[];  % clear the structure first
49
% outer ear resonances band pass filter  [gain lp order  hp]
50
OMEParams.externalResonanceFilters=      [ 10 1 1000 4000];
51
                                       
52
% highpass stapes filter  
53
%  Huber gives 2e-9 m at 80 dB and 1 kHz (2e-13 at 0 dB SPL)
54
OMEParams.OMEstapesLPcutoff= 1000;
55
OMEParams.stapesScalar=	     45e-9;
56

  
57
% Acoustic reflex: maximum attenuation should be around 25 dB Price (1966)
58
% i.e. a minimum ratio of 0.056.
59
% 'spikes' model: AR based on brainstem spiking activity (LSR)
60
OMEParams.rateToAttenuationFactor=0.006;   % * N(all ICspikes)
61
% OMEParams.rateToAttenuationFactor=0;   % * N(all ICspikes)
62

  
63
% 'probability model': Ar based on AN firing probabilities (LSR)
64
OMEParams.rateToAttenuationFactorProb=0.01;% * N(all ANrates)
65
% OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
66

  
67
% asymptote should be around 100-200 ms
68
OMEParams.ARtau=.05; % AR smoothing function
69
% delay must be longer than the segment length
70
OMEParams.ARdelay=efferentDelay;  %Moss gives 8.5 ms latency
71
OMEParams.ARrateThreshold=0;
72

  
73
%%  #3 DRNL
74
DRNLParams=[];  % clear the structure first
75
DRNLParams.BFlist=BFlist;
76

  
77
% DRNL nonlinear path
78
DRNLParams.a=5e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
79

  
80
DRNLParams.b=8e-6;    % *compression threshold raised compression
81
% DRNLParams.b=1;    % b=1 means no compression
82

  
83
DRNLParams.c=0.2;     % compression exponent
84
% nonlinear filters
85
DRNLParams.nonlinCFs=BFlist;
86
DRNLParams.nonlinOrder=	3;           % order of nonlinear gammatone filters
87
p=0.2895;   q=170;  % human  (% p=0.14;   q=366;  % cat)
88
DRNLParams.nlBWs=  p * BFlist + q;
89
DRNLParams.p=p;   DRNLParams.q=q;   % save p and q for printing only
90

  
91
% DRNL linear path:
92
DRNLParams.g=100;     % linear path gain factor
93
% linCF is not necessarily the same as nonlinCF
94
minLinCF=153.13; coeffLinCF=0.7341;   % linCF>nonlinBF for BF < 1 kHz
95
DRNLParams.linCFs=minLinCF+coeffLinCF*BFlist;
96
DRNLParams.linOrder=	3;           % order of linear gammatone filters
97
minLinBW=100; coeffLinBW=0.6531;
98
DRNLParams.linBWs=minLinBW + coeffLinBW*BFlist; % bandwidths of linear  filters
99

  
100
% DRNL MOC efferents
101
DRNLParams.MOCdelay = efferentDelay;            % must be < segment length!
102

  
103
% 'spikes' model: MOC based on brainstem spiking activity (HSR)
104
DRNLParams.rateToAttenuationFactor = .01;  % strength of MOC
105
%      DRNLParams.rateToAttenuationFactor = 0;  % strength of MOC
106
% 'probability' model: MOC based on AN spiking activity (HSR)
107
DRNLParams.rateToAttenuationFactorProb = .0055;  % strength of MOC
108
% DRNLParams.rateToAttenuationFactorProb = .0;  % strength of MOC
109
DRNLParams.MOCrateThresholdProb =70;                % spikes/s probability only
110

  
111
DRNLParams.MOCtau =.1;                         % smoothing for MOC
112

  
113

  
114
%% #4 IHC_cilia_RPParams
115

  
116
IHC_cilia_RPParams.tc=	0.0003;   % 0.0003 filter time simulates viscocity
117
% IHC_cilia_RPParams.tc=	0.0005;   % 0.0003 filter time simulates viscocity
118
IHC_cilia_RPParams.C=	0.05;      % 0.1 scalar (C_cilia ) 
119
IHC_cilia_RPParams.u0=	5e-9;       
120
IHC_cilia_RPParams.s0=	30e-9;
121
IHC_cilia_RPParams.u1=	1e-9;
122
IHC_cilia_RPParams.s1=	1e-9;
123

  
124
IHC_cilia_RPParams.Gmax= 5e-9;    % 2.5e-9 maximum conductance (Siemens)
125
IHC_cilia_RPParams.Ga=	1e-9;  % 4.3e-9 fixed apical membrane conductance
126

  
127
%  #5 IHC_RP
128
IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
129
IHC_cilia_RPParams.Cab=	1e-012;         % IHC capacitance (F)
130
IHC_cilia_RPParams.Et=	0.100;          % endocochlear potential (V)
131

  
132
IHC_cilia_RPParams.Gk=	2e-008;         % 1e-8 potassium conductance (S)
133
IHC_cilia_RPParams.Ek=	-0.08;          % -0.084 K equilibrium potential
134
IHC_cilia_RPParams.Rpc=	0.04;           % combined resistances
135

  
136

  
137
%%  #5 IHCpreSynapse
138
IHCpreSynapseParams=[];
139
IHCpreSynapseParams.GmaxCa=	14e-9;% maximum calcium conductance
140
IHCpreSynapseParams.GmaxCa=	12e-9;% maximum calcium conductance
141
IHCpreSynapseParams.ECa=	0.066;  % calcium equilibrium potential
142
IHCpreSynapseParams.beta=	400;	% determine Ca channel opening
143
IHCpreSynapseParams.gamma=	100;	% determine Ca channel opening
144
IHCpreSynapseParams.tauM=	0.00005;	% membrane time constant ?0.1ms
145
IHCpreSynapseParams.power=	3;
146
% reminder: changing z has a strong effect on HF thresholds (like Et)
147
IHCpreSynapseParams.z=	    2e42;   % scalar Ca -> vesicle release rate
148

  
149
LSRtauCa=35e-6;            HSRtauCa=85e-6;            % seconds
150
% LSRtauCa=35e-6;            HSRtauCa=70e-6;            % seconds
151
IHCpreSynapseParams.tauCa= [LSRtauCa HSRtauCa]; %LSR and HSR fiber
152

  
153
%%  #6 AN_IHCsynapse
154
% c=kym/(y(l+r)+kl)	(spontaneous rate)
155
% c=(approx)  ym/l  (saturated rate)
156
AN_IHCsynapseParams=[];             % clear the structure first
157
AN_IHCsynapseParams.M=	12;         % maximum vesicles at synapse
158
AN_IHCsynapseParams.y=	4;          % depleted vesicle replacement rate
159
AN_IHCsynapseParams.y=	6;          % depleted vesicle replacement rate
160

  
161
AN_IHCsynapseParams.x=	30;         % replenishment from re-uptake store
162
AN_IHCsynapseParams.x=	60;         % replenishment from re-uptake store
163

  
164
% reduce l to increase saturated rate
165
AN_IHCsynapseParams.l=	100; % *loss rate of vesicles from the cleft
166
AN_IHCsynapseParams.l=	250; % *loss rate of vesicles from the cleft
167

  
168
AN_IHCsynapseParams.r=	500; % *reuptake rate from cleft into cell
169
% AN_IHCsynapseParams.r=	300; % *reuptake rate from cleft into cell
170

  
171
AN_IHCsynapseParams.refractory_period=	0.00075;
172
% number of AN fibers at each BF (used only for spike generation)
173
AN_IHCsynapseParams.numFibers=	100; 
174
AN_IHCsynapseParams.TWdelay=0.004;  % ?delay before stimulus first spike
175

  
176
AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
177

  
178
%%  #7 MacGregorMulti (first order brainstem neurons)
179
MacGregorMultiParams=[];
180
MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
181
switch MacGregorMultiType
182
    case 'primary-like'
183
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
184
        MacGregorMultiParams.type = 'primary-like cell';
185
        MacGregorMultiParams.fibersPerNeuron=4;   % N input fibers
186
        MacGregorMultiParams.dendriteLPfreq=200;  % dendritic filter
187
        MacGregorMultiParams.currentPerSpike=0.11e-6; % (A) per spike
188
        MacGregorMultiParams.Cap=4.55e-9;   % cell capacitance (Siemens)
189
        MacGregorMultiParams.tauM=5e-4;     % membrane time constant (s)
190
        MacGregorMultiParams.Ek=-0.01;      % K+ eq. potential (V)
191
        MacGregorMultiParams.dGkSpike=3.64e-5; % K+ cond.shift on spike,S
192
        MacGregorMultiParams.tauGk=	0.0012; % K+ conductance tau (s)
193
        MacGregorMultiParams.Th0=	0.01;   % equilibrium threshold (V)
194
        MacGregorMultiParams.c=	0.01;       % threshold shift on spike, (V)
195
        MacGregorMultiParams.tauTh=	0.015;  % variable threshold tau
196
        MacGregorMultiParams.Er=-0.06;      % resting potential (V)
197
        MacGregorMultiParams.Eb=0.06;       % spike height (V)
198

  
199
    case 'chopper'
200
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
201
        MacGregorMultiParams.type = 'chopper cell';
202
        MacGregorMultiParams.fibersPerNeuron=10;  % N input fibers
203
%         MacGregorMultiParams.fibersPerNeuron=6;  % N input fibers
204

  
205
        MacGregorMultiParams.dendriteLPfreq=50;   % dendritic filter
206
        MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
207
        MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
208
        
209
        MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
210
        MacGregorMultiParams.tauM=0.002;  % membrane time constant (s)
211
        MacGregorMultiParams.Ek=-0.01;    % K+ eq. potential (V)
212
        MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
213
        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
214
        MacGregorMultiParams.Th0=	0.01; % equilibrium threshold (V)
215
        MacGregorMultiParams.c=	0;        % threshold shift on spike, (V)
216
        MacGregorMultiParams.tauTh=	0.02; % variable threshold tau
217
        MacGregorMultiParams.Er=-0.06;    % resting potential (V)
218
        MacGregorMultiParams.Eb=0.06;     % spike height (V)
219
        MacGregorMultiParams.PSTHbinWidth=	1e-4;
220
end
221

  
222
%%  #8 MacGregor (second-order neuron). Only one per channel
223
MacGregorParams=[];                 % clear the structure first
224
MacGregorParams.type = 'chopper cell';
225
MacGregorParams.fibersPerNeuron=10; % N input fibers
226
MacGregorParams.dendriteLPfreq=100; % dendritic filter
227
MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
228
MacGregorParams.currentPerSpike=30e-9;% *(A) per spike
229

  
230
MacGregorParams.Cap=16.7e-9;        % cell capacitance (Siemens)
231
MacGregorParams.tauM=0.002;         % membrane time constant (s)
232
MacGregorParams.Ek=-0.01;           % K+ eq. potential (V)
233
MacGregorParams.dGkSpike=1.33e-4;   % K+ cond.shift on spike,S
234
MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
235
MacGregorParams.Th0=	0.01;       % equilibrium threshold (V)
236
MacGregorParams.c=	0;              % threshold shift on spike, (V)
237
MacGregorParams.tauTh=	0.02;       % variable threshold tau
238
MacGregorParams.Er=-0.06;           % resting potential (V)
239
MacGregorParams.Eb=0.06;            % spike height (V)
240
MacGregorParams.debugging=0;        % (special)
241
% wideband accepts input from all channels (of same fiber type)
242
% use wideband to create inhibitory units
243
MacGregorParams.wideband=0;         % special for wideband units
244
% MacGregorParams.saveAllData=0;
245

  
246
%%  #9 filteredSACF
247
minPitch=	300; maxPitch=	3000; numPitches=60;    % specify lags
248
pitches=100*log10(logspace(minPitch/100, maxPitch/100, numPitches));
249
filteredSACFParams.lags=1./pitches;     % autocorrelation lags vector
250
filteredSACFParams.acfTau=	.003;       % time constant of running ACF
251
filteredSACFParams.lambda=	0.12;       % slower filter to smooth ACF
252
filteredSACFParams.plotFilteredSACF=1;  % 0 plots unfiltered ACFs
253
filteredSACFParams.plotACFs=0;          % special plot (see code)
254
%  filteredSACFParams.usePressnitzer=0; % attenuates ACF at  long lags
255
filteredSACFParams.lagsProcedure=  'useAllLags';
256
% filteredSACFParams.lagsProcedure=  'useBernsteinLagWeights';
257
% filteredSACFParams.lagsProcedure=  'omitShortLags';
258
filteredSACFParams.criterionForOmittingLags=3;
259

  
260
% checks
261
if AN_IHCsynapseParams.numFibers<MacGregorMultiParams.fibersPerNeuron
262
    error('MacGregorMulti: too few input fibers for input to MacG unit')
263
end
264

  
265

  
266
%% now accept last minute parameter changes required by the calling program
267
% paramChanges
268
if nargin>3 && ~isempty(paramChanges)
269
    nChanges=length(paramChanges);
270
    for idx=1:nChanges
271
        eval(paramChanges{idx})
272
    end
273
end
274

  
275

  
276
%% write all parameters to the command window
277
% showParams is currently set at the top of htis function
278
if showParams
279
    fprintf('\n %%%%%%%%\n')
280
    fprintf('\n%s\n', method.parameterSource)
281
    fprintf('\n')
282
    nm=UTIL_paramsList(whos);
283
    for i=1:length(nm)
284
        %         eval(['UTIL_showStruct(' nm{i} ', ''' nm{i} ''')'])
285
        if ~strcmp(nm(i), 'method')
286
            eval(['UTIL_showStructureSummary(' nm{i} ', ''' nm{i} ''', 10)'])
287
        end
288
    end
289

  
290
    % highlight parameter changes made locally
291
    if nargin>3 && ~isempty(paramChanges)
292
        fprintf('\n Local parameter changes:\n')
293
        for i=1:length(paramChanges)
294
            disp(paramChanges{i})
295
        end
296
    end
297
end
298

  
299
% for backward compatibility
300
experiment.comparisonData=[];
parameterStore/MAPparamsNormalTest.m
1
function method=MAPparamsNormalTest ...
2
    (BFlist, sampleRate, showParams)
3
% MAPparams<> establishes a complete set of MAP parameters
4
% Parameter file names must be of the form <MAPparams> <name>
5
%
6
% input arguments
7
%  BFlist     (optional) specifies the desired list of channel BFs
8
%    otherwise defaults set below
9
%  sampleRate (optional), default is 50000.
10
%  showParams (optional) =1 prints out the complete set of parameters
11
% output argument
12
%  method passes a miscelleny of values
13

  
14
global inputStimulusParams OMEParams DRNLParams
15
global IHC_VResp_VivoParams IHCpreSynapseParams  AN_IHCsynapseParams
16
global MacGregorParams MacGregorMultiParams  filteredSACFParams
17
global experiment % used by calls from multiThreshold only
18
global IHC_cilia_RPParams
19

  
20
currentFile=mfilename;                      % i.e. the name of this mfile
21
method.parameterSource=currentFile(10:end); % for the record
22

  
23
efferentDelay=0.010;
24
method.segmentDuration=efferentDelay;
25

  
26
if nargin<3, showParams=0; end
27
if nargin<2, sampleRate=50000; end
28
if nargin<1 || BFlist(1)<0 % if BFlist= -1, set BFlist to default
29
    lowestBF=250; 	highestBF= 8000; 	numChannels=21;
30
    % 21 chs (250-8k)includes BFs at 250 500 1000 2000 4000 8000
31
    BFlist=round(logspace(log10(lowestBF),log10(highestBF),numChannels));
32
end
33
% BFlist=1000;
34

  
35
% preserve for backward campatibility
36
method.nonlinCF=BFlist; 
37
method.dt=1/sampleRate; 
38

  
39
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40
% set  model parameters
41
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42

  
43
%%  #1 inputStimulus
44
inputStimulusParams=[];
45
inputStimulusParams.sampleRate= sampleRate; 
46

  
47
%%  #2 outerMiddleEar
48
OMEParams=[];  % clear the structure first
49
% outer ear resonances band pass filter  [gain lp order  hp]
50
OMEParams.externalResonanceFilters=      [ 10 1 1000 4000];
51
                                       
52
% highpass stapes filter  
53
%  Huber gives 2e-9 m at 80 dB and 1 kHz (2e-13 at 0 dB SPL)
54
OMEParams.OMEstapesLPcutoff= 1000;
55
OMEParams.stapesScalar=	     45e-9;
56

  
57
% Acoustic reflex: maximum attenuation should be around 25 dB Price (1966)
58
% i.e. a minimum ratio of 0.056.
59
% 'spikes' model: AR based on brainstem spiking activity (LSR)
60
OMEParams.rateToAttenuationFactor=0.006;   % * N(all ICspikes)
61
%     OMEParams.rateToAttenuationFactor=0;   % * N(all ICspikes)
62

  
63
% 'probability model': Ar based on AN firing probabilities (LSR)
64
OMEParams.rateToAttenuationFactorProb=0.01;% * N(all ANrates)
65
%     OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
66

  
67
% asymptote should be around 100-200 ms
68
OMEParams.ARtau=.05; % AR smoothing function
69
% delay must be longer than the segment length
70
OMEParams.ARdelay=efferentDelay;  %Moss gives 8.5 ms latency
71
OMEParams.ARrateThreshold=0;
72

  
73
%%  #3 DRNL
74
DRNLParams=[];  % clear the structure first
75
DRNLParams.BFlist=BFlist;
76

  
77
% DRNL nonlinear path
78
DRNLParams.a=5e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
79
DRNLParams.a=0e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
80

  
81
DRNLParams.b=8e-6;    % *compression threshold raised compression
82
% DRNLParams.b=12e-6;    % *compression threshold raised compression
83
% DRNLParams.b=1;    % b=1 means no compression
84

  
85
DRNLParams.c=0.2;     % compression exponent
86
% nonlinear filters
87
DRNLParams.nonlinCFs=BFlist;
88
DRNLParams.nonlinOrder=	3;           % order of nonlinear gammatone filters
89
p=0.2895;   q=170;  % human  (% p=0.14;   q=366;  % cat)
90
DRNLParams.nlBWs=  p * BFlist + q;
91
DRNLParams.p=p;   DRNLParams.q=q;   % save p and q for printing only
92

  
93
% DRNL linear path:
94
DRNLParams.g=1000;     % linear path gain factor
95
% linCF is not necessarily the same as nonlinCF
96
minLinCF=153.13; coeffLinCF=0.7341;   % linCF>nonlinBF for BF < 1 kHz
97
DRNLParams.linCFs=minLinCF+coeffLinCF*BFlist;
98
DRNLParams.linOrder=	3;           % order of linear gammatone filters
99
minLinBW=100; coeffLinBW=0.6531;
100
DRNLParams.linBWs=minLinBW + coeffLinBW*BFlist; % bandwidths of linear  filters
101

  
102
% DRNL MOC efferents
103
DRNLParams.MOCdelay = efferentDelay;            % must be < segment length!
104

  
105
% 'spikes' model: MOC based on brainstem spiking activity (HSR)
106
DRNLParams.rateToAttenuationFactor = .01;  % strength of MOC
107
%      DRNLParams.rateToAttenuationFactor = 0;  % strength of MOC
108
% 'probability' model: MOC based on AN spiking activity (HSR)
109
DRNLParams.rateToAttenuationFactorProb = .005;  % strength of MOC
110
% DRNLParams.rateToAttenuationFactorProb = .0;  % strength of MOC
111
DRNLParams.MOCrateThresholdProb =70;                % spikes/s probability only
112

  
113
DRNLParams.MOCtau =.1;                         % smoothing for MOC
114

  
115

  
116
%% #4 IHC_cilia_RPParams
117

  
118
IHC_cilia_RPParams.tc=	0.0003;   % 0.0003 filter time simulates viscocity
119
% IHC_cilia_RPParams.tc=	0.0005;   % 0.0003 filter time simulates viscocity
120
IHC_cilia_RPParams.C=	0.01;      % 0.1 scalar (C_cilia ) 
121
IHC_cilia_RPParams.u0=	5e-10;       
122
IHC_cilia_RPParams.s0=	10e-10;
123
IHC_cilia_RPParams.u1=	5e-10;
124
IHC_cilia_RPParams.s1=	5e-10;
125

  
126
IHC_cilia_RPParams.Gmax= 4e-9;    % 2.5e-9 maximum conductance (Siemens)
127
IHC_cilia_RPParams.Ga=	1.5e-9;  % 4.3e-9 fixed apical membrane conductance
128

  
129
%  #5 IHC_RP
130
IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
131
IHC_cilia_RPParams.Cab=	2e-012;         % IHC capacitance (F)
132
IHC_cilia_RPParams.Et=	0.100;          % endocochlear potential (V)
133

  
134
IHC_cilia_RPParams.Gk=	2e-008;         % 1e-8 potassium conductance (S)
135
IHC_cilia_RPParams.Ek=	-0.08;          % -0.084 K equilibrium potential
136
IHC_cilia_RPParams.Rpc=	0.04;           % combined resistances
137

  
138

  
139
%%  #5 IHCpreSynapse
140
IHCpreSynapseParams=[];
141
IHCpreSynapseParams.GmaxCa=	14e-9;% maximum calcium conductance
142
IHCpreSynapseParams.GmaxCa=	12e-9;% maximum calcium conductance
143
IHCpreSynapseParams.ECa=	0.066;  % calcium equilibrium potential
144
IHCpreSynapseParams.beta=	400;	% determine Ca channel opening
145
IHCpreSynapseParams.gamma=	100;	% determine Ca channel opening
146
IHCpreSynapseParams.tauM=	0.00005;	% membrane time constant ?0.1ms
147
IHCpreSynapseParams.power=	3;
148
% reminder: changing z has a strong effect on HF thresholds (like Et)
149
IHCpreSynapseParams.z=	    1e42;   % scalar Ca -> vesicle release rate
150

  
151
LSRtauCa=35e-6;            HSRtauCa=85e-6;            % seconds
152
% LSRtauCa=35e-6;            HSRtauCa=70e-6;            % seconds
153
IHCpreSynapseParams.tauCa= [LSRtauCa HSRtauCa]; %LSR and HSR fiber
154

  
155
%%  #6 AN_IHCsynapse
156
% c=kym/(y(l+r)+kl)	(spontaneous rate)
157
% c=(approx)  ym/l  (saturated rate)
158
AN_IHCsynapseParams=[];             % clear the structure first
159
AN_IHCsynapseParams.M=	12;         % maximum vesicles at synapse
160
AN_IHCsynapseParams.y=	4;          % depleted vesicle replacement rate
161
% AN_IHCsynapseParams.y=	6;          % depleted vesicle replacement rate
162

  
163
AN_IHCsynapseParams.x=	10;         % replenishment from re-uptake store
164
AN_IHCsynapseParams.x=	60;         % replenishment from re-uptake store
165

  
166
% reduce l to increase saturated rate
167
AN_IHCsynapseParams.l=	150; % *loss rate of vesicles from the cleft
168
% AN_IHCsynapseParams.l=	250; % *loss rate of vesicles from the cleft
169

  
170
AN_IHCsynapseParams.r=	500; % *reuptake rate from cleft into cell
171
% AN_IHCsynapseParams.r=	300; % *reuptake rate from cleft into cell
172

  
173
AN_IHCsynapseParams.refractory_period=	0.00075;
174
% number of AN fibers at each BF (used only for spike generation)
175
AN_IHCsynapseParams.numFibers=	100; 
176
AN_IHCsynapseParams.TWdelay=0.004;  % ?delay before stimulus first spike
177

  
178
AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
179

  
180
%%  #7 MacGregorMulti (first order brainstem neurons)
181
MacGregorMultiParams=[];
182
MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
183
switch MacGregorMultiType
184
    case 'primary-like'
185
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
186
        MacGregorMultiParams.type = 'primary-like cell';
187
        MacGregorMultiParams.fibersPerNeuron=4;   % N input fibers
188
        MacGregorMultiParams.dendriteLPfreq=200;  % dendritic filter
189
        MacGregorMultiParams.currentPerSpike=0.11e-6; % (A) per spike
190
        MacGregorMultiParams.Cap=4.55e-9;   % cell capacitance (Siemens)
191
        MacGregorMultiParams.tauM=5e-4;     % membrane time constant (s)
192
        MacGregorMultiParams.Ek=-0.01;      % K+ eq. potential (V)
193
        MacGregorMultiParams.dGkSpike=3.64e-5; % K+ cond.shift on spike,S
194
        MacGregorMultiParams.tauGk=	0.0012; % K+ conductance tau (s)
195
        MacGregorMultiParams.Th0=	0.01;   % equilibrium threshold (V)
196
        MacGregorMultiParams.c=	0.01;       % threshold shift on spike, (V)
197
        MacGregorMultiParams.tauTh=	0.015;  % variable threshold tau
198
        MacGregorMultiParams.Er=-0.06;      % resting potential (V)
199
        MacGregorMultiParams.Eb=0.06;       % spike height (V)
200

  
201
    case 'chopper'
202
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
203
        MacGregorMultiParams.type = 'chopper cell';
204
        MacGregorMultiParams.fibersPerNeuron=10;  % N input fibers
205
%         MacGregorMultiParams.fibersPerNeuron=6;  % N input fibers
206

  
207
        MacGregorMultiParams.dendriteLPfreq=50;   % dendritic filter
208
        MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
209
        MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
210
        
211
        MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
212
        MacGregorMultiParams.tauM=0.002;  % membrane time constant (s)
213
        MacGregorMultiParams.Ek=-0.01;    % K+ eq. potential (V)
214
        MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
215
        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
216
        MacGregorMultiParams.Th0=	0.01; % equilibrium threshold (V)
217
        MacGregorMultiParams.c=	0;        % threshold shift on spike, (V)
218
        MacGregorMultiParams.tauTh=	0.02; % variable threshold tau
219
        MacGregorMultiParams.Er=-0.06;    % resting potential (V)
220
        MacGregorMultiParams.Eb=0.06;     % spike height (V)
221
        MacGregorMultiParams.PSTHbinWidth=	1e-4;
222
end
223

  
224
%%  #8 MacGregor (second-order neuron). Only one per channel
225
MacGregorParams=[];                 % clear the structure first
226
MacGregorParams.type = 'chopper cell';
227
MacGregorParams.fibersPerNeuron=10; % N input fibers
228
MacGregorParams.dendriteLPfreq=100; % dendritic filter
229
MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
230
MacGregorParams.currentPerSpike=30e-9;% *(A) per spike
231

  
232
MacGregorParams.Cap=16.7e-9;        % cell capacitance (Siemens)
233
MacGregorParams.tauM=0.002;         % membrane time constant (s)
234
MacGregorParams.Ek=-0.01;           % K+ eq. potential (V)
235
MacGregorParams.dGkSpike=1.33e-4;   % K+ cond.shift on spike,S
236
MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
237
MacGregorParams.Th0=	0.01;       % equilibrium threshold (V)
238
MacGregorParams.c=	0;              % threshold shift on spike, (V)
239
MacGregorParams.tauTh=	0.02;       % variable threshold tau
240
MacGregorParams.Er=-0.06;           % resting potential (V)
241
MacGregorParams.Eb=0.06;            % spike height (V)
242
MacGregorParams.debugging=0;        % (special)
243
% wideband accepts input from all channels (of same fiber type)
244
% use wideband to create inhibitory units
245
MacGregorParams.wideband=0;         % special for wideband units
246
% MacGregorParams.saveAllData=0;
247

  
248
%%  #9 filteredSACF
249
minPitch=	300; maxPitch=	3000; numPitches=60;    % specify lags
250
pitches=100*log10(logspace(minPitch/100, maxPitch/100, numPitches));
251
filteredSACFParams.lags=1./pitches;     % autocorrelation lags vector
252
filteredSACFParams.acfTau=	.003;       % time constant of running ACF
253
filteredSACFParams.lambda=	0.12;       % slower filter to smooth ACF
254
filteredSACFParams.plotFilteredSACF=1;  % 0 plots unfiltered ACFs
255
filteredSACFParams.plotACFs=0;          % special plot (see code)
256
%  filteredSACFParams.usePressnitzer=0; % attenuates ACF at  long lags
257
filteredSACFParams.lagsProcedure=  'useAllLags';
258
% filteredSACFParams.lagsProcedure=  'useBernsteinLagWeights';
259
% filteredSACFParams.lagsProcedure=  'omitShortLags';
260
filteredSACFParams.criterionForOmittingLags=3;
261

  
262
% checks
263
if AN_IHCsynapseParams.numFibers<MacGregorMultiParams.fibersPerNeuron
264
    error('MacGregorMulti: too few input fibers for input to MacG unit')
265
end
266

  
267

  
268
%% write all parameters to the command window
269
% showParams is currently set at the top of htis function
270
if showParams
271
    fprintf('\n %%%%%%%%\n')
272
    fprintf('\n%s\n', method.parameterSource)
273
    fprintf('\n')
274
    nm=UTIL_paramsList(whos);
275
    for i=1:length(nm)
276
        %         eval(['UTIL_showStruct(' nm{i} ', ''' nm{i} ''')'])
277
        if ~strcmp(nm(i), 'method')
278
            eval(['UTIL_showStructureSummary(' nm{i} ', ''' nm{i} ''', 10)'])
279
        end
280
    end
281
end
282

  
283

  
284

  
285
% **********************************************************************  comparison data
286
% store individual data here for display on the multiThreshold GUI (if used)
287
% the final value in each vector is an identifier (BF or duration))
288
if isstruct(experiment)
289
    switch experiment.paradigm
290
        case {'IFMC','IFMC_8ms'}
291
            % based on MPa
292
            comparisonData=[
293
                66	51	49	48	46	45	54	250;
294
                60	54	46	42	39	49	65	500;
295
                64	51	38	32	33	59	75	1000;
296
                59	51	36	30	41	81	93	2000;
297
                71	63	53	44	36	76	95	4000;
298
                70	64	43	35	35	66	88	6000;
299
                110	110	110	110	110	110	110	8000;
300
                ];
301
            if length(BFlist)==1 && ~isempty(comparisonData)
302
                availableFrequencies=comparisonData(:,end)';
303
                findRow= find(BFlist==availableFrequencies);
304
                if ~isempty (findRow)
305
                    experiment.comparisonData=comparisonData(findRow,:);
306
                end
307
            end
308

  
309
        case {'TMC','TMC_8ms'}
310
            % based on MPa
311
            comparisonData=[
312
                48	58	63	68	75	80	85	92	99	250;
313
                33	39	40	49	52	61	64	77	79	500;
314
                39	42	50	81	83	92	96	97	110	1000;
315
                24	26	32	37	46	51	59	71	78	2000;
316
                65	68	77	85	91	93	110	110	110	4000;
317
                20	19	26	44	80	95	96	110	110	6000;
318
                ];
319
            if length(BFlist)==1 && ~isempty(comparisonData)
320
                availableFrequencies=comparisonData(:,end)';
321
                findRow= find(BFlist==availableFrequencies);
322
                if ~isempty (findRow)
323
                    experiment.comparisonData=comparisonData(findRow,:);
324
                end
325
            end
326

  
327
        case { 'absThreshold',  'absThreshold_8'}
328
            % MPa thresholds
329
            experiment.comparisonData=[
330
                32	26	16	18	22	22 0.008;
331
                16	13	6	9	15	11 0.500
332
                ];
333

  
334

  
335
        otherwise
336
            experiment.comparisonData=[];
337
    end
338
end
339

  
340

  
parameterStore/MAPparamsOHC.m
1
function method=MAPparamsOHC ...
2
    (BFlist, sampleRate, showParams, paramChanges)
3
% MAPparams<> establishes a complete set of MAP parameters
4
% Parameter file names must be of the form <MAPparams> <name>
5
%
6
% input arguments
7
%  BFlist     (optional) specifies the desired list of channel BFs
8
%    otherwise defaults set below
9
%  sampleRate (optional), default is 50000.
10
%  showParams (optional) =1 prints out the complete set of parameters
11
% output argument
12
%  method passes a miscelleny of values
13

  
14
global inputStimulusParams OMEParams DRNLParams
15
global IHC_VResp_VivoParams IHCpreSynapseParams  AN_IHCsynapseParams
16
global MacGregorParams MacGregorMultiParams  filteredSACFParams
17
global experiment % used by calls from multiThreshold only
18
global IHC_cilia_RPParams
19

  
20
currentFile=mfilename;                      % i.e. the name of this mfile
21
method.parameterSource=currentFile(10:end); % for the record
22

  
23
efferentDelay=0.010;
24
method.segmentDuration=efferentDelay;
25

  
26
if nargin<3, showParams=0; end
27
if nargin<2, sampleRate=50000; end
28
if nargin<1 || BFlist(1)<0 % if BFlist= -1, set BFlist to default
29
    lowestBF=250; 	highestBF= 8000; 	numChannels=21;
30
    % 21 chs (250-8k)includes BFs at 250 500 1000 2000 4000 8000
31
    BFlist=round(logspace(log10(lowestBF),log10(highestBF),numChannels));
32
end
33
% BFlist=1000;
34

  
35
% preserve for backward campatibility
36
method.nonlinCF=BFlist; 
37
method.dt=1/sampleRate; 
38

  
39
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40
% set  model parameters
41
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42

  
43
%%  #1 inputStimulus
44
inputStimulusParams=[];
45
inputStimulusParams.sampleRate= sampleRate; 
46

  
47
%%  #2 outerMiddleEar
48
OMEParams=[];  % clear the structure first
49
% outer ear resonances band pass filter  [gain lp order  hp]
50
OMEParams.externalResonanceFilters=      [ 10 1 1000 4000];
51
                                       
52
% highpass stapes filter  
53
%  Huber gives 2e-9 m at 80 dB and 1 kHz (2e-13 at 0 dB SPL)
54
OMEParams.OMEstapesLPcutoff= 1000;
55
OMEParams.stapesScalar=	     45e-9;
56

  
57
% Acoustic reflex: maximum attenuation should be around 25 dB Price (1966)
58
% i.e. a minimum ratio of 0.056.
59
% 'spikes' model: AR based on brainstem spiking activity (LSR)
60
OMEParams.rateToAttenuationFactor=0.006;   % * N(all ICspikes)
61
% OMEParams.rateToAttenuationFactor=0;   % * N(all ICspikes)
62

  
63
% 'probability model': Ar based on AN firing probabilities (LSR)
64
OMEParams.rateToAttenuationFactorProb=0.01;% * N(all ANrates)
65
% OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
66

  
67
% asymptote should be around 100-200 ms
68
OMEParams.ARtau=.05; % AR smoothing function
69
% delay must be longer than the segment length
70
OMEParams.ARdelay=efferentDelay;  %Moss gives 8.5 ms latency
71
OMEParams.ARrateThreshold=0;
72

  
73
%%  #3 DRNL
74
DRNLParams=[];  % clear the structure first
75
DRNLParams.BFlist=BFlist;
76

  
77
% DRNL nonlinear path
78
DRNLParams.a=0;     % DRNL.a=0 means no OHCs (no nonlinear path)
79

  
80
DRNLParams.b=8e-6;    % *compression threshold raised compression
81
% DRNLParams.b=1;    % b=1 means no compression
82

  
83
DRNLParams.c=0.2;     % compression exponent
84
% nonlinear filters
85
DRNLParams.nonlinCFs=BFlist;
86
DRNLParams.nonlinOrder=	3;           % order of nonlinear gammatone filters
87
p=0.2895;   q=170;  % human  (% p=0.14;   q=366;  % cat)
88
DRNLParams.nlBWs=  p * BFlist + q;
89
DRNLParams.p=p;   DRNLParams.q=q;   % save p and q for printing only
90

  
91
% DRNL linear path:
92
DRNLParams.g=100;     % linear path gain factor
93
% linCF is not necessarily the same as nonlinCF
94
minLinCF=153.13; coeffLinCF=0.7341;   % linCF>nonlinBF for BF < 1 kHz
95
DRNLParams.linCFs=minLinCF+coeffLinCF*BFlist;
96
DRNLParams.linOrder=	3;           % order of linear gammatone filters
97
minLinBW=100; coeffLinBW=0.6531;
98
DRNLParams.linBWs=minLinBW + coeffLinBW*BFlist; % bandwidths of linear  filters
99

  
100
% DRNL MOC efferents
101
DRNLParams.MOCdelay = efferentDelay;            % must be < segment length!
102

  
103
% 'spikes' model: MOC based on brainstem spiking activity (HSR)
104
DRNLParams.rateToAttenuationFactor = .01;  % strength of MOC
105
%      DRNLParams.rateToAttenuationFactor = 0;  % strength of MOC
106
% 'probability' model: MOC based on AN spiking activity (HSR)
107
DRNLParams.rateToAttenuationFactorProb = .0055;  % strength of MOC
108
% DRNLParams.rateToAttenuationFactorProb = .0;  % strength of MOC
109
DRNLParams.MOCrateThresholdProb =70;                % spikes/s probability only
110

  
111
DRNLParams.MOCtau =.1;                         % smoothing for MOC
112

  
113

  
114
%% #4 IHC_cilia_RPParams
115

  
116
IHC_cilia_RPParams.tc=	0.0003;   % 0.0003 filter time simulates viscocity
117
% IHC_cilia_RPParams.tc=	0.0005;   % 0.0003 filter time simulates viscocity
118
IHC_cilia_RPParams.C=	0.05;      % 0.1 scalar (C_cilia ) 
119
IHC_cilia_RPParams.u0=	5e-9;       
120
IHC_cilia_RPParams.s0=	30e-9;
121
IHC_cilia_RPParams.u1=	1e-9;
122
IHC_cilia_RPParams.s1=	1e-9;
123

  
124
IHC_cilia_RPParams.Gmax= 5e-9;    % 2.5e-9 maximum conductance (Siemens)
125
IHC_cilia_RPParams.Ga=	1e-9;  % 4.3e-9 fixed apical membrane conductance
126

  
127
%  #5 IHC_RP
128
IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
129
IHC_cilia_RPParams.Cab=	1e-012;         % IHC capacitance (F)
130
IHC_cilia_RPParams.Et=	0.1;          % endocochlear potential (V)
131

  
132
IHC_cilia_RPParams.Gk=	2e-008;         % 1e-8 potassium conductance (S)
133
IHC_cilia_RPParams.Ek=	-0.08;          % -0.084 K equilibrium potential
134
IHC_cilia_RPParams.Rpc=	0.04;           % combined resistances
135

  
136

  
137
%%  #5 IHCpreSynapse
138
IHCpreSynapseParams=[];
139
IHCpreSynapseParams.GmaxCa=	14e-9;% maximum calcium conductance
140
IHCpreSynapseParams.GmaxCa=	12e-9;% maximum calcium conductance
141
IHCpreSynapseParams.ECa=	0.066;  % calcium equilibrium potential
142
IHCpreSynapseParams.beta=	400;	% determine Ca channel opening
143
IHCpreSynapseParams.gamma=	100;	% determine Ca channel opening
144
IHCpreSynapseParams.tauM=	0.00005;	% membrane time constant ?0.1ms
145
IHCpreSynapseParams.power=	3;
146
% reminder: changing z has a strong effect on HF thresholds (like Et)
147
IHCpreSynapseParams.z=	    2e42;   % scalar Ca -> vesicle release rate
148

  
149
LSRtauCa=35e-6;            HSRtauCa=85e-6;            % seconds
150
% LSRtauCa=35e-6;            HSRtauCa=70e-6;            % seconds
151
IHCpreSynapseParams.tauCa= [LSRtauCa HSRtauCa]; %LSR and HSR fiber
152

  
153
%%  #6 AN_IHCsynapse
154
% c=kym/(y(l+r)+kl)	(spontaneous rate)
155
% c=(approx)  ym/l  (saturated rate)
156
AN_IHCsynapseParams=[];             % clear the structure first
157
AN_IHCsynapseParams.M=	12;         % maximum vesicles at synapse
158
AN_IHCsynapseParams.y=	4;          % depleted vesicle replacement rate
159
AN_IHCsynapseParams.y=	6;          % depleted vesicle replacement rate
160

  
161
AN_IHCsynapseParams.x=	30;         % replenishment from re-uptake store
162
AN_IHCsynapseParams.x=	60;         % replenishment from re-uptake store
163

  
164
% reduce l to increase saturated rate
165
AN_IHCsynapseParams.l=	100; % *loss rate of vesicles from the cleft
166
AN_IHCsynapseParams.l=	250; % *loss rate of vesicles from the cleft
167

  
168
AN_IHCsynapseParams.r=	500; % *reuptake rate from cleft into cell
169
% AN_IHCsynapseParams.r=	300; % *reuptake rate from cleft into cell
170

  
171
AN_IHCsynapseParams.refractory_period=	0.00075;
172
% number of AN fibers at each BF (used only for spike generation)
173
AN_IHCsynapseParams.numFibers=	100; 
174
AN_IHCsynapseParams.TWdelay=0.004;  % ?delay before stimulus first spike
175

  
176
AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
177

  
178
%%  #7 MacGregorMulti (first order brainstem neurons)
179
MacGregorMultiParams=[];
180
MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
181
switch MacGregorMultiType
182
    case 'primary-like'
183
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
184
        MacGregorMultiParams.type = 'primary-like cell';
185
        MacGregorMultiParams.fibersPerNeuron=4;   % N input fibers
186
        MacGregorMultiParams.dendriteLPfreq=200;  % dendritic filter
187
        MacGregorMultiParams.currentPerSpike=0.11e-6; % (A) per spike
188
        MacGregorMultiParams.Cap=4.55e-9;   % cell capacitance (Siemens)
189
        MacGregorMultiParams.tauM=5e-4;     % membrane time constant (s)
190
        MacGregorMultiParams.Ek=-0.01;      % K+ eq. potential (V)
191
        MacGregorMultiParams.dGkSpike=3.64e-5; % K+ cond.shift on spike,S
192
        MacGregorMultiParams.tauGk=	0.0012; % K+ conductance tau (s)
193
        MacGregorMultiParams.Th0=	0.01;   % equilibrium threshold (V)
194
        MacGregorMultiParams.c=	0.01;       % threshold shift on spike, (V)
195
        MacGregorMultiParams.tauTh=	0.015;  % variable threshold tau
196
        MacGregorMultiParams.Er=-0.06;      % resting potential (V)
197
        MacGregorMultiParams.Eb=0.06;       % spike height (V)
198

  
199
    case 'chopper'
200
        MacGregorMultiParams.nNeuronsPerBF=	10;   % N neurons per BF
201
        MacGregorMultiParams.type = 'chopper cell';
202
        MacGregorMultiParams.fibersPerNeuron=10;  % N input fibers
203
%         MacGregorMultiParams.fibersPerNeuron=6;  % N input fibers
204

  
205
        MacGregorMultiParams.dendriteLPfreq=50;   % dendritic filter
206
        MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
207
        MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
208
        
209
        MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
210
        MacGregorMultiParams.tauM=0.002;  % membrane time constant (s)
211
        MacGregorMultiParams.Ek=-0.01;    % K+ eq. potential (V)
212
        MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
213
        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
214
        MacGregorMultiParams.Th0=	0.01; % equilibrium threshold (V)
215
        MacGregorMultiParams.c=	0;        % threshold shift on spike, (V)
216
        MacGregorMultiParams.tauTh=	0.02; % variable threshold tau
217
        MacGregorMultiParams.Er=-0.06;    % resting potential (V)
218
        MacGregorMultiParams.Eb=0.06;     % spike height (V)
219
        MacGregorMultiParams.PSTHbinWidth=	1e-4;
220
end
221

  
222
%%  #8 MacGregor (second-order neuron). Only one per channel
223
MacGregorParams=[];                 % clear the structure first
224
MacGregorParams.type = 'chopper cell';
225
MacGregorParams.fibersPerNeuron=10; % N input fibers
226
MacGregorParams.dendriteLPfreq=100; % dendritic filter
227
MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
228
MacGregorParams.currentPerSpike=30e-9;% *(A) per spike
229

  
230
MacGregorParams.Cap=16.7e-9;        % cell capacitance (Siemens)
231
MacGregorParams.tauM=0.002;         % membrane time constant (s)
232
MacGregorParams.Ek=-0.01;           % K+ eq. potential (V)
233
MacGregorParams.dGkSpike=1.33e-4;   % K+ cond.shift on spike,S
234
MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
235
MacGregorParams.Th0=	0.01;       % equilibrium threshold (V)
236
MacGregorParams.c=	0;              % threshold shift on spike, (V)
237
MacGregorParams.tauTh=	0.02;       % variable threshold tau
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff