Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNICAMP - FEEC - DEB - IA 744 - APLICAÇÕES DE ENGENHARIA AO ESTUDO DE FENÔMENOS BIOLÓGICOS - 1SEM2018 1 O MODELO DE HODGKIN - HUXLEY Ricardo G. Molinari* Abstract—Esse trabalho contempla a atividade didática proposta por Soriano et Al.[1], que demonstra o modelo de geração de potencial(PA) proposto por Hodgkin-Huxley(HH), em 1952, através da simulação computacional. As equações propostas por HH mod- elam o processo dinâmico de abertura e fechamento dos canais iônicos, particurlarmente de sódio e potás- sio, que são dependentes da tensão transmembrana da célula. HH, em seu trabalho original, modelam o axonio gigante de lula. O modelo de Noble(HH modificado) modela as fibras cardíacas de Purnkinjie . Noble modi- ficou o modelo HH de forma que a dinâmica dos canais iônicos representasse a tensão transmenbrana obser- vada no potencial marca-passo das fibras cardíacas de Purkinjie. I. INTRODUÇÃO O Potencial de ação(PA) é uma inversão do poten- cial transmenbrana. PAs transportam rapidamente infor- mações entre as células e são essenciais para a vida animal. Eles podem ser gerados por muitos tipos de células, mas são utilizados mais intensamente pelo sistema nervoso, para comunicação entre neurônios e para transmitir in- formação dos neurônios para outro tecido do organismo. O PA é gerado quando um estimulo ultrapassa a tensão limiar da mebrana. A. O Modelo de Hodgkin - Huxley O modelo HH é baseado na condutância dos canais iônicos e descrito por um sistema de quatro equações diferenciais ordinárias (EDO), não-lineares e acopladas. A Figura 1 ilustra uma sintese do modelo e permite esta- belecer, através da ánalise do circuito elétrico modelado da transmembrana celular, que a corrente total através da membrana é dada por: I = Cm dVm dt + INa + IK + IL (1) onde, • Ix é a corrente iônica transmebrana do íon x; • Cm é a capacitância da transmenbrana; • Vm é a tensão transmenbrana; • IL é a corrente de vazamento; • I é a corrente total que passa pela membrana. A variação de Vm durante o PA depende das correntes ionicas dos íons potassio e sódio, que variam com a permeabilidade transmembrana (dos canais iônicos). As expressões para as correntes iônicas são dadas por: INa = GNam3h3(Vm − VNa) (2) IK = GKn4(Vm − VK) (3) IL = GL(Vm − VL) (4) *RA 186604, e-mail: molinari@gmail.com onde, • m,n e h são partículas dos canais iônicos que regem sua dinâmica de abertura e fechamento; • Vx é o potencial de Nernst do íon x; • Gx é a condutância máxima, quando todos os canais estão abertos, do íon x; • Ix é a corrente iônica do íon x. O sistema de quatro EDOs não lineares e acopladas do modelo HH, que definem o comportamento elétrico transmenbrana e a dinâmica das partículas m,n e h, que regem a dinâmica de abertura e fechamento dos canais iônicos de sódio e potássio, são descritas a seguir: dVm dt = 1 Cm (Ist − INa − IK − IL) (5) dm dt = αm(1−m)− βmm (6) dh dt = αh(1− h)− βhh (7) dn dt = αn(1− n)− βnn (8) onde, • α representa a taxa com que os canais fechados abrem; • β representa a taxa com que os canais abertos fecham. HH obtem as taxas de variação das partículas através de uma série de experimentos com o axônio gigante de Fig. 1. Circuito equivalente à membrana celular no modelo HH. GNa, GK e GL são as condutâncias ao íons Sódio, Potássio e de vaza- mento(não específica). VNa, INa, VK , IK , VL e IL são os potenciais de equilíbrio (mV ) e as correntes (µA/cm2) para os mesmos íons. Cm é a capacitância específica de membrana em µF/cm2. UNICAMP - FEEC - DEB - IA 744 - APLICAÇÕES DE ENGENHARIA AO ESTUDO DE FENÔMENOS BIOLÓGICOS - 1SEM2018 2 lula, com técnicas de Voltage Clamp e variando as con- centrações de sódio e potássio extracelulares: αm = 0.1(25− Vm) e(0.1(25−V )−1) (9) βm = 4.0e−Vm/18 (10) αh = 0.07e−Vm/20 (11) βh = 1 e(0.1(30−Vm)+1) (12) αn = 0.01(10− Vm) e(0.1(10−Vm)−1) (13) βn = 0.125e(−Vm/80) (14) onde, αx e βx são funções de Vm e x é uma determinada partícula. B. O Modelo do Noble O modelo do Noble modifica o modelo HH para rep- resentar o potecial marca passo das fibras cardíacas de Purkinjie. O modelo proposto pode ser observado na figura 2 e destaca-se por apresenter dois componentes distintos para a condutância ao potássio, um rápido e outro lento. A equação a seguir pode ser deduzida da figura 2: IK = (gK1 + gK2)(Vm − EK) (15) As condutâncias gK1 e gK2 são modeladas da seguinte forma [2]: gK1 = 1.2e−(Vm+90)/50 + 0.015e(VM+90)/60 (16) gK2 = 1.2n4 (17) A corrente de sódio no modelo do Noble apresenta um componente permanente(vazamento),além do comporta- mento dependente de tensão, descrito na equação a seguir [2]: INa = (GNam3h+ 0.14)(Vm − ENa) (18) Fig. 2. Circuito equivalente à membrana celular da fibra de Purkinjie. As taxas de abertura e fechamento, α e β, são modi- ficadas para adequar-se ao observado experimentalmente da seguinte forma[2]: αm = −0.1(48 + Vm) e−(48−Vm)/15 − 1 (19) βm = 0.12(V + 8) e((V+8)/5) − 1) (20) αh = 0.17e−(Vm+90)/20 (21) βh = 1 e−0.1(42+Vm) + 1 (22) αn = −0.0001(50 + Vm) e(−0.1(50.0+Vm)) − 1.0 (23) βn = 0.002e−(90+Vm)/80 (24) II. Materiais e Métodos Os programas implementados foram escritos com a linguagem Python 3 e são apresentados no Apêndice. A solução numérica utiliza o método Runge Kutta, através da biblioteca Scipy e da função odeint, com passo de integração variável. Os gráficos foram gerados com auxílio da biblioteca Matplotlib. O primeiro código implementa o modelo HH enquanto que o segundo implementa o modelo Noble. III. Resultados A. Simulação do potencial de ação a partir de um único estímulo supralimiar Simulação de um potencial de ação a partir de um único estimulo supralimiar no instante 25ms com duração de 2ms e amplitude 6µA/cm2: Figura 3. B. Simulação do modelo para diferentes amplitudes de estimulação Simulação de um PA e variações sub-limiares de Vm para valores próximos do limiar (Amplitudes do estimulo de 3.5, 3.9 e 4.0 durante 2ms): Figura 4. C. A Equação de Lapique Obtenção da curva intensidade vs. duração, e cálculo do valor da reobase da cronaxia.Sucessivas simulações foram feitas a fim de determinar a amplitude do estímulo Ist que dispara o PA para uma determinada duração do estímulo. A primeira duração simulada foi de 0.5ms, incrementada de 0.5ms até 5ms: Figura 5. D. Potencial marca-passo cardíaco - Modelo do Noble Modificação do modelo HH para o modelo do Noble. As modificações implementadas seguiram o equacionamento proposto por Noble [2]: Figura 6. UNICAMP - FEEC - DEB - IA 744 - APLICAÇÕES DE ENGENHARIA AO ESTUDO DE FENÔMENOS BIOLÓGICOS - 1SEM2018 3 Fig. 3. Solução do modelo HH. São mostrados do painel superior para o inferior: curso temporal do potencial de membrana, variáveis de ativação e inativação, condutâncias e correntes de Na+ e K+. Fig. 4. Potencial de membrana para diferentes amplitudes de cor- rente. Evidencia-se respostas passivas para Ist = 3.5 e 3.9 µA/cm2, e o PA quando Ist = 4 µA/cm2. As condições iniciais e o tempo de estimulação foram mantidos. IV. APENDICE A. Código Python para o modelo Hodgkin-Huxley import scipy as sp import matplotlib.pyplot as plt Fig. 5. Curva intensidade vs. duração ajustada para a equação de Lapique. Ir é a reobase (1µA/cm2) e Tc é a cronaxia (6.2ms). A reobase é definida como a intensidade do estímulo de duração "infinita" necessária para disparar um PA. A cronaxia é a duração do estímulo com intensidade igual ao dobro da reobase. Fig. 6. Curso temporal dos potenciais marca-passo e das particulas m, h e n para fibras de Purkinje. from scipy.integrate import odeint from scipy.optimize import curve_fit class HodgkinHuxley (): C_m = 1.0 #membrane capacitance , in uF/cm^2 E_Na = 115.0 #Na Nernst reversal potentials , in mV g_Na = 120.0 #Na maximumconductances , in mS/cm^2 E_K = -12.0 #K Nernst reversal potentials , in mV g_K = 36.0 #K maximum conductances , in mS/cm^2 E_L = 10.2 #Leak Nernst reversal potentials , in mV g_L = 0.3 #Leak maximum conductances , in mS/cm^2 t = sp.arange(0.0, 60.0, 0.1) UNICAMP - FEEC - DEB - IA 744 - APLICAÇÕES DE ENGENHARIA AO ESTUDO DE FENÔMENOS BIOLÓGICOS - 1SEM2018 4 #time to integrate over #Channel gating kinetics. # Functions of membrane voltage def alpha_m(self , V): return 0.1*(25 - V)/(sp.exp(0.1*(25.0-V))-1) def beta_m(self , V): return 4.0*sp.exp(-V/18.0) def alpha_h(self , V): return 0.07*sp.exp(-V/20.0) def beta_h(self , V): return 1.0/(sp.exp(0.1*(30.0 - V))+1) def alpha_n(self , V): return 0.01*(10.0 - V)/(sp.exp(0.1*(10-V))-1) def beta_n(self , V): return 0.125*sp.exp(-V/80.0) # Membrane conductance (in mS/cm^2) def G_Na(self ,m,h): # Sodium (Na = element name) return self.g_Na * m **3 * h def G_K(self ,n): # Potassium (K = element name) return self.g_K * n**4 def I_inj(self ,t): #External Current return self.Ist*(t>=25) - \ self.Ist*(t>(25+self.Ist_dur)) @staticmethod def dALLdt(X, t, self): # calculate membrane potential & # activation variables V, m, h, n = X dVdt = (1/self.C_m)*(self.I_inj(t) - \ self.G_Na(m,h)*(V - self.E_Na) - \ self.G_K(n)*(V - self.E_K) - \ self.g_L * (V - self.E_L)) dmdt = self.alpha_m(V)*(1.0-m) - \ self.beta_m(V)*m dhdt = self.alpha_h(V)*(1.0-h) - \ self.beta_h(V)*h dndt = self.alpha_n(V)*(1.0-n) - \ self.beta_n(V)*n return dVdt , dmdt , dhdt , dndt def Main(self ,Ist ,Ist_dur): self.Ist = Ist self.Ist_dur = Ist_dur X = odeint(self.dALLdt , [-5, 0, 0.5, 0.33], self.t, args=(self ,)) V = X[:,0] m = X[:,1] h = X[:,2] n = X[:,3] ina = self.G_Na(m, h)*(V - self.E_Na) ik = self.G_K(n)*(V - self.E_K) il = self.g_L * (V - self.E_L) return self.t,V,m,h,n,ina ,ik, \ self.G_Na(m, h),self.G_K(n) mod = HodgkinHuxley () t,V,m,h,n,ina ,ik,g_Na ,g_K = mod.Main(6,2) plt.figure(1) plt.subplot(4,1,1) plt.plot(t, V, ’k’) plt.ylabel(’$Vm -V_0$ (mV)’) plt.subplot(4,1,2) plt.plot(t, m, ’r’, label=’m’) plt.plot(t, h, ’g’, label=’h’) plt.plot(t, n, ’b’, label=’n’) plt.ylabel(’Gating Value’) plt.legend () plt.subplot(4,1,3) plt.plot(t,g_Na ,’r’,label = ’g_Na’) plt.plot(t,g_K ,’b’,label = ’g_K’) plt.ylabel(’Conductance [$mS/cm^2$]’) plt.legend () plt.subplot(4,1,4) plt.plot(t, ina , ’c’, label=’$I_{Na}$’) plt.plot(t, ik , ’y’, label=’$I_{K}$’) plt.ylabel(’Current [$\\mu{A}/cm^2$]’) plt.xlabel(’Time [ms]’) plt.legend () V1 = mod.Main(4,2)[1] V2 = mod.Main(3.9,2)[1] V3 = mod.Main(3.5,2)[1] plt.figure(2) plt.plot(t, V1 , ’k’, label = "Ist = 4 $\\mu{A}/cm^2$") plt.plot(t, V2 , ’b’, label = "Ist = 3.9 $\\mu{A}/cm^2$") plt.plot(t, V3 , ’r’, label = "Ist = 3.5 $\\mu{A}/cm^2$") plt.ylabel(’$Vm -V_0$ (mV)’) plt.xlabel(’Time [ms]’) plt.legend () Ist_dur = sp.arange(0.5,5.5,0.5) amp_curv = [] dur_curv = [] for dur in Ist_dur: amp = 1.5 while True: amp = amp + 0.1 v = mod.Main(amp ,dur)[1] if max(v) > 60: break amp_curv.append(amp) dur_curv.append(dur) def lapique(t,Ir ,Tc): t = sp.asarray(t) return Ir * (1 + Tc/t) popt ,pcov = curve_fit(lapique ,dur_curv ,amp_curv) plt.figure(3) plt.plot(dur_curv ,amp_curv , ’r’,marker = ’1’, label = ’Simulated values ’) plt.plot(dur_curv , \ lapique(dur_curv , *popt), \ ’b--’, label = \ ’fit: $Ir$=%.3f , $Tc$=%.3f’ % tuple(popt)) font = {’family ’: ’serif ’, ’weight ’: ’normal ’, ’size’: 16 , } plt.text(2.5,7,"$Ir*(1+ \\frac{Tc}{t})$", fontdict=font) plt.xlabel("Ist duration [ms]") plt.ylabel("Ist [$\\mu{A}/cm^2$]") plt.legend () plt.show() UNICAMP - FEEC - DEB - IA 744 - APLICAÇÕES DE ENGENHARIA AO ESTUDO DE FENÔMENOS BIOLÓGICOS - 1SEM2018 5 B. Código Python para o modelo Noble import scipy as sp import matplotlib.pyplot as plt from scipy.integrate import odeint class HodgkinHuxley (): C_m = 1.0 #membrane capacitance , in uF/cm^2 E_Na = 40.0 #Sodium (Na) Nernst reversal potentials , in mV g_Na = 400.0 #Sodium (Na) maximum conductances , in mS/cm^2 E_K = -100.0 # Postassium (K) Nernst reversal potentials E_L = 10.2 #Leak Nernst reversal potentials , in mV g_L = 0.3 #Leak maximum conductances , in mS/cm^2 t = sp.arange(0.0, 2000.0, 0.1) #The time to integrate over #Channel gating kinetics. # Functions of membrane voltage def alpha_m(self , V): return 0.1*(-48 -V)/ \ (sp.exp((-48.0-V)/15)-1) def beta_m(self , V): return 0.12*(V+8)/(sp.exp((V+8)/5)-1) def alpha_h(self , V): return 0.17*sp.exp((-V-90)/20.0) def beta_h(self , V): return 1.0/(sp.exp(0.1*(-42.0 - V))+1) def alpha_n(self , V): return 0.0001*(-50.0 - V)/ \ (sp.exp(0.1*(-50.0-V))-1.0) def beta_n(self , V): return 0.002*sp.exp((-90-V)/80.0) # Membrane conductance (in mS/cm^2) def G_Na(self ,m,h): # Sodium (Na = element name) return self.g_Na * m **3 * h + 0.14 def G_K1(self ,V,n): # Potassium In (K = element name) return 1.2* sp.exp((-V-90)/50) + \ 0.015*sp.exp((V+90)/60) def G_K2(self ,n): # Potassium Out (K = element name) return 1.2 * n**4 @staticmethod def dALLdt(X, t, self): # calculate membrane potential # & activation variables V, m, h, n = X dVdt = (1/self.C_m)*(- \ self.G_Na(m,h)*(V - self.E_Na) - \ (self.G_K1(V,n) + \ self.G_K2(n))*(V - self.E_K)) dmdt = self.alpha_m(V)*(1.0-m) - \ self.beta_m(V)*m dhdt = self.alpha_h(V)*(1.0-h) - \ self.beta_h(V)*h dndt = self.alpha_n(V)*(1.0-n) - \ self.beta_n(V)*n return dVdt , dmdt , dhdt , dndt def Main(self): X = odeint(self.dALLdt , \ [-70.64 , 0.07, 0.6, 0.32], \ self.t, args=(self ,)) V = X[:,0] m = X[:,1] h = X[:,2] n = X[:,3] ina = self.G_Na(m, h)*(V - self.E_Na) ik = (self.G_K1(V,n)+ self.G_K2(n))* \ (V - self.E_K) il = self.g_L * (V - self.E_L) return self.t,V,m,h,n,ina ,ik, \ self.G_Na(m, h),self.G_K1(V,n),self.G_K2(n) mod = HodgkinHuxley () t,V,m,h,n = mod.Main()[0:5] plt.figure(1) plt.subplot(2,1,1) plt.plot(t, V, ’k’) plt.ylabel(’$Vm$ (mV)’) plt.subplot(2,1,2) plt.plot(t, m, ’r’, label=’m’) plt.plot(t, h, ’g’, label=’h’) plt.plot(t, n, ’b’, label=’n’) plt.ylabel(’Gating Value’) plt.xlabel("Tempo [ms]") plt.legend () plt.show() References [1] D. Soriano, R. Ricardo, J. Bassani. Resolvendo o modelo de Hodgkin-Huxley: uma proposta didática. XX Congresso Brasileiro de Engenharia Biomédica, Rio de Janeiro, Brasil, 2006. [2] D. Noble. A Modification of the Hodgkin-Huxley equations appli- cable to purkinje fibre action and pace-maker potentials. Journal of Physiology, pp. 317-352, Great Britain, 1961.
Compartilhar