diff --git a/NAMESPACE b/NAMESPACE index d864e27..81c1201 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,5 +1,6 @@ # Generated by roxygen2: do not edit by hand +export(addAlleles) export(admix1) export(calculatePopLogml) export(colon) diff --git a/R/addAlleles.R b/R/addAlleles.R new file mode 100644 index 0000000..c51e367 --- /dev/null +++ b/R/addAlleles.R @@ -0,0 +1,49 @@ +#' @title Add Alleles +#' @param data data +#' @param ind ind +#' @param line line +#' @param divider divider +#' @return data (after alleles were added) +#' @export +addAlleles <- function(data, ind, line, divider) { + # Lisaa BAPS-formaatissa olevaan datataulukkoon + # yksil�� ind vastaavat rivit. Yksil�n alleelit + # luetaan genepop-formaatissa olevasta rivist? + # line. Jos data on 3 digit formaatissa on divider=1000. + # Jos data on 2 digit formaatissa on divider=100. + + nloci <- size(data, 2) - 1 + if (size(data, 1) < (2 * ind)) { + data <- c(data, zeros(100, nloci + 1)) + } + + k <- 1 + merkki <- line[k] + while (merkki != ',') { + k <- k + 1 + merkki <- line[k] + } + line <- line[k + 1:length(line)] + # clear k; clear merkki; + + alleeliTaulu <- as.numeric(strsplit(line, split = " ")[[1]]) + + + if (length(alleeliTaulu) != nloci) { + stop('Incorrect data format.') + } + + for (j in seq_len(nloci)) { + ekaAlleeli <- floor(alleeliTaulu[j] / divider) + if (ekaAlleeli == 0) ekaAlleeli <- -999 + tokaAlleeli <- alleeliTaulu[j] %% divider + if (tokaAlleeli == 0) tokaAlleeli <- -999 + + data[2 * ind - 1, j] <- ekaAlleeli + data[2 * ind, j] <- tokaAlleeli + } + + data[2 * ind - 1,end] <- ind + data[2 * ind, end] <- ind + return(data) +} \ No newline at end of file diff --git a/R/greedyMix.R b/R/greedyMix.R index de6b70c..8ea16e0 100644 --- a/R/greedyMix.R +++ b/R/greedyMix.R @@ -1580,48 +1580,6 @@ greedyMix <- function( # %------------------------------------------------------ -# function data = addAlleles(data, ind, line, divider) -# % Lisaa BAPS-formaatissa olevaan datataulukkoon -# % yksil�� ind vastaavat rivit. Yksil�n alleelit -# % luetaan genepop-formaatissa olevasta rivist? -# % line. Jos data on 3 digit formaatissa on divider=1000. -# % Jos data on 2 digit formaatissa on divider=100. - -# nloci = size(data,2)-1; -# if size(data,1) < 2*ind -# data = [data; zeros(100,nloci+1)]; -# end - -# k=1; -# merkki=line(k); -# while ~isequal(merkki,',') -# k=k+1; -# merkki=line(k); -# end -# line = line(k+1:end); -# clear k; clear merkki; - -# alleeliTaulu = sscanf(line,'%d'); - -# if length(alleeliTaulu)~=nloci -# disp('Incorrect data format.'); -# end - -# for j=1:nloci -# ekaAlleeli = floor(alleeliTaulu(j)/divider); -# if ekaAlleeli==0 ekaAlleeli=-999; end; -# tokaAlleeli = rem(alleeliTaulu(j),divider); -# if tokaAlleeli==0 tokaAlleeli=-999; end - -# data(2*ind-1,j) = ekaAlleeli; -# data(2*ind,j) = tokaAlleeli; -# end - -# data(2*ind-1,end) = ind; -# data(2*ind,end) = ind; - -# %------------------------------------------------------ - # function loggis = laskeLoggis(counts, sumcounts, adjprior) # npops = size(counts,3); diff --git a/man/addAlleles.Rd b/man/addAlleles.Rd new file mode 100644 index 0000000..4c24818 --- /dev/null +++ b/man/addAlleles.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/addAlleles.R +\name{addAlleles} +\alias{addAlleles} +\title{Add Alleles} +\usage{ +addAlleles(data, ind, line, divider) +} +\arguments{ +\item{data}{data} + +\item{ind}{ind} + +\item{line}{line} + +\item{divider}{divider} +} +\value{ +data (after alleles were added) +} +\description{ +Add Alleles +}