To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

The primary repository for this project is hosted at git://github.com/rmeddis/MAP.git .
This repository is a read-only copy which is updated automatically every hour.

Statistics Download as Zip
| Branch: | Revision:

root / parameterStore / MAPparamsEndo.m @ 28:02aa9826efe0

History | View | Annotate | Download (12.7 KB)

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.100;          % endocochlear potential (V)
133
IHC_cilia_RPParams.Et=	0.05;          % endocochlear potential (V)
134

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

    
139

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
268

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

    
278

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

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

    
302
% for backward compatibility
303
experiment.comparisonData=[];