import brain_state_calculate as bsc
import cpp_file_tools as cft

file=["F:/data/r617/0620healthyOutput_1.txt","F:/data/r617/0620healthyOutput_2.txt","F:/data/r617/0620healthyOutput_3.txt"]
my_bsc = bsc.brain_state_calculate(32)
my_cft = cft.cpp_file_tools(32, 1)
my_bsc.init_networks(file, my_cft)
my_bsc.save_networks('', '0527')

print 'END'
#In this script we train the kohonen network using another kohonen network
#learning is totally unsupervised
#####################
######  START  ######
from cpp_file_tools import cpp_file_tools

dir_name = '../RT_classifier/BMIOutputs/0423_r600/'
save_obj = False
ext_img = '.png'
save = True
show = False
files0423 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

my_bsc = bsc.brain_state_calculate(32, 'koho_RL', ext_img, save, show)
my_cft = cpp_file_tools(32, 1, ext_img, save, show)
my_bsc2 = bsc.brain_state_calculate(32, 'koho', ext_img, save, show)

##build one koho network and class obs with unsupervised learning
l_res, l_obs = my_bsc.cft.convert_cpp_file(dir_name, 't_0423', files0423[0:5], False)
#use training dataset (not working)
# sp = signal_processing.Signal_processing()
# l_obs = sp.load_m(dir_name+'trainSet140423.mat', 'BrainAct')
l_obs_koho = my_bsc.cft.obs_classify_kohonen(l_obs)

#build and train networks
my_bsc.build_networks()
my_bsc.simulated_annealing(l_obs, l_obs_koho, l_res, 0.10, 14, 0.95)
my_bsc2.build_networks()
my_bsc2.simulated_annealing(l_obs, l_obs_koho, l_res, 0.10, 14, 0.95)
import brain_state_calculate as bsc
import cpp_file_tools as cft
from matplotlib import pyplot as plt
import numpy as np
import Tkinter
import tkFileDialog

initdir="C:\\"

my_bsc = bsc.brain_state_calculate(32)
my_cft = cft.cpp_file_tools(32, 1, show=True)
my_bsc.init_networks_on_files(initdir, my_cft, train_mod_chan=False)
my_bsc.save_networks_on_file(initdir, "0606")
my_bsc.load_networks_file(initdir)

print("select the file to test")
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename(multiple=True, initialdir=initdir,  title="select cpp file to train the classifier", filetypes=[('all files', '.*'), ('text files', '.txt')])
print("test the file")
if not file_path == "":
    files = root.tk.splitlist(file_path)

    for f in files:
        print(f)
        l_res, l_obs = my_cft.read_cpp_files([f], use_classifier_result=False, cut_after_cue=True, init_in_walk=True)
        success, l_of_res = my_bsc.test(l_obs, l_res)
        my_cft.plot_result(l_of_res)
        plt.figure()
        plt.imshow(np.array(l_obs).T, interpolation='none')
        my_bsc.train_unsupervised_one_file(f, my_cft, is_healthy=False)
              '11': range(1, 36),
              '12': range(27, 54),
              '13': range(32, 63)},
         'r34':
             {'06': range(1, 42),
              '07': range(1, 27),
              '10': range(1, 6),
              '11': range(1, 31),
              '12': range(54, 87),
              '13': range(1, 32),
              '14': range(23, 48)}
        }

number_of_chan = 128
group_chan_by = 1
my_cft = cpp_file_tools(number_of_chan, group_chan_by)
#number of chan after grouping
number_of_chan /=group_chan_by
f = open('chan_evo_result.txt', 'w')

n = 0
all_chan_means = {}
all_chan_stds = {}
all_new_neuron = {}
all_lost_neuron = {}
all_mod_neuron = {}
all_chan_mod_count = {}
all_chan_mod = []

perc_modulation = []
for rat in files.keys():