Nothing
#' @title sample_tableToList
#' @author Oyvind Bleka
#' @description Converting table to list format (helpfunction)
#' @param table A table with data (Evid or refs)
#' @return outL A data list
#' @export
sample_tableToList <- function(table) {
colname <- colnames(table) # colnames in file
lind <- grep("marker", tolower(colname), fixed = TRUE) # locus col-ind
if (length(lind) == 0) lind <- grep("loc", tolower(colname), fixed = TRUE) # try another name
sind <- grep("sample", tolower(colname), fixed = TRUE) # sample col-ind
if (length(sind) > 1) sind <- sind[grep("name", tolower(colname[sind]), fixed = TRUE)] # use only sample name
A_ind <- grep("allele", tolower(colname), fixed = TRUE) # allele col-ind
H_ind <- grep("height", tolower(colname), fixed = TRUE) # height col-ind
locs <- unique(toupper(table[, lind])) # locus names: Use uniques and Convert to upper case
samplenames <- unique(as.character(table[, sind])) # sample names
outL <- list() # Init outList (insert non-empty characters):
for (samplename in samplenames) { # for each sample in matrix
outL[[samplename]] <- list() # one list for each sample
for (loc in locs) { # for each locus
rowinds <- which(table[, sind] == samplename & toupper(table[, lind]) == loc) # get row index in table for given sample and locus
if (sum(rowinds) == 0) next # no data found (skip marker)
alleles <- heights <- numeric() # init vector with data
for (rowind in rowinds) { # for each row indices
av <- table[rowind, A_ind] # obtain raw alleles
keep <- !is.na(av) & !(av %in% c("", " ")) # get boolean vector of alleles to keep
alleles <- c(alleles, table[rowind, A_ind[keep]]) # extract allele(s), be be levels
if (length(H_ind) > 0) {
heights <- c(heights, table[rowind, H_ind[keep]]) # extract peak heights (intensities)
}
} # end for each rows
insAlleles <- character() # default if no data
insHeights <- numeric() # default if no data
if (length(alleles) > 0) { # if any data to store:
if (length(A_ind) > 0) insAlleles <- as.character(alleles)
if (length(H_ind) > 0) insHeights <- as.numeric(as.character(heights))
}
if (length(A_ind) > 0) outL[[samplename]][[loc]]$adata <- insAlleles
if (length(H_ind) > 0) outL[[samplename]][[loc]]$hdata <- insHeights
} # end for each loci
} # end for each samples
return(outL)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.