Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Umyeliated Erve Modellig Usig Hodgki-Huxley Model: Under Guidance of

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

UMYELIATED ERVE MODELLIG USIG

HODGKI-HUXLEY MODEL

Under Guidance Of

ASHUTOSH MISHRA
Assistant Professor,
IIT,Delhi

By:-
PRABHAT SHARMA
2009EE3428
&
ARU SIGH
2009EE3530

1
HH Model Simulation

Hodgkin and Huxley deals with three different types of ion current, viz., sodium,
potassium, and a leak current. Specific voltage-dependent ion channels, one for sodium
and another one for potassium, control the flow of those ions through the cell membrane.

Definition of the model


The Hodgkin-Huxley model can be described with the help of Fig1. The semipermeable
cell membrane separates the interior of the cell from the extracellular liquid and acts as a
capacitor. If an input current I(t) is injected into the cell, it may add further charge on the
capacitor, or leak through the channels in the cell membrane. Because of active ion
transport through the cell membrane, the ion concentration inside the cell is different
from that in the extracellular liquid. The Nernst potential generated by the difference in
ion concentration is represented by a battery.

Fig.1 The Hodgkin-Huxley model

Above considerations can be expressed into mathematical equations. The conservation of


electric charge on a piece of membrane implies that the applied current I(t) may be split
in a capacitive current IC which charges the capacitor C and further components Ik which
pass through the ion channels. Thus

I(t) = IC(t) + ∑
k
Ik(t)

where the sum runs over all ion channels. From the definition of a capacity C = Q/u
where Q is a charge and u the voltage across the capacitor, we find the charging current
IC = C du/dt. Hence from

dv
C
dt
=- ∑
k
Ik(t) + I(t) .

2
In biological terms, u is the voltage across the membrane and ∑k
Ik is the sum of the

ionic currents which pass through the cell membrane.

All channels is characterized


aracterized by their conductance. The leakage channel is described by a
voltage-independent
independent conductance gL = 1/R. If all channels are open, they transmit
currents with
th a maximum conductance gNa or gK, respectively. The probability that a
channel is open is described by additional variables m, n, and h.. The combined action of
m and h controls the Na+ channels. The K+ gates are controlled by n. The he three current
components expressed mathematically in following ways

∑ Ik = gNa m3h (u - ENa) + gK n4 (u - EK) + gL (u - EL).


k

The parameters ENa, EK, and EL are the empirical reversal potentials parameters.The
parameters
three variables m, n, and h are called gating variables. They evolve according to the
differential equations
.
m = α m (u) (1 - m) - β m (u) m
.
n = α n (u) (1 - n) - β n (u) n
.
h = α h (u) (1 - h) - β h (u) h

Where = dm/dt,, and so on.

Simulation :- For simulating the unmylinenated axon model we have plotted temporal
shift of membrane potential with the variation of diameter and calculated velocity of
propagation of membrane potential. In this model, we have used Euler’s Integration
method. Simulation results are showin
showing in the following figs.:

3
Fig.2 Temporal Shifting of Action Potential

Fig.3 Velocity of propagation for Diameter 0.005cm

4
Fig.4 3D view of Temporal Shifting of Action Potential

Fig.5 Temporal Shifting of Action Potential

5
Fig.6 Velocity of Propagation for Diameter=0.1651

Fig.7 3D view of Temporal Shifting of Action Potential


Conclusion:- From simulation we observed that as diameter of axon increase then the
velocity of propagation increases in proportionality. Ideally it increased in square root of
diameter. Here , we have plotted temporal shift in action potential for external excitation
current for diameter 0.005cm and 0.0238 cm respectively.

References:-
1) Chapter -6,The The Hodgkin-Huxley model of Action Potentional Generation ,Christof Koch,
Aug-20-97.
2) 5eural Membrane Model Responses To Sinusoidal Electrical Stimuli,T.T. Phanl, M.W. Whitel,
C.C. Finley2, L.A. Cartee2,1Department of Electrical and Computer Engineering, 5orth

6
Carolina StateUniversity, Box 7911, Raleigh, 5C 2769525euroscience Program Office, Research
Triangle Institute, P.O. Box 12194,Research Triangle Park, 5C 27709.
3) The Hodgkin-Huxley 5erve Axon Model,Gary D. Knott, Ph.D.,Civilized Software, Inc.,12109
Heritage Park Circle,Silver Spring MD 20906 USA,Tel.: (301)-962-3711,email:
csi@civilized.com,URL: www.civilized.com
4) A.F. HU X L E Y,The quantitative analysis of excitation and conduction in nerve,5obel Lecture,
December 11, 1963.

Matlab Code Hierarchy:-

1) User_inputs.m
function user_inputs

global DT TMAX NUM_OF_NODES I_INJECT DIAMETER NODAL_DISTANCE

%%%%%%%%%%% Setting up simulation parameter %%%%%%%%%%%%%%%%

DT = 0.0025; % Smallest time resolution in msec


TMAX = 50; % Total time of simulation in msec

NODAL_DISTANCE = 0.005; % Distance between two node of axon in cm


NUM_OF_NODES = 20; %Total number of node taken in simulation

%DIAMETER = 0.005;%0.00004;%0.005;%0.005;%0.0238; % Diameter


of axon in cm

DIAMETER = 0.0238;

%current applied to the left node

I_INJECT = 30; %current density strength in uAmp/cm^2

2) alpha_m.m
function alpha = alpha_m(v)

% Initialise
alpha = zeros(size(v));

%Handle non-singular case


index = find(v ~= 25.0);

%returns 1 if index is an empty array and 0 otherwise


if(isempty(index) ~= 1)
alpha(index) = 0.1 * ( 25.0 - v(index))./ (exp((25.0 -
v(index))/ 10.0) - 1.0);
end

%Handle singularity case


index = find(v == 25.0);
if(isempty(index) ~= 1)
alpha(index) = 1.0 / exp( (25.0 - v(index)) / 10.0);
end

7
3) alpha_h.m
function alpha = alpha_h(v)
alpha = zeros(size(v));
alpha = 0.07 * exp(-v / 20.0);

4) alpha_n.m
function alpha = alpha_n(v)

alpha = zeros(size(v));

%Handle non-singular case


index = find(v ~= 10.0);

%returns 1 if index is an empty array and 0 otherwise


if(isempty(index) ~= 1)
alpha(index) = 0.01*(10.0 - v(index)) ./ (exp((10.0 -
v(index))/10.0) - 1.0);
end
%Handle singularity case
index = find(v == 10.0);
if(isempty(index) ~= 1)
alpha(index) = 0.1/exp((10.0 - v(index))/10.0);
end

5) beta_m.m
function beta = beta_m(v)
beta = zeros(size(v));
beta = 4.0 * exp(-v /18.0);
6) beta_h.m
function beta = beta_h(v)
beta = zeros(size(v));
beta = 1.0 ./ (exp((-v + 30.0) / 10.0) + 1.0);
7) beta_n.m
function beta = beta_n(v)
beta = zeros(size(v));
beta = 0.125 * exp(-v / 80.0);

8) main_file.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Unmylinated nerve modelling
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear
clf
clc
close all
orient landscape

%%%%%%%%%%% Setting up simulation parameter %%%%%%%%%%%%%%%%

8
global DT TMAX NUM_OF_NODES I_INJECT DIAMETER NODAL_DISTANCE;

user_inputs;

%%%%%%%%%%%%%%%%%%%% Initialise variables %%%%%%%%%%%%%%%%%%%%%%%%

VREST = -60.0; %mV

% Voltage gated channels represented by non-linear conductance


GNA = 120.0; % mS/cm^2
GK = 36.0; % mS/cm^2
GLEAK = 0.3; % mS/cm^2

% Electrochemical voltage driving the flow of ion


% represented by battery
ENA = 115.0 + VREST; % mV
EK = -12.0 + VREST; % mV
ELEAK = 10.598 + VREST; % mV

% Lipid layer represented as capacitance


C_M = 1.0; % uF/cm^2

%set the axon properties


RESISTIVITY = 34.5; % Resistivity of axon in ohm-cm

% Total length of Axon = Distance between two node of axon * number


of node

% Calculate Resistance of axon from axon Resistivity,


% Diameter and Distance between two node
% This will be value of axon resistance between two node
% R = RESISTIVITY*length/area
resistance_axon = (RESISTIVITY * NODAL_DISTANCE) /(pi *
(DIAMETER^2)/4); % value will be in ohm

% Calculate conductance of Axon


g_axon = 1000 / resistance_axon ; %invert and convert to milli
Simens

%to plot 3-D plot of Action potential


%x = 0 : NODAL_DISTANCE : [NUM_OF_NODES-1] * NODAL_DISTANCE;

t = 0 : DT : TMAX; % Number of iteration = Total simulation time /


Time resolution

time_steps = length(t) ;

9
%%%%%%%%%%%%%%%% Iteration Loop %%%%%%%%%%%%%%%%%%%%%%

v = ones(time_steps, NUM_OF_NODES) * VREST;


m = ones(time_steps, NUM_OF_NODES).*alpha_m(v - VREST)./(alpha_m(v -
VREST) + beta_m(v - VREST));
n = ones(time_steps, NUM_OF_NODES).*alpha_n(v - VREST)./(alpha_n(v -
VREST) + beta_n(v - VREST));
h = ones(time_steps, NUM_OF_NODES).*alpha_h(v - VREST)./(alpha_h(v -
VREST) + beta_h(v - VREST));

disp('Going to the loop');

for i = 2 : 1 : length(t-1)
%find total current density value
%except 1st and last node
I = [I_INJECT * (t(i) > 1 & t(i) <= 2), zeros(1, NUM_OF_NODES-
1)];

%exponentially decaying current


%for j = 0 : 1 : NUM_OF_NODES-1
% I(1, j+1) = I_INJECT * exp(-0.4 * j);
end

% Access matrix row wise. Get value for all node at particular
time
% instance during simulation. get values from last time step
M = m(i-1,:);
N = n(i-1,:);
H = h(i-1,:);
V = v(i-1,:);
g_Na = GNA * M.^3 .* H ;
g_K = GK * N.^4;

% All alpha are function of V-VREST


mdot = alpha_m(V-VREST).*(1-M) - beta_m(V-VREST).*M;
ndot = alpha_n(V-VREST).*(1-N) - beta_n(V-VREST).*N;
hdot = alpha_h(V-VREST).*(1-H) - beta_h(V-VREST).*H;

vdot = (I - g_Na.*(V-ENA) - g_K.*(V-EK) - GLEAK.*(V-ELEAK)) /


C_M;

%current applied to the first node


% Applying KCL at each node except 1st and last node
for j = 2 : 1 : (NUM_OF_NODES - 1)
vdot(j) = vdot(j) + g_axon * ((V(j-1) - V(j)) + (V(j+1) -
V(j))) / C_M ;
end

% Applying KCL at 1st and last node


vdot(1) = vdot(1) + (g_axon * (V(1) - V(2))) / C_M;
vdot(NUM_OF_NODES) = vdot(NUM_OF_NODES) + (g_axon *
(V(NUM_OF_NODES-1) - V(NUM_OF_NODES))) / C_M;

% solve 1st order differential equation using Euler method


% The Euler method is explicit

10
m(i,:) = m(i-1,:) + mdot*DT;
n(i,:) = n(i-1,:) + ndot*DT;
h(i,:) = h(i-1,:) + hdot*DT;
v(i,:) = v(i-1,:) + vdot*DT;

%disp('Doing iteration please wait ....');

%end

%%%%%%%%%% Temporal shifting of Action potential with time


%%%%%%%%%%%%

figure(1);clf;
%color mapping for plot
cmap = jet(NUM_OF_NODES);

for j = 1 : 1: NUM_OF_NODES
plot(t, v(:,j),'color',cmap(j,:));
hold on
xlabel('t (msec)'); ylabel('v (mV)');
set(gca,'ylim',[-100 100]);
end
title('Temporal Shifting of Action Potential with time');

%%%%%%%%%%%%%%% Velocity of propagation plot %%%%%%%%%%%%%%%%%%%%%%

%plot velocity of propagation of action potential


%find peak value of action potential and the time at which this peak
has
%occured
for j = 1 : 1 : NUM_OF_NODES
[voltage_peak(j),index(j)] = max(v(:,j));
end

figure(2);clf;
xaxis_distance = [1 : NUM_OF_NODES] * NODAL_DISTANCE;
yaxis_time = t(index);
plot(xaxis_distance, yaxis_time,'*')
hold on
xlabel('Axon Distance : x (cm)'); ylabel('t (msec)');

%Find velocity in metre per second


%distance = (xaxis_distance(end) - xaxis_distance(1));
%time = (yaxis_time(end) - yaxis_time(1));

distance = (xaxis_distance(15) - xaxis_distance(1));


time = (yaxis_time(15) - yaxis_time(1));

11
title(['Velocity = ',num2str(10 * distance / time,'%4.4f'),'
meters/sec']);

%curve fitting of data points to obtain the plot


p = polyfit(xaxis_distance, yaxis_time, 1);
plot(xaxis_distance, polyval(p, xaxis_distance),'r');

disp('HH modelling done');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

12

You might also like