import ajustador as aju
def params_fitness(morph_file,ntype,modeltype,ghkkluge=1):
P = aju.optimize.AjuParam
params = aju.optimize.ParamSet(
P('junction_potential', -0.012, min=-0.020, max=0.005),
P('RA', 5.3, min=1, max=200),
P('RM', 2.78, min=0.1, max=10),
P('CM', 0.010, min=0.001, max=0.03),
P('Cond_Kir', 9.5, min=0, max=30),
P('Eleak', -0.08, min=-0.090, max=-0.020),
P('Cond_NaF_0', 219e3, min=0, max=600e3),
P('Cond_NaF_1', 1878, min=0, max=10000),
P('Cond_NaF_2', 878, min=0, max=10000),
P('Cond_KaS_0', 599, min=0, max=2000),
P('Cond_KaS_1', 372, min=0, max=2000),
P('Cond_KaS_2', 37.2, min=0, max=2000),
P('Cond_KaF_0', 887, min=0, max=5000),
P('Cond_KaF_1', 641, min=0, max=5000),
P('Cond_KaF_2', 641, min=0, max=5000),
P('Cond_Krp_0', 0.05, min=0, max=60),
P('Cond_Krp_1', 0.05, min=0, max=60),
P('Cond_Krp_2', 0.05, min=0, max=60),
P('Cond_SKCa', 1.7, min=0, max=10),
P('Cond_BKCa', 5.6, min=0, max=50),
P('Cond_CaN_0', 3*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaT_1', 2*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaT_2', 2*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaL12_0', 8*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaL12_1', 4*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaL12_2', 4*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaL13_0', 12*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaL13_1', 6*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaL13_2', 6*ghkkluge, min=0, max=100*ghkkluge),
P('Cond_CaR_0', 20*ghkkluge, min=0, max=1000*ghkkluge),
P('Cond_CaR_1', 45*ghkkluge, min=0, max=1000*ghkkluge),
P('Cond_CaR_2', 45*ghkkluge, min=0, max=1000*ghkkluge),
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=1,
baseline_pre=1,
baseline_post=1,
rectification=1,
falling_curve_time=1,
spike_time=1,
spike_width=1,
spike_height=1,
spike_latency=1,
spike_count=1,
spike_ahp=1,
ahp_curve=2,
charging_curve=1,
spike_range_y_histogram=1,
mean_isi = 2,
isi_spread = 2)
return params,fitness