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))
                       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:
    for noise in space.get_range('noise_rate_mu'):
        subspace = space.get_nontrivial_subspace(('noise_rate_mu', noise))
        rhm = RectangularHeatmapPlotter(subspace)
        fig_mi, ax_mi, data_mi = rhm.plot_and_save(heat_dim='point_mi_qe', base_dir='/home/ucbtepi/code/network/figures', file_extension=file_extension, aspect=2)
        plt.close(rhm.fig)
        np.savetxt('data_mi.csv', data_mi, delimiter=',')

if plot_line_n_trials:
    training_size = 30
    testing_size = space.get_range('n_trials') - training_size
    subspace = space.get_nontrivial_subspace(('training_size', training_size))
    mi_qe =  subspace._get_attribute_array('point_mi_qe')
    mi_pt  =  subspace._get_attribute_array('point_mi_pt')
    mi_nsb  =  subspace._get_attribute_array('point_mi_nsb')
    mi_plugin  =  subspace._get_attribute_array('point_mi_plugin')
    fig, ax = plt.subplots(figsize=(3,1.75))
    ax.locator_params(tight=True, nbins=5)