Transforming XML file: NeuroMLFiles/Examples/ChannelML/KChan_KineticScheme.xml using XSL file: NeuroMLFiles/Schemata/v1.7.3/Level2/ChannelML_v1.7.3_GENESIStab.xsl
View original file before transform
|
Converting the file: KChan_KineticScheme.xml// This is a GENESIS script file generated from a ChannelML v1.7.3 file// The ChannelML file is mapped onto a tabchannel object // Units of ChannelML file: Physiological Units, units of GENESIS file generated: SI Units /* Example of 5 state kinetic scheme K conductance specified in ChannelML. */ function make_KChannelKS /* K conductance with 5 kinetic states. NOTE: currently a mapping is only provided to the NEURON Channel Builder format and PSICS */ str chanpath = "/library/KChannelKS" if ({exists {chanpath}}) return end create tabchannel {chanpath} setfield {chanpath} \ Ek -0.077 \ Ik 0 \ Xpower 1 setfield {chanpath} \ Gbar 360 \ Gk 0 // No Q10 temperature adjustment found float temp_adj_n = 1 float tab_divs = 400 float v_min = -0.1 float v_max = 0.1 float v, dv, i // Creating table for gate n, 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} for (i = 0; i <= ({tab_divs}); i = i + 1) // Looking at rate: alpha_n0_n1 float alpha_n0_n1 float A, B, Vhalf // ChannelML form of equation: alpha_n0_n1 which is of form exp_linear, with params: // A = 0.4, B = 10, Vhalf = -55, in units: Physiological Units A = 0.4 // Warning: unrecognised rate variable! Don't know how to convert units! B = 0.01 Vhalf = -0.055 if ( {abs {(v - Vhalf)/ B}} < 1e-6) alpha_n0_n1 = A * (1 + (v - Vhalf)/B/2) else alpha_n0_n1 = A * ((v - Vhalf) / B) /(1 - {exp {-1 * (v - Vhalf)/B}}) end // Looking at rate: beta_n0_n1 float beta_n0_n1 float A, B, Vhalf // ChannelML form of equation: beta_n0_n1 which is of form exponential, with params: // A = 0.125, B = -80, Vhalf = -65, in units: Physiological Units A = 0.125 // Warning: unrecognised rate variable! Don't know how to convert units! B = -0.08 Vhalf = -0.065 beta_n0_n1 = A * {exp {(v - Vhalf) / B}} // Looking at rate: alpha_n1_n2 float alpha_n1_n2 float A, B, Vhalf // ChannelML form of equation: alpha_n1_n2 which is of form exp_linear, with params: // A = 0.3, B = 10, Vhalf = -55, in units: Physiological Units A = 0.3 // Warning: unrecognised rate variable! Don't know how to convert units! B = 0.01 Vhalf = -0.055 if ( {abs {(v - Vhalf)/ B}} < 1e-6) alpha_n1_n2 = A * (1 + (v - Vhalf)/B/2) else alpha_n1_n2 = A * ((v - Vhalf) / B) /(1 - {exp {-1 * (v - Vhalf)/B}}) end // Looking at rate: beta_n1_n2 float beta_n1_n2 float A, B, Vhalf // ChannelML form of equation: beta_n1_n2 which is of form exponential, with params: // A = 0.25, B = -80, Vhalf = -65, in units: Physiological Units A = 0.25 // Warning: unrecognised rate variable! Don't know how to convert units! B = -0.08 Vhalf = -0.065 beta_n1_n2 = A * {exp {(v - Vhalf) / B}} // Looking at rate: alpha_n2_n3 float alpha_n2_n3 float A, B, Vhalf // ChannelML form of equation: alpha_n2_n3 which is of form exp_linear, with params: // A = 0.2, B = 10, Vhalf = -55, in units: Physiological Units A = 0.2 // Warning: unrecognised rate variable! Don't know how to convert units! B = 0.01 Vhalf = -0.055 if ( {abs {(v - Vhalf)/ B}} < 1e-6) alpha_n2_n3 = A * (1 + (v - Vhalf)/B/2) else alpha_n2_n3 = A * ((v - Vhalf) / B) /(1 - {exp {-1 * (v - Vhalf)/B}}) end // Looking at rate: beta_n2_n3 float beta_n2_n3 float A, B, Vhalf // ChannelML form of equation: beta_n2_n3 which is of form exponential, with params: // A = 0.375, B = -80, Vhalf = -65, in units: Physiological Units A = 0.375 // Warning: unrecognised rate variable! Don't know how to convert units! B = -0.08 Vhalf = -0.065 beta_n2_n3 = A * {exp {(v - Vhalf) / B}} // Looking at rate: alpha_n3_n float alpha_n3_n float A, B, Vhalf // ChannelML form of equation: alpha_n3_n which is of form exp_linear, with params: // A = 0.1, B = 10, Vhalf = -55, in units: Physiological Units A = 0.1 // Warning: unrecognised rate variable! Don't know how to convert units! B = 0.01 Vhalf = -0.055 if ( {abs {(v - Vhalf)/ B}} < 1e-6) alpha_n3_n = A * (1 + (v - Vhalf)/B/2) else alpha_n3_n = A * ((v - Vhalf) / B) /(1 - {exp {-1 * (v - Vhalf)/B}}) end // Looking at rate: beta_n3_n float beta_n3_n float A, B, Vhalf // ChannelML form of equation: beta_n3_n which is of form exponential, with params: // A = 0.5, B = -80, Vhalf = -65, in units: Physiological Units A = 0.5 // Warning: unrecognised rate variable! Don't know how to convert units! B = -0.08 Vhalf = -0.065 beta_n3_n = A * {exp {(v - Vhalf) / B}} // Evaluating the tau and inf expressions float tau = 1/(temp_adj_n * (alpha + beta)) float inf = alpha/(alpha + beta) // Working out the "real" alpha and beta expressions from the tau and inf float alpha float beta alpha = inf / tau beta = (1- inf)/tau setfield {chanpath} X_A->table[{i}] {alpha} setfield {chanpath} X_B->table[{i}] {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 end |
Time to transform file: 0.078 secs