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
|
|
|
|
|
#' @export
|
2020-11-19 14:29:37 +01:00
|
|
|
computeAllFreqs2 <- function (noalle) {
|
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)
|
2020-02-25 14:28:39 +01:00
|
|
|
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)
|
|
|
|
|
}
|