ourMELONS/R/computeAllFreqs2.R

29 lines
918 B
R
Raw Normal View History

2020-02-25 11:52:41 +01:00
#' @title Compute all freqs - version 2
#' @description Lisää a priori jokaista alleelia joka populaation joka lokukseen
#' j 1/noalle(j) verran.
2020-02-25 13:53:11 +01:00
#' @param noalle noalle
#' @param COUNTS counts
#' @param SUMCOUNTS sumcounts
#' @export
2020-02-25 11:52:41 +01:00
computeAllFreqs2 <- function (noalle, COUNTS = matrix(NA, 0, 0),
SUMCOUNTS = NA) {
2020-02-25 11:52:41 +01:00
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)
if (nloci > 0) {
for (j in 1:nloci) {
prioriAlleelit[1:noalle[j], j] <- 1 / noalle[j]
}
2020-02-25 11:52:41 +01:00
}
prioriAlleelit <- repmat(prioriAlleelit, c(1, 1, npops))
counts <- COUNTS + prioriAlleelit
2020-07-14 11:17:25 +02:00
allFreqs <- counts / drop(sumCounts)
2020-02-25 11:52:41 +01:00
return(allFreqs)
}