%% Skript pro vypocet mRMR z cell vypocitanych paramatru
% skript musi byt spusten az po vypocitani vsech parametru skriptem
% VypoctiParametry_script.m

nrofpatients = 154;
%% Priprava label_train
for i=2:nrofpatients+1
   nazevPacienta = char(vystup(1,i));
   if nazevPacienta(1) == 'K'
       label_trainMMR(1,i-1) = 0;
   else if nazevPacienta(1) == 'P'
           label_trainMMR(1,i-1) = 1;
       end
   end    
end %for


%% Rozdeleni vystupu podle nahravek
%row=1;
coll=2;
skok = 119;
for row=1:skok
 table1(row+1,coll:nrofpatients+1) = vystup(row+1,coll:nrofpatients+1);
 table2(row+1,coll:nrofpatients+1) = vystup(row+1+skok,coll:nrofpatients+1);
 table3(row+1,coll:nrofpatients+1) = vystup(row+1+2*skok,coll:nrofpatients+1);
 table4(row+1,coll:nrofpatients+1) = vystup(row+1+3*skok,coll:nrofpatients+1);
 table5(row+1,coll:nrofpatients+1) = vystup(row+1+4*skok,coll:nrofpatients+1);
 table6(row+1,coll:nrofpatients+1) = vystup(row+1+5*skok,coll:nrofpatients+1);
 table7(row+1,coll:nrofpatients+1) = vystup(row+1+6*skok,coll:nrofpatients+1);
 table8(row+1,coll:nrofpatients+1) = vystup(row+1+7*skok,coll:nrofpatients+1);
 table9(row+1,coll:nrofpatients+1) = vystup(row+1+8*skok,coll:nrofpatients+1);
 table10(row+1,coll:nrofpatients+1) = vystup(row+1+9*skok,coll:nrofpatients+1);
end


%% FUNKCE  vybernejlepsichradku

[saveEachTableParameters1,sel1] = VyberNejlepsichRadku(table1,nrofpatients,skok,label_trainMMR,vystup);
disp('Hotovo pro 1. nahravku')
[saveEachTableParameters2,sel2] = VyberNejlepsichRadku(table2,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 2. nahravku')
[saveEachTableParameters3,sel3] = VyberNejlepsichRadku(table3,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 3. nahravku')
[saveEachTableParameters4,sel4] = VyberNejlepsichRadku(table4,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 4. nahravku')
[saveEachTableParameters5,sel5] = VyberNejlepsichRadku(table5,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 5. nahravku')
[saveEachTableParameters6,sel6] = VyberNejlepsichRadku(table6,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 6. nahravku')
[saveEachTableParameters7,sel7] = VyberNejlepsichRadku(table7,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 7. nahravku')
[saveEachTableParameters8,sel8] = VyberNejlepsichRadku(table8,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 8. nahravku')
[saveEachTableParameters9,sel9] = VyberNejlepsichRadku(table9,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 9. nahravku')
[saveEachTableParameters10,sel10] = VyberNejlepsichRadku(table10,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro 10. nahravku')

disp('Máš to hotový.')

%% All All
skok = 218;
addpath('mRMR');
% Discretize the variables
table1M = cell2mat(new_tableAllAll2(2:skok+1,2:nrofpatients+1));

th1 = mean(table1M) - std(table1M);
th2 = mean(table1M) + std(table1M);

th1 = repmat(th1, size(table1M,1), 1);
th2 = repmat(th2, size(table1M,1), 1);

mask1 = table1M < th1;
mask3 = table1M > th2;        
mask2 = (mask1+mask3) == 0;

table1M(mask1) = -1;
table1M(mask2) = 0;
table1M(mask3) = 1;

sel = mrmr_mid_d(table1M', label_trainMMR', 96);


for i=1:length(sel)
    new_tableAllAllAll2(i+1,1:nrofpatients+1) = new_tableAllAll2(sel(i)+1,1:nrofpatients+1);
end

skok = 194;
[saveEachTableParametersAll1,selAll1] = VyberNejlepsichRadku(new_tableAllAll1,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro All_1')

skok = 218;
[saveEachTableParametersAll2,selAll2] = VyberNejlepsichRadku(new_tableAllAll2,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro All_2')

skok = 111;
[saveEachTableParametersAllAll,selAllAll] = VyberNejlepsichRadku(new_tableAllAllAll,nrofpatients,skok,label_trainMMR,vystup );
disp('Hotovo pro All_All')