{load_file("nrngui.hoc")} { ion_register("k", 1) } objref ks, ksvec, ksgate, ksstates, kstransitions, tobj { ksvec = new Vector() ksstates = new List() kstransitions = new List() ks = new KSChan(0) } // Kleak Density Mechanism // k ohmic ion current // ik (mA/cm2) = g_Kleak * (v - ek) { ks.name("Kleak") ks.ion("k") ks.iv_type(0) ks.gmax(0) ks.erev(0) } // g = gmax {objref ks, ksvec, ksgate, ksstates, kstransitions, tobj} { ion_register("na", 1) } objref ks, ksvec, ksgate, ksstates, kstransitions, tobj { ksvec = new Vector() ksstates = new List() kstransitions = new List() ks = new KSChan(0) } // Naleak Density Mechanism // na ohmic ion current // ina (mA/cm2) = g_Naleak * (v - ena) { ks.name("Naleak") ks.ion("na") ks.iv_type(0) ks.gmax(0) ks.erev(0) } // g = gmax {objref ks, ksvec, ksgate, ksstates, kstransitions, tobj} { ion_register("cl", -1) } objref ks, ksvec, ksgate, ksstates, kstransitions, tobj { ksvec = new Vector() ksstates = new List() kstransitions = new List() ks = new KSChan(0) } // Clleak Density Mechanism // cl ohmic ion current // icl (mA/cm2) = g_Clleak * (v - ecl) { ks.name("Clleak") ks.ion("cl") ks.iv_type(0) ks.gmax(0) ks.erev(0) } // g = gmax {objref ks, ksvec, ksgate, ksstates, kstransitions, tobj} objref main main=new HBox(2) main.intercept(1) create soma soma insert Kleak soma insert Naleak soma insert Clleak objref stim soma stim=new IClamp(0.5) dt=0.001 tstop=2 celsius=37 proc init(){ soma.L=10 soma.diam=10 soma.Ra=120 dt=0.001 tstop=2 celcius=37 v=0 stim.del=0 stim.dur=0 stim.amp=0 ki0_k_ion=146 ko0_k_ion=5 nai0_na_ion=21 nao0_na_ion=136 cli0_cl_ion=10 clo0_cl_ion=138 gmax_Kleak=0 gmax_Naleak=0 gmax_Clleak=0 ena=nernst(nai0_na_ion,nao0_na_ion,1) ek=nernst(ki0_k_ion,ko0_k_ion,1) ecl=nernst(cli0_cl_ion,clo0_cl_ion,-1) Amp=stim.amp Dur=stim.dur Del=stim.del Fin=tstop Length=soma.L Diam=soma.diam Ki=ki0_k_ion Ko=ko0_k_ion Nai=nai0_na_ion Nao=nao0_na_ion Cli=cli0_cl_ion Clo=clo0_cl_ion ENa=ena EK=ek ECl=ecl Vmb=v gKleak=gmax_Kleak gNaleak=gmax_Naleak gClleak=gmax_Clleak } init() xpanel("Conditions") xlabel("Temperature (celsius): 37") xlabel("Concentrations ioniques") xvalue("Nai","Nai") xslider(&Nai,0,100,"update()",0) xvalue("Nao","Nao") xslider(&Nao,0,200,"update()",0) xvalue("Ki","Ki") xslider(&Ki,0,200,"update()",0) xvalue("Ko","Ko") xslider(&Ko,0,100,"update()",0) xvalue("Cli","Cli") xslider(&Cli,0,200,"update()",0) xvalue("Clo","Clo") xslider(&Clo,0,200,"update()",0) xpanel() xpanel("Cellule") xlabel("Morphologie de la cellule") xvalue("Longueur","Length") xslider(&Length,0,100,"update()",0) xvalue("Diametre","Diam") xslider(&Diam,0,100,"update()",0) xlabel("Potentiel de membrane initial") xvalue("Vmb (mV)","Vmb") xslider(&Vmb,-100,0,"update()",0) xlabel("Conductances") xvalue("gKleak","gKleak") xslider(&gKleak,0,0.5,"update()",0) xvalue("gNaleak","gNaleak") xslider(&gNaleak,0,0.5,"update()",0) xvalue("gClleak","gClleak") xslider(&gClleak,0,0.5,"update()",0) xpanel() xpanel("Controle") xlabel("Acquisition") xvalue("Duree","Fin") xslider(&Fin,0,10,"update()",0) xlabel("Electrode de stimulation") xvalue("Intensite (nA)","Amp") xslider(&Amp,-5,5,"update()",0) xvalue("Duree (ms)","Dur") xslider(&Dur,0,10,"update()",0) xvalue("Delai (ms)","Del") xslider(&Del,0,10,"update()",0) xlabel("Enregistrement") xbutton("GO","do_it()") xlabel("Init") xbutton("INIT","init()") xpanel() main.intercept(0) main.map() objref main1 main1=new HBox(2) main1.intercept(1) objref gr2 gr2=new Graph() gr2.gif("Schema.gif") objref gr3 gr3=new Graph() gr3.gif("RC.gif") main1.intercept(0) main1.map() objref gr gr=new Graph() gr.size(0,tstop,-100,50) gr.addexpr("soma.v(0.5)") proc update(){ ena=nernst(nai0_na_ion,nao0_na_ion,1) ek=nernst(ki0_k_ion,ko0_k_ion,1) ecl=nernst(cli0_cl_ion,clo0_cl_ion,-1) stim.amp=Amp stim.dur=Dur stim.del=Del tstop=Fin soma.diam=Diam soma.L=Length ki0_k_ion=Ki ko0_k_ion=Ko nai0_na_ion=Nai nao0_na_ion=Nao cli0_cl_ion=Cli clo0_cl_ion=Clo gmax_Kleak=gKleak gmax_Naleak=gNaleak gmax_Clleak=gClleak } proc do_it(){ update() finitialize(Vmb) gr.begin() while(t