Spike frequency adaptation in the LGMD (Peron and Gabbiani 2009)

 Download zip file 
Help downloading and running models
Accession:116945
This model is used in the referenced paper to demonstrate that a model of an SK-like calcium-sensitive potassium (KCa) conductance can replicate the spike frequency adaptation (SFA) of the locust lobula giant movement detector (LGMD) neuron. The model simulates current injection experiments with and without KCa block in the LGMD, as well as visual stimulation experiments with and without KCa block.
Reference:
1 . Peron S, Gabbiani F (2009) Spike frequency adaptation mediates looming stimulus selectivity in a collision-detecting neuron. Nat Neurosci 12:318-26 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s): Locust Lobula Giant Movement Detector (LGMD) neuron;
Channel(s): I Na,t; I K,Ca; I Calcium; I Krp;
Gap Junctions:
Receptor(s): GabaA; Cholinergic Receptors;
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Spike Frequency Adaptation; Vision;
Implementer(s): Gabbiani, F; Peron, Simon [perons at janelia.hhmi.org];
Search NeuronDB for information about:  GabaA; Cholinergic Receptors; I Na,t; I K,Ca; I Calcium; I Krp;
%
% S Peron 5/12/08
%
% This will return a current injection pattern - setting t_inj if you do assign it,
%  otherwise using I_inj_end and I_inj_start.
%
% pattern_type: 1 - fixed
%               2 - linear change (negative for DECREASE)
%               3 - loomlike (negative for RECEDE)
%
% params - if pattern_Type ==3, params(1) = start angle; params(2) = end angle ;  params(3) = l/v
% 
function ps_mod = get_curinj_pattern(ps_mod, pattern_type, I_base, I_max, params, t_inj)
	ps_mod.I_inj_nA = [0 0 0]; % Don't let other stuff mess with current vectors
  if (exist('t_inj') ~= 0)
	  ps_mod.I_inj_start= t_inj(1);
	  ps_mod.I_inj_end = t_inj(2);
  end

  ps_mod.I_of_t = zeros(3,length(0:ps_mod.dt:ps_mod.duration));
  ps_mod.I_of_t(2,:) = I_base*ones(1,length(0:ps_mod.dt:ps_mod.duration));
  switch (pattern_type)
    case 1 % fixed
      ps_mod.I_of_t(2,round(ps_mod.I_inj_start/ps_mod.dt):round(ps_mod.I_inj_end/ps_mod.dt)) = I_max;

    case -2 % linear
			inj_vec = linspace(I_max,I_base,length(round(ps_mod.I_inj_start/ps_mod.dt):round(ps_mod.I_inj_end/ps_mod.dt))); % linear
			ps_mod.I_of_t(2,round(ps_mod.I_inj_start/ps_mod.dt):round(ps_mod.I_inj_end/ps_mod.dt)) = inj_vec;

    case 2 % linear
			inj_vec = linspace(I_base,I_max,length(round(ps_mod.I_inj_start/ps_mod.dt):round(ps_mod.I_inj_end/ps_mod.dt))); % linear
			ps_mod.I_of_t(2,round(ps_mod.I_inj_start/ps_mod.dt):round(ps_mod.I_inj_end/ps_mod.dt)) = inj_vec;

    case -3 % loomlike -- RECEDE
      theta_0 = params(1);
      theta_f = params(2);
      l_over_v = params(3);
      t_f = -1*l_over_v/tand(theta_f);
      t_0 = -1*l_over_v/tand(theta_0);

      t_vec = t_f:-1*ps_mod.dt:t_0;
      inj_vec = -1*atand(l_over_v./t_vec);
      inj_vec = I_max * inj_vec/max(inj_vec); % scale to max
      inj_vec(find(inj_vec < I_base)) = I_base ; % scale to base
			ps_mod.I_of_t(2,round(ps_mod.I_inj_start/ps_mod.dt):round(ps_mod.I_inj_start/ps_mod.dt)+length(inj_vec)-1) = inj_vec';

    case 3 % loomlike
      theta_0 = params(1);
      theta_f = params(2);
      l_over_v = params(3);
      t_f = -1*l_over_v/tand(theta_f);
      t_0 = -1*l_over_v/tand(theta_0);

      t_vec = t_0:ps_mod.dt:t_f;
      inj_vec = -1*atand(l_over_v./t_vec);
      inj_vec = I_max * inj_vec/max(inj_vec); % scale to max
      inj_vec(find(inj_vec < I_base)) = I_base ; % scale to base
			ps_mod.I_of_t(2,round(ps_mod.I_inj_start/ps_mod.dt):round(ps_mod.I_inj_start/ps_mod.dt)+length(inj_vec)-1) = inj_vec';
  end

  % Morphological tweak
  ps_mod.I_of_t(2,:) = ps_mod.I_of_t(2,:)*.001/ps_mod.Ad; % convert to uA/cm2

Loading data, please wait...