I have just started with NEURON, because i want to use it in order to compare with the results of my own code written in MATLAB and some results from a paper. The thing is i made some test and i got the same results in MATLAB and in the paper, but i can not get the same result in NEURON.
So i just want to modelate a HH section connect with Passive dendrite, so i have 2 sections
When i simulate soma voltage and dendrite voltage, the dendrite voltage appears attenuated with respect to soma voltage
BUT when i simulate with NEURON, i've got the same soma and dendrite voltage, the voltage in dendrite is not attenuated, why is that??
Thanks for any help you can provide
Here is the result in MATLAB:
Here is the result in NEURON:
the code i made in NEURON is very simple:
Code: Select all
load_file("nrngui.hoc") //Load the simulator
create somaHH,denpas
access somaHH
somaHH {
nseg = 1
diam = 43.3 // (um)
L = 43.3 // (um)
Ra = 100.0 // (ohm*cm)
cm = 1 // (uF/cm2) , capacitance
insert hh
gnabar_hh = 0.120 // (S/cm2)
gkbar_hh = 0.036
gl_hh = .0003
ena = 45.0 // (mV)
ek = -82.0
el_hh = -59.0
}
denpas {
nseg = 1
diam = 2.5
L = 11
Ra = 100
cm = 3 // Dendrite capacitance
insert pas
g_pas = .00001
e_pas = -70.0
}
objectvar stim
somaHH stim = new IClamp(0.5)
stim.del = 30 // (mseg)
stim.dur = 30 // (mseg)
stim.amp = 0.68 // (nA)
// +++++++++++++++++++++
// CONNECT COMPARTMENTS
// +++++++++++++++++++++
connect denpas(0), somaHH(1)
Code: Select all
close all;
clear;
%% STEP 1: Parameters values
% +++++++++++++++++++++++++++++++
MODE = 0; % 0 = HH
Iamp = 0.68e-3; % uA/cm2 (amplitude) or uA (multicompartment case)
Vrest = -70; % mV
GNA = 120; % mS/cm2
GK = 36; % mS/cm2
GLEAK = 0.3; % mS/cm2
ENA = 45; % mV
EK = -82; % mV
ELEAK = -59; % mV
Csoma = 1; % uF/cm2
Cden = 3; % uF/cm2
ti_I = 30; %time initial current applied (mseg)
tf_I = 60; %time final current applied (mseg)
Tinit = 0; %mseg
Tfinal= 100; %mseg
hstep = 0.1; %mseg
NUM_COMP = 2; % number of compartments
PASS_DEN = 1; % 1=passive dendrite, 0=active dendrite
Eden = -70; % Vrest of dendrite
GCA = 10;
GK_AHP = 0.8;
GK_C = 15;
ECA = 70;
a_soma = 43.3e-4; % Radius of soma (cm)
a_den = 2*2.5e-4; % Radius of cilinder ('a' in thesis) (cm)
dx = 11e-4; % delta x, length of cilinder (cm)
Ra = 100; % citoplasm resistivity (KOhm*cm)
Rm = 100; % Passive resistance dendrite (KOhms/cm2)
Aden = 2*pi*a_den*dx; %Area dendrite cilinder
Asoma = pi*a_soma^2;
t=Tinit:hstep:Tfinal;
V=zeros(length(t),NUM_COMP);
m=zeros(length(t),NUM_COMP);
h=zeros(length(t),NUM_COMP);
n=zeros(length(t),NUM_COMP);
C=zeros(1,NUM_COMP);
Iinj=zeros(size(t))+(t>=ti_I & t<=tf_I)*Iamp;
%% STEP 2 and 3: Initialize V. And initiliaze m,h & n to steady state
% +++++++++++++++++++++++++++++++
V(1,1) = Vrest; % initial V for soma
V(1,2:end) = Eden; % initial V for dendrite
m(1,:) = alpha_m(Vrest,MODE)/(alpha_m(Vrest,MODE)+beta_m(Vrest,MODE)); % initial m (steady-equation)
h(1,:) = alpha_h(Vrest,MODE)/(alpha_h(Vrest,MODE)+beta_h(Vrest,MODE)); % initial h (steady-equation)
n(1,:) = alpha_n(Vrest,MODE)/(alpha_n(Vrest,MODE)+beta_n(Vrest,MODE)); % initial n (steady-equation)
C(1) = Csoma; % Capacitance for soma
C(2:end) = Cden; % Capacitance for dendrite
%% STEP 4: LOOP
% +++++++++++++++++++++++++++++++
for i=1:length(t)-1
for l=1:NUM_COMP
gNa = GNA * (m(i,l)^3) * h(i,l);
gK = GK * (n(i,l)^4);
if(l==1)
Ome = (gNa*ENA + gK*EK + GLEAK*ELEAK + (Iinj(i)/Asoma)); %HH soma
Phi = (gNa + gK + GLEAK);
Tao = a_soma/(Ra*a_soma*a_soma);
A(i,l) = (Tao)*V(i,l+1) + Ome;
B(i,l) = (Tao)+Phi;
elseif(l==NUM_COMP)
Ome = Eden/(Rm); %Passive dendrite
Phi = 1/(Rm);
Tao = a_den/(Ra*dx*dx);
A(i,l) = (Tao)*V(i,l-1) + Ome;
B(i,l) = (Tao)+Phi;
end
%Exponential Euler's rule
m(i+1,l) = first_kinetics(alpha_m(V(i,l),MODE),beta_m(V(i,l),MODE),m(i,l),hstep);
h(i+1,l) = first_kinetics(alpha_h(V(i,l),MODE),beta_h(V(i,l),MODE),h(i,l),hstep);
n(i+1,l) = first_kinetics(alpha_n(V(i,l),MODE),beta_n(V(i,l),MODE),n(i,l),hstep);
V(i+1,l) = (A(i,l)/B(i,l)) + exp(-B(i,l)*hstep/C(l))*(V(i,l)-(A(i,l)/B(i,l)));
end
end
colorgraph='brgyk';
for l=1:NUM_COMP
plot(t,V(:,l),'linewidth',1.7,'color',colorgraph(l));
cad=sprintf('Compartment %d',l);
title(cad);
hold on;
grid on;
end
http://ccc.inaoep.mx/~jcmoctezuma/docs/filesMATLAB.zip