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 @ 29:b51bf546ca3f

History | View | Annotate | Download (12.7 KB)

1 10:4ef8e0e63866 rmeddis
function method=MAPparamsEndo ...
2 26:b03ef38fe497 rmeddis
    (BFlist, sampleRate, showParams, paramChanges)
3 10:4ef8e0e63866 rmeddis
% 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 28:02aa9826efe0 rmeddis
global inputStimulusParams OMEParams DRNLParams IHC_cilia_RPParams
15 10:4ef8e0e63866 rmeddis
global IHC_VResp_VivoParams IHCpreSynapseParams  AN_IHCsynapseParams
16
global MacGregorParams MacGregorMultiParams  filteredSACFParams
17
global experiment % used by calls from multiThreshold only
18 28:02aa9826efe0 rmeddis
19 10:4ef8e0e63866 rmeddis
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 25:d2c4c07df02c rmeddis
% 'spikes' model: AR based on brainstem spiking activity (LSR)
60
OMEParams.rateToAttenuationFactor=0.006;   % * N(all ICspikes)
61 26:b03ef38fe497 rmeddis
% OMEParams.rateToAttenuationFactor=0;   % * N(all ICspikes)
62 25:d2c4c07df02c rmeddis
63
% 'probability model': Ar based on AN firing probabilities (LSR)
64
OMEParams.rateToAttenuationFactorProb=0.01;% * N(all ANrates)
65 26:b03ef38fe497 rmeddis
% OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
66 25:d2c4c07df02c rmeddis
67 10:4ef8e0e63866 rmeddis
% 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 25:d2c4c07df02c rmeddis
DRNLParams.a=5e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
79 28:02aa9826efe0 rmeddis
DRNLParams.a=2e4;     % DRNL.a=0 means no OHCs (no nonlinear path)
80 10:4ef8e0e63866 rmeddis
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 25:d2c4c07df02c rmeddis
104
% 'spikes' model: MOC based on brainstem spiking activity (HSR)
105
DRNLParams.rateToAttenuationFactor = .01;  % strength of MOC
106 10:4ef8e0e63866 rmeddis
%      DRNLParams.rateToAttenuationFactor = 0;  % strength of MOC
107 25:d2c4c07df02c rmeddis
% 'probability' model: MOC based on AN spiking activity (HSR)
108 26:b03ef38fe497 rmeddis
DRNLParams.rateToAttenuationFactorProb = .0055;  % strength of MOC
109 25:d2c4c07df02c rmeddis
% DRNLParams.rateToAttenuationFactorProb = .0;  % strength of MOC
110 26:b03ef38fe497 rmeddis
DRNLParams.MOCrateThresholdProb =70;                % spikes/s probability only
111 10:4ef8e0e63866 rmeddis
112 25:d2c4c07df02c rmeddis
DRNLParams.MOCtau =.1;                         % smoothing for MOC
113 10:4ef8e0e63866 rmeddis
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 28:02aa9826efe0 rmeddis
IHC_cilia_RPParams.C=	0.03;      % 0.1 scalar (C_cilia )
120 10:4ef8e0e63866 rmeddis
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 28:02aa9826efe0 rmeddis
IHC_cilia_RPParams.Gmax= 6e-9;    % 2.5e-9 maximum conductance (Siemens)
126 25:d2c4c07df02c rmeddis
IHC_cilia_RPParams.Ga=	1e-9;  % 4.3e-9 fixed apical membrane conductance
127 28:02aa9826efe0 rmeddis
IHC_cilia_RPParams.Ga=	.8e-9;  % 4.3e-9 fixed apical membrane conductance
128 10:4ef8e0e63866 rmeddis
129
%  #5 IHC_RP
130
IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
131 28:02aa9826efe0 rmeddis
% IHC_cilia_RPParams.Cab=	1e-012;         % IHC capacitance (F)
132
IHC_cilia_RPParams.Et=	0.05;          % endocochlear potential (V)
133 10:4ef8e0e63866 rmeddis
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 25:d2c4c07df02c rmeddis
LSRtauCa=35e-6;            HSRtauCa=85e-6;            % seconds
152 10:4ef8e0e63866 rmeddis
% 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 15:35af36fe0a35 rmeddis
AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
179
180 10:4ef8e0e63866 rmeddis
%%  #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 28:02aa9826efe0 rmeddis
%         MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
210 10:4ef8e0e63866 rmeddis
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 15:35af36fe0a35 rmeddis
        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
216 10:4ef8e0e63866 rmeddis
        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 28:02aa9826efe0 rmeddis
MacGregorParams.currentPerSpike=40e-9;% *(A) per spike
231 10:4ef8e0e63866 rmeddis
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 15:35af36fe0a35 rmeddis
MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
237 10:4ef8e0e63866 rmeddis
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 26:b03ef38fe497 rmeddis
%% 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 10:4ef8e0e63866 rmeddis
%% 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 26:b03ef38fe497 rmeddis
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 10:4ef8e0e63866 rmeddis
end
300
301 28:02aa9826efe0 rmeddis
% for backward compatibility
302
experiment.comparisonData=[];