Using the Poisson mechanism

Jason Sherfey edited this page Jan 30, 2018 · 3 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'});
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.