 function [ signal,r, nazev] = prevod_NR(sekvence, NR)
% Tato funkce slouží k převedení numerických sekvencí, načtené z formátu FASTA, do numerické reprezentace
% VSTUPNÍ HODOTY
% sekvence - načtený soubor ve formátu FASTA, který chceme převádět do
% zvolené numerické reprezentace

% NR=1 'rozbfaz' Rozbalená fáze
%    2 'zkrivka' Z-křivka
%    3 'kumlfze' Kumulovaná fáze
%    4 'tetrhed' Tetrahedronová reprezentace
% VÝSTUPNÍ HODNOTY
%    signal - buňka obsahující převedené sekvence do zvolenené numerické reprezentace
%    r - rozmer numerické reprezentace
%    nazev = 'nazev numericke reprezentace'
%%
s=length(sekvence);
signal=cell(1,s);
%Z KRIVKA
switch NR
    case {'zkrivka',2}
        nazev= 'Z-křivka';
    r=3;
for i =1:s
 sek=sekvence{1,i};
 delka=length(sek);
 sek_num=zeros(3,delka+1); %přidáme si jednu pozici navíc, protože matlab neumí indexovat nulu
 for j=1:delka
     switch sek(j)
        case 'T'
        sek_num(1,j+1)=sek_num(1,j)+1;
        sek_num(2,j+1)=sek_num(2,j)-1;
        sek_num(3,j+1)=sek_num(3,j)+1;      
        case 'C'
        sek_num(1,j+1)=sek_num(1,j)-1;
        sek_num(2,j+1)=sek_num(2,j)+1;
        sek_num(3,j+1)=sek_num(3,j)-1;
        case 'G'
        sek_num(1,j+1)=sek_num(1,j)+1;
        sek_num(2,j+1)=sek_num(2,j)-1;
        sek_num(3,j+1)=sek_num(3,j)-1;  
        case 'A'
        sek_num(1,j+1)=sek_num(1,j)-1;
        sek_num(2,j+1)=sek_num(2,j)+1;
        sek_num(3,j+1)=sek_num(3,j)+1;   
    end
end
sek_num(:,1)=[]; %pomocnou první nulovou hodnotu můžeme vymazay
signal{1,i}=sek_num;
end

    case {'rozbfaz',1}
        nazev='Rozbalená fáze';
% ROZBALENA FAZE
r=1;
for i =1:s
 sek=sekvence{1,i};
 sek_num=zeros(1,length(sek));
 for j=1:length(sek)
   if sek(j)== 'T'
      sek_num(j)=complex(1,-1);
   elseif sek(j)== 'C'
       sek_num(j)=complex(-1,-1);
   elseif sek(j)== 'G'
       sek_num(j)=complex(-1,1);
   else
        sek_num(j)=complex(1,1);
   end
 
end
sek_num=angle(sek_num);
sek_num=unwrap(sek_num); %rozbalená fáze
signal{1,i}=sek_num;
end
%Tetrahedron
    case {'tetrhed',4}
    r=3;
    nazev='Tetrahedronová reprezentace';
for i =1:s
 sek=sekvence{1,i};
 sek_num=zeros(r,length(sek));
 for j=1:length(sek)
     switch sek(j)
        case 'T'
        sek_num(1,j)=(2*sqrt(2))/3;
        sek_num(3,j)=1/3;
        case 'C'
        sek_num(2,j)=sqrt(6)/3;
        sek_num(1,j)=-(sqrt(2)/3);
        sek_num(3,j)=1/3;
        case 'G'
        sek_num(2,j)=-(sqrt(6)/3);
        sek_num(1,j)=-(sqrt(2)/3);
        sek_num(3,j)=1/3;
        case 'A'
        sek_num(3,j)=1;
    end
 end
signal{1,i}=sek_num;
end 
    case {'kumlfaz',3}
        nazev='Kumulovaná fáze';
% KUMULOVANA FAZE
r=1;
for i =1:s
 sek=sekvence{1,i};
 sek_num=zeros(1,length(sek));
 for j=1:length(sek)
   if sek(j)== 'T'
      sek_num(j)=complex(1,-1);
   elseif sek(j)== 'C'
       sek_num(j)=complex(-1,-1);
   elseif sek(j)== 'G'
       sek_num(j)=complex(-1,1);
   else
        sek_num(j)=complex(1,1);
   end
 
end
sek_num=angle(sek_num);
sek_num=cumsum(sek_num); %kumulovana
signal{1,i}=sek_num;
end
end
end