import ajustador as aju
def params_fitness(morph_file,ntype,modeltype,ghkkluge=1):
P = aju.optimize.AjuParam
params = aju.optimize.ParamSet(
P('junction_potential', -11e-3, min=-20e-3, max = 20e-3),
P('RA', 1.05, min=.4, max=4),
P('RM', 4.5, min=0.01, max=100),
P('CM', 0.0112, min=0.0025, max=0.05),
P('Cond_Kir', 7.7, min=1, max=50),
P('Eleak', -0.09, min=-0.1, max=-0.020),
P('Cond_NaF_0', 581e3, min=20e3, max=10000e3),
P('Cond_NaF_1', 1927, min=0, max=100e3),
P('Cond_NaF_2', 990, min=0, max=100e3),
P('Cond_KaS_0', 60, min=1, max=10000),
P('Cond_KaS_1', 485, min=1, max=10000),
P('Cond_KaS_2', 33, min=1, max=10000),
P('Cond_KaF_0', 753, min=10, max=10000),
P('Cond_KaF_1', 991, min=10, max=10000),
P('Cond_KaF_2', 85, min=10, max=10000),
P('Cond_Krp_0', 0.05, min=0, max=100),
P('Cond_Krp_1', 0.05, min=0, max=50),
P('Cond_Krp_2', 0.05, min=0, max=50),
P('Cond_SKCa', 2.0, min=0, max=10),
P('Cond_CaCC', 2.13, min=.1, max=100),
P('Cond_BKCa', 6.6, min=1, max=100),
P('Cond_CaN_0', 3*ghkkluge, min=0, max=10*ghkkluge),
P('Cond_CaT_1', 0.03*ghkkluge, min=0, max=10*ghkkluge),
P('Cond_CaT_2', 4*ghkkluge, min=0, max=10*ghkkluge),
P('Cond_CaL12_0', 7.3*ghkkluge, min=0, max=20*ghkkluge),
P('Cond_CaL12_1', 2.4*ghkkluge, min=0, max=20*ghkkluge),
P('Cond_CaL12_2', 2.1*ghkkluge, min=0, max=20*ghkkluge),
P('Cond_CaL13_0', 9.7*ghkkluge, min=0, max=20*ghkkluge),
P('Cond_CaL13_1', 2.1*ghkkluge, min=0, max=20*ghkkluge),
P('Cond_CaL13_2', 5.6*ghkkluge, min=0, max=20*ghkkluge),
P('Cond_CaR_0', 30*ghkkluge, min=0, max=60*ghkkluge),
P('Cond_CaR_1', 30*ghkkluge, min=0, max=60*ghkkluge),
P('Cond_CaR_2', 30*ghkkluge, min=0, max=60*ghkkluge),
P('Chan_NaF_vshift_X', 0.007, min=-0.02, max=0.02),
P('Chan_NaF_vshift_Y', 0.008, min=-0.02, max=0.02),
P('Chan_NaF_taumul_X', 0.57, min=0.25, max=3),
P('Chan_NaF_taumul_Y', 1.0, min=0.25, max=3),
P('Chan_KaF_vshift_X', -0.01, min=-0.02, max=0.02),
P('Chan_KaF_vshift_Y', 0.01, min=-0.02, max=0.02),
P('Chan_KaF_taumul_X', 0.51, min=0.25, max=3),
P('Chan_KaF_taumul_Y', 1.38, min=0.25, max=3),
P('Chan_KaS_vshift_X', -0.01, min=-0.020, max=0.020),
P('Chan_KaS_vshift_Y', 0.002, min=-0.020, max=0.020),
P('Chan_KaS_taumul_X', 1.77, min=0.25, max=3),
P('Chan_KaS_taumul_Y', 1.49, min=0.25, max=3),
#P('Chan_Krp_vshift', -0.004, min=-0.01, max=0.01),
#P('Chan_Krp_taumul', 1.2, min=0.5, max=2),
P('Chan_Kir_vshift', 0, min = -.02, max = .02),
P('Chan_Kir_taumul', 1.0, min = .25, max = 3),
P('morph_file', morph_file, fixed=1),
P('neuron_type', ntype, fixed=1),
P('model', modeltype, fixed=1))
#fitness=aju.fitnesses.combined_fitness('new_combined_fitness')
fitness = aju.fitnesses.combined_fitness('empty',
response=2,
baseline_pre=1,
baseline_post=1,
rectification=1,
falling_curve_time=1,
spike_time=2,
spike_width=2,
spike_height=10,
spike_latency=1,
spike_count=1,
spike_ahp=2,
ahp_curve=2,
charging_curve_time=2,
spike_range_y_histogram=1,
mean_isi=2,
isi_spread=2,
spike_threshold=1,
response_variance=0.05)
return params,fitness