No BSD License  

Highlights from
Neurocal

image thumbnail
from Neurocal by Zeng Lertmanorat
Simulation describing the electrical activity of nerve cell (neuron) by solving cable equation

schwarz(varargin)
function [varargout] = schwarz(varargin)
%1='m','h','alfam','alfah','betam','betah'
%2=V[1:#node]
%3 (for m&h, old mgate & hgate have to be supplied
%4 = dt
%-----------------------------------
persistent q10_Naf_m q10_Naf_h q10_Nap_m q10_Ks_s

action = varargin{1};    
switch action
case 'Initial'
   model=[];
   %-----------------------------------------------------------
   model.name='schwarz';
   %-----------------------------------------------------------
   model.gate{1}='Naf_m';
   model.gate{2}='Naf_h';
   model.gate{3}='Nap_m';
   model.gate{4}='Ks_s';
   %-----------------------------------------------------------
   model.I{1}.name='Naf';
   model.I{1}.G=3000;        %(kOhm-Cm^2)^-1
   model.I{1}.E=50;         %(mV)
   model.I{1}.gate=[1 3;
                    2 1]; %gate1^3.gate2^1
   
   model.I{2}.name='Nap';
   model.I{2}.G=5;
   model.I{2}.E=50;
   model.I{2}.gate=[3 3];   
   
   model.I{3}.name='Ks';
   model.I{3}.G=80;
   model.I{3}.E=-84;
   model.I{3}.gate=[4 1];   

   model.I{4}.name='Lk';
   model.I{4}.G=80;
   model.I{4}.E=-83.38;
   model.I{4}.gate=[];   
						             %[mS/cm^2  mV   -   -]
   %-----------------------------------------------------------
   %optional
   model.vini=-82;
   model.temperature=37;
   %-----------------------------------------------------------
   varargout{1}=model;
case 'setting'
   %Setting is called every calculation
    temperature=varargin{2};
    q10_Naf_m=2.2^((temperature-20)/10);
    q10_Naf_h=2.9^((temperature-20)/10);
    q10_Nap_m=2.2^((temperature-20)/10);
    q10_Ks_s=3.0^((temperature-20)/10);
case 'Naf_m'
    %v=varargin{2}; 
    %gate=varargin{3};
    %dt=varargin{4};
    %q10=2.2^((temperature-20)/10);
    alfam=q10_Naf_m*schwarz('Naf_m_alfa',varargin{2});
    betam=q10_Naf_m*schwarz('Naf_m_beta',varargin{2});
    varargout{1}=Gate_Trap(varargin{3},varargin{4},alfam,betam);
case 'Naf_m_alfa'
    %v=varargin{2}; 
    varargout{1}=1.86*(varargin{2}+25.4)./(1-exp(-(varargin{2}+25.4)/10.3));

case 'Naf_m_beta'
    %v=varargin{2}; 
    varargout{1}=-0.086*(varargin{2}+29.7)./( 1-exp((varargin{2}+29.7)/9.16) );

case 'Naf_h'
    %v=varargin{2}; 
%   gate=varargin{3};
%   dt=varargin{4};
%   q10=2.9^((temperature-20)/10);
 	alfah=q10_Naf_h*schwarz('Naf_h_alfa',varargin{2});
    betah=q10_Naf_h*schwarz('Naf_h_beta',varargin{2});
    varargout{1}=Gate_Trap(varargin{3},varargin{4},alfah,betah);
  
case 'Naf_h_alfa'
    %v=varargin{2}; 
   varargout{1}=-0.0336*(varargin{2}+118)./(1-exp((varargin{2}+118)/11));

case 'Naf_h_beta'
    %v=varargin{2}; 
   varargout{1}=(2.3)./( 1+exp(-(varargin{2}+35.8)/13.4) );
   
   
   
case 'Nap_m'
    %v=varargin{2}; 
   %gate=varargin{3};
   %dt=varargin{4};
   %q10=2.2^((temperature-20)/10);
   	alfam=q10_Nap_m*schwarz('Nap_m_alfa',varargin{2});
    betam=q10_Nap_m*schwarz('Nap_m_beta',varargin{2});
   
    varargout{1}=Gate_Trap(varargin{3},varargin{4},alfam,betam);
  
case 'Nap_m_alfa'
    %v=varargin{2}; 
   varargout{1}=0.186*(varargin{2}+48.4)./(1-exp(-(varargin{2}+48.4)/10.3));

case 'Nap_m_beta'
    %v=varargin{2}; 
   varargout{1}=-0.0086*(varargin{2}+42.7)./( 1-exp((varargin{2}+42.7)/9.16) );
   
case 'Ks_s'
    %v=varargin{2}; 
%   gate=varargin{3};
%   dt=varargin{4};
%    q10=3.0^((temperature-20)/10);
   	alfam=q10_Ks_s*schwarz('Ks_s_alfa',varargin{2});
    betam=q10_Ks_s*schwarz('Ks_s_beta',varargin{2});
   
    varargout{1}=Gate_Trap(varargin{3},varargin{4},alfam,betam);

case 'Ks_s_alfa'
    %v=varargin{2}; 
   varargout{1}=0.00122*(varargin{2}+19.5)./(1-exp(-(varargin{2}+19.5)/23.6));

case 'Ks_s_beta'
    %v=varargin{2}; 
   varargout{1}=-0.000739*(varargin{2}+87.1)./( 1-exp((varargin{2}+87.1)/21.8) );

   
   
otherwise
   
%disp(':(')   

end

Contact us at files@mathworks.com