ourMELONS/R/computeLogml.R

28 lines
690 B
R
Raw Normal View History

2020-11-19 10:46:37 +01:00
computeLogml <- function(counts, sumcounts, noalle, data, rowsFromInd) {
nloci <- size(counts, 2)
npops <- size(counts, 3)
adjnoalle <- zeros(base::max(noalle), nloci)
for (j in 1:nloci) {
adjnoalle[1:noalle[j], j] <- noalle(j)
if ((noalle(j) < base::max(noalle))) {
adjnoalle[noalle[j] + 1:ncol(adjnoalle), j] <- 1
}
}
2020-11-19 10:46:37 +01:00
rowsInG <- size(data, 1) + rowsFromInd
2020-11-19 10:46:37 +01:00
logml <- sum(
sum(
sum(
globals$GAMMA_LN[
counts + 1 +
repmat(rowsInG * (adjnoalle - 1), c(1, 1, npops))
]
)
)
) -
npops * sum(sum(globals$GAMMA_LN[1, adjnoalle])) -
sum(sum(globals$GAMMA_LN[sumcounts + 1, 1]))
return(logml)
2020-11-19 10:46:37 +01:00
}