Translated lueGenePopDataPop() (#2)

This commit is contained in:
Waldir Leoncio 2022-05-13 11:17:59 +02:00
parent 82b7515e51
commit fff8574b82
2 changed files with 77 additions and 80 deletions

View file

@ -251,86 +251,6 @@ else
end
end
%--------------------------------------------------------------------
function [data, popnames] = lueGenePopDataPop(tiedostonNimi)
% Data annetaan muodossa, jossa viimeinen sarake kertoo ryhmän.
% popnames on kuten ennenkin.
fid = fopen(tiedostonNimi);
line = fgetl(fid); %ensimmäinen rivi
line = fgetl(fid); %toinen rivi
count = rivinSisaltamienMjonojenLkm(line);
line = fgetl(fid);
lokusRiveja = 1;
while (testaaPop(line)==0)
lokusRiveja = lokusRiveja+1;
line = fgetl(fid);
end
if lokusRiveja>1
nloci = lokusRiveja;
else
nloci = count;
end
popnames = cell(10,2);
data = zeros(100, nloci+1);
nimienLkm=0;
ninds=0;
poimiNimi=1;
digitFormat = -1;
while line ~= -1
line = fgetl(fid);
if poimiNimi==1
%Edellinen rivi oli 'pop'
nimienLkm = nimienLkm+1;
ninds = ninds+1;
if nimienLkm>size(popnames,1);
popnames = [popnames; cell(10,2)];
end
nimi = lueNimi(line);
if digitFormat == -1
digitFormat = selvitaDigitFormat(line);
divider = 10^digitFormat;
end
popnames{nimienLkm, 1} = {nimi}; %Näin se on greedyMix:issäkin?!?
popnames{nimienLkm, 2} = ninds;
poimiNimi=0;
data = addAlleles(data, ninds, line, divider);
elseif testaaPop(line)
poimiNimi = 1;
elseif line ~= -1
ninds = ninds+1;
data = addAlleles(data, ninds, line, divider);
end
end
fclose(fid);
data = data(1:ninds*2,:);
popnames = popnames(1:nimienLkm,:);
npops = size(popnames,1);
ind = 1;
for pop = 1:npops
if pop<npops
while ind<popnames{pop+1,2}
data([ind*2-1 ind*2],end) = pop;
ind = ind+1;
end
else
while ind<=ninds
data([ind*2-1 ind*2],end) = pop;
ind = ind+1;
end
end
end
%-------------------------------------------------------------------