import sys
sys.path.append("../")

import numpy as np
from scipy.stats import pearsonr
from utils.parameters import PSlice, ParameterSpace, ParameterSpacePoint

space = ParameterSpace(PSlice(300), PSlice(6), PSlice(2.), PSlice(4), PSlice(5.), PSlice(.1, 1.0, .1), PSlice(-30., 5., 5.), PSlice(120), PSlice(30), PSlice(10,80,10), PSlice(10), PSlice(20), PSlice(200), PSlice(40), PSlice(0.), PSlice(0), PSlice(5.), PSlice(2.))
space.load_analysis_results()


mi_arr = space.get_nontrivial_subspace(('training_size', 40))._get_attribute_array('point_mi_qe')
nm_arr = space.get_nontrivial_subspace(('training_size', 40))._get_attribute_array('new_measure')

print(pearsonr(np.delete(mi_arr, 5, axis=0).flat, np.delete(nm_arr, 5, axis=0).flat))
multineuron_metric_mixing = psl(0.)
linkage_method = psl(1) # 0: ward, 1: kmeans
tau = psl(5)
dt = psl(2)

space = ParameterSpace(n_grc_dend,
                       connectivity_rule,
                       input_spatial_correlation_scale,
                       active_mf_fraction,
                       gaba_scale,
                       dta,
                       inh_cond_scaling,
                       exc_cond_scaling,
                       modulation_frequency,
                       stim_rate_mu,
                       stim_rate_sigma,
                       noise_rate_mu,
                       noise_rate_sigma,
                       n_stim_patterns,
                       n_trials,
                       sim_duration,
                       ana_duration,
                       training_size,
                       multineuron_metric_mixing,
                       linkage_method,
                       tau,
                       dt)


space.load_analysis_results()

if plot_mi_heatmap: