//genesis
// CaT_channel.g
/*************************** MS Model, Version 7.6 *********************
**************************** CaT_channel.g *********************
Avrama Blackwell kblackw1@gmu.edu
Rebekah Evans rcolema2@gmu.edu
Tom Sheehan tsheeha2@gmu.edu
******************************************************************************
*****************************************************************************/
function create_CaT
str chanName = "CaT_channel"
str compPath = "/library"
int c = 0
float increment = 0.00005
float x = -0.1
int xdivs = 3000
float xmin = -0.1
float xmax = 0.05
float increment ={{xmax}-{xmin}}/{xdivs}
echo "CaT increment:" {increment} "V"
float mPower = 1.0
float hPower = 1.0
float mInfCaT = 0.0
float mvHalfCaT = -51.73e-3;
float mkCaT = -6.53e-3;
float hvHalfCaT = -80e-3;
float hkCaT = 6.7e-3;
float hInfCaT = 0.0
float mTauCaT = 0.0
float mInfCaT = 0.0
float hTauCaT = 0.0
float hInfCaT = 0.0
float surf = 0.0
float gMax = 4.0e-009
float theta = 0.0
float theta_exp = 0.0
pushe {compPath}
create tabchannel {chanName}
setfield {chanName} Xpower {mPower} Ypower {hPower}
call {chanName} TABCREATE X {xdivs} {xmin} {xmax}
call {chanName} TABCREATE Y {xdivs} {xmin} {xmax}
for(c = 0; c < {xdivs} + 1; c = c + 1)
/************************ Begin CaT_mTau *********************/
// qFactCaT = 3;
// nfCatTauM = load([neuronPath 'taum_cat.txt']);
// genCatTauM = nfCatTauM * 1e-3 / qFactCaT;
// genCatV = nfCatV * 1e-3;
// mTauCaT = interp1(genCatV, genCatTauM, vMemb, 'pchip');
// mTauCaT(find(vMemb < min(genCatV))) =
// genCatTauM(find(genCatV==min(genCatV)));
// mTauCaT(find(vMemb > max(genCatV))) =
// genCatTauM(find(genCatV==max(genCatV)));
if(x < -0.06)
mTauCaT = 0.00673333
else // x >= -0.06
if(x <= -0.05) // -0.06 <= x <= -0.05
mTauCaT = -0.3833*{x} -0.016265
else // x > -0.05
if(x <= -0.04) // -0.05 < x <= -0.04
mTauCaT = -0.103*{x} -0.00225
else // x > -0.04
if(x <= -0.02) // -0.04 < x <= -0.02
mTauCaT = -0.03855*{x} + 0.000329
else // x > -0.02
mTauCaT = 0.0011
end
end
end
end
setfield {chanName} X_A->table[{c}] {mTauCaT}
/************************ End CaT_mTau ***********************/
/************************ Begin CaT_mInf *********************/
// From MatLab in Johanes/striatum/mspn/vectMakers/makeTables.m
// mInfCaT = 1./(1 + exp((vMemb - mvHalfCaT)/mkCaT));
theta = {{x} - {mvHalfCaT}}/{mkCaT}
theta_exp = {exp {theta}} + 1.0
mInfCaT = 1.0/{theta_exp}
setfield {chanName} X_B->table[{c}] {mInfCaT}
/************************ End CaT_mInf ***********************/
/************************ Begin CaT_hTau *********************/
// qFactCaT = 3;
// nfCatTauH = load([neuronPath 'tauh_cat.txt']);
// nfCatV = load([neuronPath 'vtau_cat.txt']);
// genCatTauH = nfCatTauH * 1e-3 / qFactCaT;
// genCatV = nfCatV * 1e-3;
// hTauCaT = interp1(genCatV, genCatTauH, vMemb, 'pchip');
// hTauCaT(find(vMemb < min(genCatV))) =
// genCatTauH(find(genCatV==min(genCatV)));
// hTauCaT(find(vMemb > max(genCatV))) =
// genCatTauH(find(genCatV==max(genCatV)));
if(x < -0.065)
hTauCaT = 0.1273333
else // x >= -0.065
if(x <= -0.06) // -0.065 <= x <= -0.06
hTauCaT = -11.55066*{x} -0.62345996
else // x > -0.06
if(x <= -0.05) // -0.06 < x <= -0.05
hTauCaT = -2.65278*{x} -0.0895868
else // x > -0.05
if(x <= -0.04) // -0.05 < x <= -0.04
hTauCaT = -0.73847*{x} + 0.0061287
else // x > -0.04
if(x <= -0.01) // -0.04 < x <= -0.01
hTauCaT = -0.0332833*{x} + 0.03699
else // x > -0.01
hTauCaT = 0.0366666
end
end
end
end
end
setfield {chanName} Y_A->table[{c}] {hTauCaT}
/************************ End CaT_hTau ***********************/
/************************ Begin CaT_hInf *********************/
// hInfCaT = 1./(1 + exp((vMemb - hvHalfCaT)/hkCaT));
theta = {{x} - {hvHalfCaT}}/{hkCaT}
theta_exp = {exp {theta}} + 1.0
hInfCaT = 1.0/{theta_exp}
setfield {chanName} Y_B->table[{c}] {hInfCaT}
/************************ End CaT_hInf ***********************/
x = x + increment
end
tweaktau {chanName} X
tweaktau {chanName} Y
create ghk {chanName}GHK
setfield {chanName}GHK Cout 2 // Carter & Sabatini 2004 uses 2mM,
setfield {chanName}GHK valency 2.0
setfield {chanName}GHK T {TEMPERATURE}
setfield {chanName} Gbar {gMax*surf}
addmsg {chanName} {chanName}GHK PERMEABILITY Gk
end
|