Added computeAllFreqs2 function

This commit is contained in:
Waldir Leoncio 2020-02-25 11:52:41 +01:00
parent d8df7fcb9e
commit 70528756fc
3 changed files with 50 additions and 41 deletions

View file

@ -401,29 +401,3 @@ admix1 <- function(tietue) {
# global SUMCOUNTS; SUMCOUNTS = []; # global SUMCOUNTS; SUMCOUNTS = [];
# global PARTITION; PARTITION = []; # global PARTITION; PARTITION = [];
# global POP_LOGML; POP_LOGML = []; # global POP_LOGML; POP_LOGML = [];
# %--------------------------------------------------------
# function allFreqs = computeAllFreqs2(noalle)
# % Lisää a priori jokaista alleelia
# % joka populaation joka lokukseen j 1/noalle(j) verran.
# global COUNTS;
# global SUMCOUNTS;
# max_noalle = size(COUNTS,1);
# nloci = size(COUNTS,2);
# npops = size(COUNTS,3);
# sumCounts = SUMCOUNTS+ones(size(SUMCOUNTS));
# sumCounts = reshape(sumCounts', [1, nloci, npops]);
# sumCounts = repmat(sumCounts, [max_noalle, 1 1]);
# prioriAlleelit = zeros(max_noalle,nloci);
# for j=1:nloci
# prioriAlleelit(1:noalle(j),j) = 1/noalle(j);
# end
# prioriAlleelit = repmat(prioriAlleelit, [1,1,npops]);
# counts = COUNTS + prioriAlleelit;
# allFreqs = counts./sumCounts;

23
R/computeAllFreqs2.R Normal file
View file

@ -0,0 +1,23 @@
#' @title Compute all freqs - version 2
#' @description Lisää a priori jokaista alleelia joka populaation joka lokukseen
#' j 1/noalle(j) verran.
computeAllFreqs2 <- function (noalle, COUNTS = matrix(NA, 0, 0),
SUMCOUNTS = sum(COUNTS)) {
max_noalle <- size(COUNTS, 1)
nloci <- size(COUNTS,2)
npops <- size(COUNTS,3)
sumCounts <- SUMCOUNTS + ones(size(SUMCOUNTS))
sumCounts <- reshape(t(sumCounts), c(1, nloci, npops))
sumCounts <- repmat(sumCounts, c(max_noalle, 1, 1))
prioriAlleelit <- zeros(max_noalle, nloci)
for (j in 1:nloci) {
prioriAlleelit[1:noalle[j], j] <- 1 / noalle[j]
}
prioriAlleelit <- repmat(prioriAlleelit, c(1, 1, npops))
counts <- COUNTS + prioriAlleelit
allFreqs <- counts / sumCounts
return(allFreqs)
}

12
man/computeAllFreqs2.Rd Normal file
View file

@ -0,0 +1,12 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/computeAllFreqs2.R
\name{computeAllFreqs2}
\alias{computeAllFreqs2}
\title{Compute all freqs - version 2}
\usage{
computeAllFreqs2(noalle, COUNTS = matrix(NA, 0, 0), SUMCOUNTS = sum(COUNTS))
}
\description{
Lisää a priori jokaista alleelia joka populaation joka lokukseen
j 1/noalle(j) verran.
}