//genesis
/*************************** MS Model, Version 5.0 *********************
**************************** SKchannelCaDep.g *********************
Tom Sheehan tsheeha2@gmu.edu thsheeha@vt.edu 703-538-8361
******************************************************************************
******************************************************************************/
/*************************** SKchannelCaDep.g *************************************
* In the original program written by Johanes Hjorth a MatLab routines in
* striatum/mspn/table/CaDepCurrents/makeSKCaDepTables.m opened two text (data)
* files {SKgate.txt & Skinfo.txt and used those to create a set of of text (data)
* files in striatum/mspn/channels/table/CaDepCurrents"
* The product of this sequence was then opened by this genesis routine to populate
* a set of tabchannels.
*
* In the rework by Kai_Du the MatLab files are removed but their product (the data
* files) are retained.
*
* This revision moves the MatLab calculations to the .g file that is creating
* the tabchannel and removes the data files.
* The comments below are from Hjorth
// This is a simplified implementation of the SK channel without voltage
// dependence. Reference: MaylieBondHersonLeeAdelman2004
// Fast component has tau=4 ms, slow tau = 70 ms (rough ranges)
* End Hjorth comments
*************** Tom Sheehan 2/8/09 703-538-8361********************************/
function make_SK_channel
int i = 5
int nStep = 1000
float SKact = 0.0
float CaMax = 0.002
float theta = 0.0
float theta_pow = 0.0
float CaMax = 0.002
int nStep = 1000
float Kd = 0.57e-003
float delta = 0.0001
int y = 1
float x = 0.0
str chanpath = "SK_channel"
pushe /library
if (({exists {chanpath}}))
return
end
create tabchannel {chanpath}
setfield ^ Ek {-90e-3} \
Gbar 0.145e4 \
Ik 0 \
Gk 0 \
Xpower 0 \
Ypower 0 \
Zpower 1
call {chanpath} TABCREATE Z {nStep-1} 0 {CaMax} // Creates nCaSteps entries
while(i > 0)
i = 0
end
for (i = 0; i < {nStep}; i = i + 1)
//let x = Ca; set the value for x
if(i < 26)
x = 0.0
else
if(y < 51)
x = delta
y = y + 1
else
y = 1
delta = delta + 0.0001
end
end
theta = {x/Kd}
theta_pow = { pow {theta} 5.4}
SKact = theta_pow/{1 + theta_pow}
setfield {chanpath} Z_B->table[{i}] {SKact}
setfield {chanpath} Z_A->table[{i}] {4e-3} // Fast component, tau=4ms
end
tweaktau {chanpath} Z
pope
end
|