Transforming XML file: NeuroMLFiles/Examples/ChannelML/CaHVA_Chan.xml using XSL file: NeuroMLFiles/Schemata/v1.8.0/Level2/ChannelML_v1.8.0_GENESIStab.xsl
View original file before transform
|
Converting the file: CaHVA_Chan.xml// This is a GENESIS script file generated from a ChannelML v1.8.0 file// The ChannelML file is mapped onto a tabchannel object // Units of ChannelML file: SI Units, units of GENESIS file generated: SI Units /* A channel from Maex, R and De Schutter, E. Synchronization of Golgi and Granule Cell Firing in a Detailed Network Model of the Cerebellar Granule Cell Layer */ function make_Gran_CaHVA_98 /* A High Voltage Activated Ca2+ channel Reference: Maex, R and De Schutter, E. Synchronization of Golgi and Granule Cell Firing in a Detailed Network Model of the cerebellar Granule Cell Layer. J Neurophysiol, Nov 1998; 80: 2521 - 2537 Pubmed: http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=9819260&dopt=Abstract */ str chanpath = "/library/Gran_CaHVA_98" if ({exists {chanpath}}) return end create tabchannel {chanpath} setfield {chanpath} \ Ek 0.080 \ Ik 0 \ Xpower 2 \ Ypower 1 setfield {chanpath} \ Gbar 9.084216 \ Gk 0 // There is a Q10 factor which will alter the tau of the gates float temp_adj_m = {pow 3 {(celsius - 17.350264793)/10}} float temp_adj_h = {pow 3 {(celsius - 17.350264793)/10}} float tab_divs = 400 float v_min = -0.1 float v_max = 0.1 float v, dv, i // Creating table for gate m, using name X for it here float dv = ({v_max} - {v_min})/{tab_divs} call {chanpath} TABCREATE X {tab_divs} {v_min} {v_max} v = {v_min} // There is a voltage offset of 0.010. This will shift the dependency of the rate equations v = v - 0.010 for (i = 0; i <= ({tab_divs}); i = i + 1) // Looking at rate: alpha float alpha float A, B, Vhalf // ChannelML form of equation: alpha which is of form sigmoid, with params: // A = 1600, B = -0.01388888889, Vhalf = 0.005, in units: SI Units A = 1600 B = -0.01388888889 Vhalf = 0.005 alpha = A / ( {exp {(v - Vhalf) / B}} + 1) // Looking at rate: beta float beta float A, B, Vhalf // ChannelML form of equation: beta which is of form exp_linear, with params: // A = 100, B = -0.005, Vhalf = -0.0089, in units: SI Units A = 100 B = -0.005 Vhalf = -0.0089 if ( {abs {(v - Vhalf)/ B}} < 1e-6) beta = A * (1 + (v - Vhalf)/B/2) else beta = A * ((v - Vhalf) / B) /(1 - {exp {-1 * (v - Vhalf)/B}}) end // Using the alpha and beta expressions to populate the tables float tau = 1/(temp_adj_m * (alpha + beta)) setfield {chanpath} X_A->table[{i}] {temp_adj_m * alpha} setfield {chanpath} X_B->table[{i}] {temp_adj_m * (alpha + beta)} v = v + dv end // end of for (i = 0; i <= ({tab_divs}); i = i + 1) setfield {chanpath} X_A->calc_mode 1 X_B->calc_mode 1 // Creating table for gate h, using name Y for it here float dv = ({v_max} - {v_min})/{tab_divs} call {chanpath} TABCREATE Y {tab_divs} {v_min} {v_max} v = {v_min} // There is a voltage offset of 0.010. This will shift the dependency of the rate equations v = v - 0.010 for (i = 0; i <= ({tab_divs}); i = i + 1) // Looking at rate: alpha float alpha // Found a generic form of rate equation for alpha, using expression: v < -0.060 ? 5.0 : 5 * (exp (-50 * (v - (-0.060)))) // Will translate this for GENESIS compatibility... if (v < -0.060 ) alpha = 5.0 else alpha = 5 * {exp {-50 * {v - {-0.060}}}} end // Looking at rate: beta float beta // Found a generic form of rate equation for beta, using expression: v < -0.060 ? 0 : 5 - (5 * (exp (-50 * (v - (-0.060))))) // Will translate this for GENESIS compatibility... if (v < -0.060 ) beta = 0 else beta = 5 - {5 * {exp {-50 * {v - {-0.060}}}}} end // Using the alpha and beta expressions to populate the tables float tau = 1/(temp_adj_h * (alpha + beta)) setfield {chanpath} Y_A->table[{i}] {temp_adj_h * alpha} setfield {chanpath} Y_B->table[{i}] {temp_adj_h * (alpha + beta)} v = v + dv end // end of for (i = 0; i <= ({tab_divs}); i = i + 1) setfield {chanpath} Y_A->calc_mode 1 Y_B->calc_mode 1 end |
Time to transform file: 0.077 secs