function gene = sal_fp(a0)
[n,L] = size(a0);
lut = zeros(1,84);
lut([65 67 71 84]) = [0 1 2 3];
dd = lut(double(a0));
dd = dd*(4.^(L-1:-1:0))';
[dd,ord] = sort(dd);
kk = [find(dd(1:n-1)~=dd(2:n));n];
a0 = a0(ord(kk),:);
nii = size(kk,1);
a = cell(nii,1);
ii = 1:nii;
for k = ii,
a{k} = a0(k,:);
end;
gTail = 2-L:0;
%nii=length(ii);
for N = L-1:-1:1,
i1 = 1;
while i1<=nii,
while 1,
cPart = find(strncmp(a{i1}(end+gTail),a, N));
if cPart,
mSeg = cPart(1);
if mSeg~=i1,
a{i1} = [a{i1} a{mSeg}(1+N:end)];
nii=nii-1;
if nii == 1,
gene = a{i1};
return;
end;
if mSeg<i1, i1=i1-1; end;
a(mSeg) = [];
else
break;
end;
else
break;
end;
end;
i1=i1+1;
end;
gTail(1) = [];
end;
gene = [a{:}];
|