from neuron import h
import mutation_stuff
import protocol
defValsMut = mutation_stuff.getdefvals()
defVals = protocol.get_defvals()
def setparams(params):
params_copy = params.copy()
keys = params.keys()
for ikey in range(0,len(keys)):
params_copy[keys[ikey]] = params[keys[ikey]]*defVals[keys[ikey]]
#Apply the new parameter values:
IhChanged = False
CaHVAChanged = False
CaLVAChanged = False
aIh = defVals['D_aIh']
bIh = defVals['D_bIh']
print "setparams: params_copy = "+str(params_copy)
for ikey in range(0,len(keys)):
key = keys[ikey]
section = []
if key[0:2] == "A_" or key[0:2] == "B_" or key[0:2] == "S_" or key[0:2] == "*_":
if key[0:2] == "A_":
section = "apical"
if key[0:2] == "B_":
section = "basal"
if key[0:2] == "S_":
section = "somatic"
if key[0:2] == "*_":
section = "all"
if len(section) > 0:
print("forsec L5PC."+section+" "+key[2:]+" = "+str(params_copy[key]))
h("forsec L5PC."+section+" "+key[2:]+" = "+str(params_copy[key]))
elif key[0:2] == "D_":
if key[2:] == "aIh":
IhChanged = True
aIh = params_copy[key]
if key[2:] == "bIh":
IhChanged = True
bIh = params_copy[key]
if key == "aCa_HVA":
CaHVAChanged = True
if key[2:] == "aCa_LVAst":
CaLVAChanged = True
if IhChanged:
print("""L5PC.distribute_channels(\"apic\",\"gIhbar_Ih\",2,"""+str(aIh)+""",3.6161,0.0,"""+str(bIh)+""",0.00020000000)""")
h("""L5PC.distribute_channels(\"apic\",\"gIhbar_Ih\",2,"""+str(aIh)+""",3.6161,0.0,"""+str(bIh)+""",0.00020000000)""")
if CaLVAChanged:
print("""L5PC.distribute_channels(\"apic\",\"gCa_LVAstbar_Ca_LVAst\",3,1.000000,0.01,685.000000,885.000000,"""+str(params_copy['D_aCa_LVAst'])+""")""")
h("""L5PC.distribute_channels(\"apic\",\"gCa_LVAstbar_Ca_LVAst\",3,1.000000,0.01,685.000000,885.000000,"""+str(params_copy['D_aCa_LVAst'])+""")""")
if CaHVAChanged:
print("""L5PC.distribute_channels(\"apic\",\"gCa_HVAbar_Ca_HVA\",3,1.000000,0.100000,685.000000,885.000000,"""+str(params_copy['D_aCa_HVA'])+""")""")
h("""L5PC.distribute_channels(\"apic\",\"gCa_HVAbar_Ca_HVA\",3,1.000000,0.100000,685.000000,885.000000,"""+str(params_copy['D_aCa_HVA'])+""")""")