1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| procedure TFentree.BtYdirectClick(Sender: TObject);
var n,m,i,ord,j,x1,x2,classe,l,k,val,symb,compt,r:integer;
s1,s2:string;
replace:boolean;
begin
nb:=0;
compt:=0;
n:=length(memoi.text);
m:=length(memoj.text);
s1:=copy(memoi.text,0,n);
s2:=copy(memoj.text,0,m);
SetLength(Y,7);
for ord := Low(y) to High(y) do
SetLength(y[ord], 1);
//****initialisation des cellules du tableau Y
remplirGridy(0,0,0);
L:=0; // l est l'indice de la séquence j
classe:=1;
symb:=0;
j:=1;// se positionner sur la colone de C0 ===> à revoir
// k est l'indice de la séquence i
for k:= 1 to n do //se pointer sur les symbole de I
begin
if s1[k]='A' then symb:=0;
if s1[k]='C' then symb:=1;
if s1[k]='G' then symb:=2;
if s1[k]='T' then symb:=3;
if X[symb+1,L]<>'-' then // **********************************
begin
val:=strtoint(X[symb+1,L]);
for ord := Low(y) to High(y) do
SetLength(y[ord], classe+1);
i:=i+1;
remplirGridy(classe,val,k);
j:=j+1;
//**********vérifier les remplacements
L:=val;
for x1:=classe-1 downto 0 do // jusqu'à C0
if(Y[symb+3,x1]<>'-') and (Y[symb+3,x1]<>Y[symb+3,x1+1]) then
begin
replace:=false;
for x2:=classe-1 downto 0 do
if (replace=false) then
begin
if strtoint(y[1,x2])<strtoint(y[symb+3,x1]) then
begin
//remplacer la colone suivante de Y
remplirGridy(x2+1,strtoint(Y[symb+3,x1]),k);
replace:=true;
end; // fin du remplacement
end;
end;
classe:=classe+1;
end //fin du traitement cas normal*******************************
else
begin //début traitement du cas '-' ***************************
for x1:=classe-2 downto 0 do // jusqu'à C0
if(Y[symb+3,x1]<>'-') and (Y[symb+3,x1]<>Y[symb+3,x1+1]) then
begin
replace:=false;
for x2:=classe-1 downto 0 do
if (replace=false) then
begin
if strtoint(y[1,x2])<strtoint(y[symb+3,x1]) then
begin
//remplacer la colone suivante de Y
remplirGridy(x2+1,strtoint(Y[symb+3,x1]),k);
replace:=true;
end; // fin du remplacement
end;
end;
L:=strtoint(y[1,classe-1]);
end; //fin du cas '-' *****************************
end;// fin de la séquence I
lab1.caption:=inttostr(classe-1);
end; |
Partager