rmeddis@38
|
1 function testSynapse(BF,paramsName, AN_spikesOrProbability, paramChanges)
|
rmeddis@29
|
2 % testSynapse tracks the quantity of available transmitter vesicles
|
rmeddis@29
|
3 % the computations are single channel using the first frequency
|
rmeddis@29
|
4 % in the targetFrequency box of the expGUI.
|
rmeddis@38
|
5 % This function uses only probability and HSR fibers.
|
rmeddis@38
|
6 % testSynapse(1000,'Normal',[])
|
rmeddis@29
|
7
|
rmeddis@38
|
8 global experiment IHCpreSynapseParams
|
rmeddis@29
|
9 global AN_IHCsynapseParams stimulusParameters
|
rmeddis@38
|
10 global savePavailable saveNavailable
|
rmeddis@38
|
11
|
rmeddis@29
|
12 savePath=path;
|
rmeddis@29
|
13 addpath (['..' filesep 'utilities'],['..' filesep 'MAP'])
|
rmeddis@29
|
14
|
rmeddis@29
|
15 if nargin<3
|
rmeddis@29
|
16 paramChanges=[];
|
rmeddis@29
|
17 end
|
rmeddis@29
|
18
|
rmeddis@38
|
19 if length(BF)>1
|
rmeddis@38
|
20 error('Only one value allowed for BF')
|
rmeddis@38
|
21 end
|
rmeddis@38
|
22 % AN_spikesOrProbability='probability';
|
rmeddis@38
|
23 % AN_spikesOrProbability='spikes';
|
rmeddis@38
|
24 % showPlotsAndDetails=0;
|
rmeddis@38
|
25
|
rmeddis@29
|
26 figure(6),clf
|
rmeddis@29
|
27 plotColors='rbgkrbgkrbgkrbgkrbgkrbgk';
|
rmeddis@29
|
28 set(gcf,'position',[5 32 264 243])
|
rmeddis@29
|
29
|
rmeddis@29
|
30 sampleRate=5e4; dt=1/sampleRate;
|
rmeddis@29
|
31
|
rmeddis@38
|
32 switch AN_spikesOrProbability
|
rmeddis@38
|
33 case 'probability'
|
rmeddis@38
|
34 maskerLevels=-0:20:100;
|
rmeddis@38
|
35 case 'spikes'
|
rmeddis@38
|
36 maskerLevels=80;
|
rmeddis@38
|
37 end
|
rmeddis@29
|
38
|
rmeddis@38
|
39 targetFrequency=BF;
|
rmeddis@29
|
40
|
rmeddis@29
|
41 silenceDuration=0.015;
|
rmeddis@29
|
42 maskerDuration=0.1;
|
rmeddis@29
|
43 recoveryDuration=0.15;
|
rmeddis@29
|
44 rampDuration=0.004;
|
rmeddis@29
|
45
|
rmeddis@29
|
46 maskerTime=dt:dt:maskerDuration;
|
rmeddis@29
|
47
|
rmeddis@29
|
48 rampTime=dt:dt:rampDuration;
|
rmeddis@29
|
49 ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ...
|
rmeddis@29
|
50 ones(1,length(maskerTime)-length(rampTime))];
|
rmeddis@29
|
51 ramp=ramp.*fliplr(ramp);
|
rmeddis@29
|
52
|
rmeddis@29
|
53 initialSilence=zeros(1,round(silenceDuration/dt));
|
rmeddis@29
|
54 recoverySilence=zeros(1,round(recoveryDuration/dt));
|
rmeddis@29
|
55
|
rmeddis@29
|
56 signal=sin(2*pi*targetFrequency'*maskerTime);
|
rmeddis@29
|
57 signal= ramp.*signal;
|
rmeddis@29
|
58 signal=[initialSilence signal recoverySilence];
|
rmeddis@29
|
59
|
rmeddis@29
|
60 levelCount=0;
|
rmeddis@29
|
61 qtMatrix=[];
|
rmeddis@29
|
62 for leveldB=maskerLevels
|
rmeddis@29
|
63 levelCount=levelCount+1;
|
rmeddis@29
|
64
|
rmeddis@29
|
65 amp=28e-6*10^(leveldB/20);
|
rmeddis@29
|
66 inputSignal=amp*signal;
|
rmeddis@29
|
67
|
rmeddis@38
|
68 MAP1_14(inputSignal, 1/dt, targetFrequency, ...
|
rmeddis@38
|
69 paramsName, AN_spikesOrProbability, paramChanges);
|
rmeddis@29
|
70
|
rmeddis@29
|
71 % ignore LSR channels (if any) at the top of the matrix
|
rmeddis@38
|
72 switch AN_spikesOrProbability
|
rmeddis@38
|
73 case 'probability'
|
rmeddis@38
|
74 qt=savePavailable(end, :);
|
rmeddis@38
|
75 case 'spikes'
|
rmeddis@38
|
76 qt=saveNavailable;
|
rmeddis@38
|
77 end
|
rmeddis@29
|
78 synapsedt=dt;
|
rmeddis@29
|
79 time=synapsedt:synapsedt:synapsedt*length(qt);
|
rmeddis@29
|
80
|
rmeddis@29
|
81 figure(6)
|
rmeddis@29
|
82 qtMatrix=[qtMatrix; qt];
|
rmeddis@29
|
83 plot(time,qt, plotColors(levelCount))
|
rmeddis@29
|
84 hold on
|
rmeddis@29
|
85 xlim([0 max(time)])
|
rmeddis@29
|
86 ylim([0 AN_IHCsynapseParams.M])
|
rmeddis@38
|
87 xlabel ('time')
|
rmeddis@29
|
88 end
|
rmeddis@29
|
89
|
rmeddis@29
|
90 set(gcf,'name','pre-synaptic available transmitter')
|
rmeddis@38
|
91 title(['pre-synaptic transmitter:' num2str(BF) ' Hz'])
|
rmeddis@38
|
92 ylabel(['q - available vesicles'])
|
rmeddis@29
|
93 legend(strvcat(num2str(maskerLevels')),'location','southeast')
|
rmeddis@29
|
94 legend boxoff
|
rmeddis@29
|
95 grid on
|
rmeddis@29
|
96
|
rmeddis@38
|
97 switch AN_spikesOrProbability
|
rmeddis@38
|
98 case 'probability'
|
rmeddis@38
|
99 figure(88), [c,H]=contour(time, maskerLevels,qtMatrix,1:12); clabel(c, H);
|
rmeddis@38
|
100 set(gcf,'position',[ 276 31 328 246])
|
rmeddis@38
|
101 xlabel('time'), ylabel('maskerLevels')
|
rmeddis@38
|
102 title('contour plot of available transmitter')
|
rmeddis@38
|
103 grid on
|
rmeddis@38
|
104 end
|
rmeddis@29
|
105 path(savePath);
|