-
Notifications
You must be signed in to change notification settings - Fork 32
Using the Poisson mechanism
Jason Sherfey edited this page Nov 23, 2018
·
8 revisions
Poisson synaptic inputs
Neuron driven by homogeneous Poisson process:
eqns='dV/dt=@current; {iNa,iK,iPoisson}; V(0)=-65; DC=2000; gext=.01';
data=dsSimulate(eqns,'time_limits',[0 1000]);
dsPlot(data,'variable',{'V','gPoisson'});
Neuron driven by inhomogeneous Poisson process with rhythmic rate modulation:
eqns='dV/dt=@current; {iNa,iK,iPoisson}; V(0)=-65; DC=25000; AC=25000; f=5; gext=.001';
data=dsSimulate(eqns,'time_limits',[0 1000]);
dsPlot(data,'variable',{'V','gPoisson'});
REFERENCE (default iPoisson parameters):
poisson parameters:
- baseline=0; % sp/s, baseline rate
- DC=2000; % sp/s, steady component of the signal
- AC=0; % sp/s, oscillatory component of the signal
- f=0; % Hz, modulation frequency of the signal
- phi=0; % radians, phase at which the signal begins
- onset=0; % ms, start time of signal
- offset=inf; % ms, stop time of signal
synaptic parameters
- gext=.01; % max synaptic conductance
- Eext=0; % mV, synaptic reversal potential
- tau=2; % ms, synaptic time constant
The iPoisson mechanism wraps around a function called getPoissonGating that can be used to acquire the postsynaptic conductance produced by a Poisson spike train and to manually calculate the resulting synaptic current input (i.e., identical to the one generated by iPoisson). The following examples demonstrate how to use getPoissonGating to achieve lower-level control over the Poisson mechanism:
% Example 1:
baseline=1000; % Hz, baseline rate
DC=1000; % Hz, steady component of the signal
AC=1000; % Hz, oscillatory component of the signal
f=10; % Hz, modulation frequency of the signal
phi=pi; % radians, phase at which the signal begins
onset=200; % ms, start time of signal
offset=800; % ms, stop time of signal
tau=2; % ms, synaptic time constant
time=0:.01:1e3; % ms, time vector
Npop=2; % size of target population
s=getPoissonGating(baseline,DC,AC,f,phi,onset,offset,tau,time,Npop);
dsPlot(s,'plot_type','waveform');
dsPlot(s,'plot_type','power');
% Example 2: single cell with poisson-based AMPA input (lambda=100Hz)
eqns='dV/dt=@current-s(k,:).*V; s=getPoissonGating(0,100); {iNa,iK}';
data=dsSimulate(eqns,'tspan',[0 1000]);
dsPlot(data);
% Example 3: parameterized version of Example 2
eqns='dV/dt=@current-g*s(k,:).*(V-E); s=getPoissonGating(0,DC); {iNa,iK}; g=1; E=0; DC=0';
data=dsSimulate(eqns,'tspan',[0 500],'vary',{'DC',[0 100 1000];'g',[.01 1]});
dsPlot(data);
% Example 4: rhythmically-modulated poisson, AMPA synapse, monitoring input
eqns={'dV/dt=@current+Iampa(V); {iNa,iK}; monitor Iampa';
'Iampa(V)=-gext*s(k,:).*(V-0); s=getPoissonGating(0,DC,AC,f)';
'gext=.001; DC=25000; AC=25000; f=5; V(0)=-65'};
data=dsSimulate(eqns,'tspan',[0 1000]);
dsPlot(data,'variable',{'V','Iampa'});