function make_AMPA_channel_GHKCa(chanPath) str chanPath // Values from Wolfs model, original data Gotz et al 1997 (from NA), // Chapman et al 2003 //float tau1 = 1.1e-3 //float tau2 = 5.75e-3 // Ding, Peterson, Surmeier 2008 if ({TEMPERATURE} == 35) float tau1 = 1.9e-3 float tau2 = 4.8e-3 else float tau1 = 1.9e-3*2 float tau2 = 4.8e-3*2 end float gmax = 80e-12 // Calculated from Ding et al 2008, Wolf Old: 593e-12 float Ek = 0.0 create synchan {chanPath} addfield {chanPath} gmax_satur setfield {chanPath} tau1 {tau1} tau2 {tau2} gmax {gmax} Gk 0 Ek {Ek} z {setSynBoundary} // NOTE!!! I have modified the source code // z = 1 , single synapse model // Modification to account for AMPA Ca's reversal potential echo "Using separate Erev (from GHK) for Ca-part of AMPA current" create ghk {chanPath}/GHK // Using lower Ca conc, when replicating experiment: // BurnashevZhouNeherSakmann1995.pdf (Fig 9A) // Fraction of AMPA current in range 0.58 - 5.8 % setfield {chanPath}/GHK Cout 2 // Carter & Sabatini 2004 uses 2mM, wolf 5mM // Kerr & Plenz 2004 uses 1.6mM setfield {chanPath}/GHK valency 2.0 setfield {chanPath}/GHK T {temperature} end function addAMPAchannelGHKCa(compPath, chanType,chanName,caBuffer,gbar) // chanType: proto type in the /library // chanName: new Name str compPath, chanName, caBuffer,chanType float gbar //str caBuffer = "CaTbuf" // Use the following info to tune the fraction of Ca-current // Carter and Sabatini 2004 (p 488) // Ca_AMPA/Ca_NMDA = 2.4 +/- 0.6 (at 10 ms) for -80mV // Ca_AMPA/Ca_NMDA = 0.4 +/- 0.2 (at 200ms) for -80mV // Ca_AMPA/Ca_NMDA = 0.3 +/- 0.1 (at 10 ms) for -60mV // Ca_AMPA/Ca_NMDA = 0.02 +/- 0.03 (at 200ms) for -60mV // // Also: // BurnashevZhouNeherSakmann1995.pdf (Fig 9A) // Fraction of AMPA current in range 0.58 - 5.8 % // float fracCaAMPA = 0.016 //0.0035 //0.005 float fracCaAMPA = 0.032 // suggested by Johannes :-) copy /library/MSsynaptic/{chanType} {compPath}/{chanName} addmsg {compPath} {compPath}/{chanName} VOLTAGE Vm addmsg {compPath}/{chanName} {compPath} CHANNEL Gk Ek // Set the new conductance float len = {getfield {compPath} len} float dia = {getfield {compPath} dia} float pi = 3.141592653589793 float surf = {len*dia*pi} setfield {compPath}/{chanName} gmax {gbar*(1-fracCaAMPA)} // GHK object needs conductance times surface area in Gk message create table {compPath}/{chanName}/surfMultiplication // Set up the table with one element, that contains surface area / 9 call {compPath}/{chanName}/surfMultiplication TABCREATE 1 1 1 // float magicFactorY = 3.78e-8 //47 float magicFactorY = 1.2e-8 // Fig 4-C,Cater and Sabatini, 2004. [Ca]_ampa = [Ca]_nmda at Vm = -80 mV // GHK wants permeability scaled by surface area setfield {compPath}/{chanName}/surfMultiplication \ table->table[0] {fracCaAMPA/(1-fracCaAMPA)*magicFactorY} \ step_mode TAB_IO // We tuned it to soma-sized compartments, but made an error... // // // GHK wants permeability scaled by surface area // setfield {compPath}/{chanName}/surfMultiplication \ // table->table[0] {surf*fracCaAMPA/(1-fracCaAMPA)*magicFactorY} \ // step_mode TAB_IO addmsg {compPath}/{chanName} \ {compPath}/{chanName}/surfMultiplication PRD Gk addmsg {compPath}/{chanName}/surfMultiplication \ {compPath}/{chanName}/GHK PERMEABILITY output // addmsg {compPath}/{caBuffer} {compPath}/{chanName}/GHK CIN C addmsg {compPath} {compPath}/{chanName}/GHK VOLTAGE Vm // addmsg {compPath}/{chanName}/GHK {compPath}/{caBuffer} FINFLUX Ik 1 addmsg {compPath}/{chanName}/GHK {compPath} CHANNEL Gk Ek if ({isa dif_shell {compPath}/{caBuffer}} ) // dif_shell //echo spine calcium model is dif_shell addmsg {compPath}/{chanName}/GHK {compPath}/{caBuffer} FINFLUX Ik 1 addmsg {compPath}/{caBuffer} {compPath}/{chanName}/GHK CIN C elif ({isa Ca_concen {compPath}/{caBuffer}}) // Ca_conc //echo spine calcium model is Ca_conc addmsg {compPath}/{chanName}/GHK {compPath}/{caBuffer} fI_Ca Ik 1 addmsg {compPath}/{caBuffer} {compPath}/{chanName}/GHK CIN Ca end // If we decide to use hsolver then we need to add fix code here // see nmda_channel_ghkCa.g for example. end