Fixed handleData

This commit is contained in:
Waldir Leoncio 2020-07-31 09:54:55 +02:00
parent 07a95c6f8b
commit 154a491b43

View file

@ -20,12 +20,11 @@ handleData <- function(raw_data) {
# koodi pienimm?ksi koodiksi, joka isompi kuin mik??n k?yt?ss?oleva koodi. # koodi pienimm?ksi koodiksi, joka isompi kuin mik??n k?yt?ss?oleva koodi.
# T?m?n j?lkeen funktio muuttaa alleelikoodit siten, ett?yhden lokuksen j # T?m?n j?lkeen funktio muuttaa alleelikoodit siten, ett?yhden lokuksen j
# koodit saavat arvoja v?lill?1,...,noalle(j). # koodit saavat arvoja v?lill?1,...,noalle(j).
data <- raw_data data <- raw_data
nloci <- size(raw_data, 2) - 1 nloci <- size(raw_data, 2) - 1
dataApu <- data[, 1:nloci] dataApu <- data[, 1:nloci]
nollat <- find(dataApu==0) nollat <- find(dataApu == 0)
if (!isempty(nollat)) { if (!isempty(nollat)) {
isoinAlleeli <- max(max(dataApu)) isoinAlleeli <- max(max(dataApu))
dataApu[nollat] <- isoinAlleeli + 1 dataApu[nollat] <- isoinAlleeli + 1
@ -39,9 +38,12 @@ handleData <- function(raw_data) {
alleelitLokuksessa <- cell(nloci, 1) alleelitLokuksessa <- cell(nloci, 1)
for (i in 1:nloci) { for (i in 1:nloci) {
alleelitLokuksessaI <- unique(data[, i]) alleelitLokuksessaI <- unique(data[, i])
alleelitLokuksessa[i, 1] <- alleelitLokuksessaI[ alleelitLokuksessaI_pos <- find(alleelitLokuksessaI >= 0)
find(alleelitLokuksessaI >= 0) alleelitLokuksessa[i, 1] <- ifelse(
] test = length(alleelitLokuksessaI_pos) > 0,
yes = alleelitLokuksessaI[alleelitLokuksessaI_pos],
no = 0
)
noalle[i] <- length(alleelitLokuksessa[i, 1]) noalle[i] <- length(alleelitLokuksessa[i, 1])
} }
alleleCodes <- zeros(max(noalle), nloci) alleleCodes <- zeros(max(noalle), nloci)
@ -65,10 +67,10 @@ handleData <- function(raw_data) {
emptyRow <- repmat(a, c(1, ncols)) emptyRow <- repmat(a, c(1, ncols))
lessThanMax <- find(rowsFromInd < maxRowsFromInd) lessThanMax <- find(rowsFromInd < maxRowsFromInd)
missingRows <- maxRowsFromInd * nind - nrows missingRows <- maxRowsFromInd * nind - nrows
data <- as.matrix(c(data, zeros(missingRows, ncols))) data <- rbind(data, zeros(missingRows, ncols))
pointer <- 1 pointer <- 1
for (ind in t(lessThanMax)) { #K?y l?pi ne yksil?t, joilta puuttuu rivej? for (ind in t(lessThanMax)) { #K?y l?pi ne yksil?t, joilta puuttuu rivej?
miss = maxRowsFromInd-rowsFromInd(ind); # T?lt?yksil?lt?puuttuvien lkm. miss <- maxRowsFromInd - rowsFromInd(ind) # T?lt?yksil?lt?puuttuvien lkm.
} }
data <- sortrows(data, ncols) # Sorttaa yksil?iden mukaisesti data <- sortrows(data, ncols) # Sorttaa yksil?iden mukaisesti
newData <- data newData <- data
@ -84,12 +86,12 @@ handleData <- function(raw_data) {
priorTerm <- priorTerm + noalle[j] * lgamma(1 / noalle[j]) priorTerm <- priorTerm + noalle[j] * lgamma(1 / noalle[j])
} }
out <- list( out <- list(
newData = newData, newData = newData,
rowsFromInd = rowsFromInd, rowsFromInd = rowsFromInd,
alleleCodes = alleleCodes, alleleCodes = alleleCodes,
noalle = noalle, noalle = noalle,
adjprior = adjprior, adjprior = adjprior,
priorTerm = priorTerm priorTerm = priorTerm
) )
return(out) return(out)
} }