Translated laskeMuutokset2 and 3
This commit is contained in:
parent
5dd2889c54
commit
9a38c59ab9
1 changed files with 71 additions and 78 deletions
|
|
@ -70,7 +70,7 @@ laskeMuutokset <- function(ind, globalRows, data, adjprior, priorTerm) {
|
||||||
|
|
||||||
i2 <- find(muutokset == -Inf) # Etsit<69><74>n populaatiot jotka muuttuneet viime kerran j<>lkeen.
|
i2 <- find(muutokset == -Inf) # Etsit<69><74>n populaatiot jotka muuttuneet viime kerran j<>lkeen.
|
||||||
i2 <- setdiff(i2, i1)
|
i2 <- setdiff(i2, i1)
|
||||||
i2_logml <- POP_LOGML(i2)
|
i2_logml <- POP_LOGML[i2]
|
||||||
|
|
||||||
ni2 <- length(i2)
|
ni2 <- length(i2)
|
||||||
|
|
||||||
|
|
@ -85,107 +85,100 @@ laskeMuutokset <- function(ind, globalRows, data, adjprior, priorTerm) {
|
||||||
return(list(muutokset = muutokset, diffInCounts = diffInCounts))
|
return(list(muutokset = muutokset, diffInCounts = diffInCounts))
|
||||||
}
|
}
|
||||||
|
|
||||||
# %------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
laskeMuutokset2 <- function(i1, globalRows, data, adjprior, priorTerm) {
|
laskeMuutokset2 <- function(i1, globalRows, data, adjprior, priorTerm) {
|
||||||
# % Palauttaa npops*1 taulun, jossa i:s alkio kertoo, mik<69> olisi
|
# % Palauttaa npops*1 taulun, jossa i:s alkio kertoo, mik<69> olisi
|
||||||
# % muutos logml:ss<73>, mik<69>li korin i1 kaikki yksil<69>t siirret<65><74>n
|
# % muutos logml:ss<73>, mik<69>li korin i1 kaikki yksil<69>t siirret<65><74>n
|
||||||
# % koriin i.
|
# % koriin i.
|
||||||
|
|
||||||
# global COUNTS; global SUMCOUNTS;
|
npops <- size(COUNTS, 3)
|
||||||
# global PARTITION; global POP_LOGML;
|
muutokset <- zeros(npops, 1)
|
||||||
# npops = size(COUNTS,3);
|
|
||||||
# muutokset = zeros(npops,1);
|
|
||||||
|
|
||||||
# i1_logml = POP_LOGML(i1);
|
i1_logml <- POP_LOGML[i1]
|
||||||
|
|
||||||
# inds = find(PARTITION==i1);
|
inds <- find(PARTITION == i1)
|
||||||
# ninds = length(inds);
|
ninds <- length(inds)
|
||||||
|
|
||||||
# if ninds==0
|
if (ninds == 0) {
|
||||||
# diffInCounts = zeros(size(COUNTS,1), size(COUNTS,2));
|
diffInCounts <- zeros(size(COUNTS, 1), size(COUNTS, 2))
|
||||||
# return;
|
return()
|
||||||
# end
|
}
|
||||||
|
|
||||||
# rows = [];
|
rows = list()
|
||||||
# for i = 1:ninds
|
for (i in 1:ninds) {
|
||||||
# ind = inds(i);
|
ind <- inds(i)
|
||||||
# lisa = globalRows(ind,1):globalRows(ind,2);
|
lisa <- globalRows(ind, 1):globalRows(ind, 2)
|
||||||
# rows = [rows; lisa'];
|
rows <- c(rows, t(lisa))
|
||||||
# %rows = [rows; globalRows{ind}'];
|
}
|
||||||
# end
|
|
||||||
|
|
||||||
# diffInCounts = computeDiffInCounts(rows', size(COUNTS,1), size(COUNTS,2), data);
|
diffInCounts <- computeDiffInCounts(
|
||||||
# diffInSumCounts = sum(diffInCounts);
|
t(rows), size(COUNTS, 1), size(COUNTS, 2), data
|
||||||
|
)
|
||||||
|
diffInSumCounts <- sum(diffInCounts)
|
||||||
|
|
||||||
# COUNTS(:,:,i1) = COUNTS(:,:,i1)-diffInCounts;
|
COUNTS[, , i1] <- COUNTS[, , i1] - diffInCounts
|
||||||
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)-diffInSumCounts;
|
SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] - diffInSumCounts
|
||||||
# new_i1_logml = computePopulationLogml(i1, adjprior, priorTerm);
|
new_i1_logml <- computePopulationLogml(i1, adjprior, priorTerm)
|
||||||
# COUNTS(:,:,i1) = COUNTS(:,:,i1)+diffInCounts;
|
COUNTS[, , i1] <- COUNTS[, , i1] + diffInCounts
|
||||||
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)+diffInSumCounts;
|
SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] + diffInSumCounts
|
||||||
|
|
||||||
# i2 = [1:i1-1 , i1+1:npops];
|
i2 <- c(1:i1-1, i1+1:npops)
|
||||||
# i2_logml = POP_LOGML(i2);
|
i2_logml <- POP_LOGML[i2]
|
||||||
|
|
||||||
# COUNTS(:,:,i2) = COUNTS(:,:,i2)+repmat(diffInCounts, [1 1 npops-1]);
|
COUNTS[, , i2] <- COUNTS[, , i2] + repmat(diffInCounts, c(1, 1, npops - 1))
|
||||||
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)+repmat(diffInSumCounts,[npops-1 1]);
|
SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] + repmat(diffInSumCounts, c(npops - 1, 1))
|
||||||
# new_i2_logml = computePopulationLogml(i2, adjprior, priorTerm);
|
new_i2_logml <- computePopulationLogml(i2, adjprior, priorTerm)
|
||||||
# COUNTS(:,:,i2) = COUNTS(:,:,i2)-repmat(diffInCounts, [1 1 npops-1]);
|
COUNTS[, , i2] <- COUNTS[, , i2] - repmat(diffInCounts, c(1, 1, npops - 1))
|
||||||
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)-repmat(diffInSumCounts,[npops-1 1]);
|
SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] - repmat(diffInSumCounts, c(npops - 1, 1))
|
||||||
|
|
||||||
# muutokset(i2) = new_i1_logml - i1_logml ...
|
muutokset[i2] <- new_i1_logml - i1_logml + new_i2_logml - i2_logml
|
||||||
# + new_i2_logml - i2_logml;
|
return(list(muutokset = muutokset, diffInCounts = diffInCounts))
|
||||||
return(list(muutokset = muutokset, diffInCounts = diffInCounts))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
laskeMuutokset3 <- function(T2, inds2, globalRows, data, adjprior, priorTerm, i1) {
|
laskeMuutokset3 <- function(T2, inds2, globalRows, data, adjprior, priorTerm, i1) {
|
||||||
# % Palauttaa length(unique(T2))*npops taulun, jossa (i,j):s alkio
|
# Palauttaa length(unique(T2))*npops taulun, jossa (i,j):s alkio
|
||||||
# % kertoo, mik<69> olisi muutos logml:ss<73>, jos populaation i1 osapopulaatio
|
# kertoo, mik<69> olisi muutos logml:ss<73>, jos populaation i1 osapopulaatio
|
||||||
# % inds2(find(T2==i)) siirret<65><74>n koriin j.
|
# inds2(find(T2==i)) siirret<65><74>n koriin j.
|
||||||
|
|
||||||
# global COUNTS; global SUMCOUNTS;
|
npops <- size(COUNTS, 3)
|
||||||
# global PARTITION; global POP_LOGML;
|
npops2 <- length(unique(T2))
|
||||||
# npops = size(COUNTS,3);
|
muutokset <- zeros(npops2, npops)
|
||||||
# npops2 = length(unique(T2));
|
|
||||||
# muutokset = zeros(npops2, npops);
|
|
||||||
|
|
||||||
# i1_logml = POP_LOGML(i1);
|
i1_logml = POP_LOGML[i1]
|
||||||
# for pop2 = 1:npops2
|
for (pop2 in 1:npops2) {
|
||||||
# inds = inds2(find(T2==pop2));
|
inds <- inds2[find(T2==pop2)]
|
||||||
# ninds = length(inds);
|
ninds <- length(inds);
|
||||||
# if ninds>0
|
if (ninds > 0) {
|
||||||
# rows = [];
|
rows <- list()
|
||||||
# for i = 1:ninds
|
for (i in 1:ninds) {
|
||||||
# ind = inds(i);
|
ind <- inds[i]
|
||||||
# lisa = globalRows(ind,1):globalRows(ind,2);
|
lisa <- globalRows[ind, 1]:globalRows[ind, 2]
|
||||||
# rows = [rows; lisa'];
|
rows <- c(rows, t(lisa))
|
||||||
# %rows = [rows; globalRows{ind}'];
|
}
|
||||||
# end
|
diffInCounts <- computeDiffInCounts(
|
||||||
# diffInCounts = computeDiffInCounts(rows', size(COUNTS,1), size(COUNTS,2), data);
|
t(rows), size(COUNTS, 1), size(COUNTS, 2), data
|
||||||
# diffInSumCounts = sum(diffInCounts);
|
)
|
||||||
|
diffInSumCounts <- sum(diffInCounts)
|
||||||
|
|
||||||
# COUNTS(:,:,i1) = COUNTS(:,:,i1)-diffInCounts;
|
COUNTS[, , i1] <- COUNTS[, , i1] - diffInCounts
|
||||||
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)-diffInSumCounts;
|
SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] - diffInSumCounts
|
||||||
# new_i1_logml = computePopulationLogml(i1, adjprior, priorTerm);
|
new_i1_logml <- computePopulationLogml(i1, adjprior, priorTerm)
|
||||||
# COUNTS(:,:,i1) = COUNTS(:,:,i1)+diffInCounts;
|
COUNTS[, , i1] <- COUNTS[, , i1] + diffInCounts
|
||||||
# SUMCOUNTS(i1,:) = SUMCOUNTS(i1,:)+diffInSumCounts;
|
SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] + diffInSumCounts
|
||||||
|
|
||||||
# i2 = [1:i1-1 , i1+1:npops];
|
i2 <- c(1:i1-1, i1+1:npops)
|
||||||
# i2_logml = POP_LOGML(i2)';
|
i2_logml <- t(POP_LOGML[i2])
|
||||||
|
|
||||||
# COUNTS(:,:,i2) = COUNTS(:,:,i2)+repmat(diffInCounts, [1 1 npops-1]);
|
COUNTS[, , i2] <- COUNTS[, , i2] + repmat(diffInCounts, c(1, 1, npops - 1))
|
||||||
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)+repmat(diffInSumCounts,[npops-1 1]);
|
SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] + repmat(diffInSumCounts, c(npops - 1, 1))
|
||||||
# new_i2_logml = computePopulationLogml(i2, adjprior, priorTerm)';
|
new_i2_logml <- t(computePopulationLogml(i2, adjprior, priorTerm))
|
||||||
# COUNTS(:,:,i2) = COUNTS(:,:,i2)-repmat(diffInCounts, [1 1 npops-1]);
|
COUNTS[, , i2] <- COUNTS[, , i2] - repmat(diffInCounts, c(1, 1, npops - 1))
|
||||||
# SUMCOUNTS(i2,:) = SUMCOUNTS(i2,:)-repmat(diffInSumCounts,[npops-1 1]);
|
SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] - repmat(diffInSumCounts, c(npops - 1, 1))
|
||||||
|
|
||||||
# muutokset(pop2,i2) = new_i1_logml - i1_logml ...
|
muutokset[pop2, i2] <- new_i1_logml - i1_logml + new_i2_logml - i2_logml
|
||||||
# + new_i2_logml - i2_logml;
|
}
|
||||||
# end
|
}
|
||||||
# end
|
return(muutokset)
|
||||||
return(muutokset)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
laskeMuutokset5 <- function(inds, globalRows, data, adjprior, priorTerm, i1, i2) {
|
laskeMuutokset5 <- function(inds, globalRows, data, adjprior, priorTerm, i1, i2) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue