Translated addAlleles

This commit is contained in:
Waldir Leoncio 2020-06-24 16:47:39 +02:00
parent a671895caa
commit d074de07f4
4 changed files with 73 additions and 42 deletions

View file

@ -1,5 +1,6 @@
# Generated by roxygen2: do not edit by hand # Generated by roxygen2: do not edit by hand
export(addAlleles)
export(admix1) export(admix1)
export(calculatePopLogml) export(calculatePopLogml)
export(colon) export(colon)

49
R/addAlleles.R Normal file
View file

@ -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<69><6C> ind vastaavat rivit. Yksil<69>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)
}

View file

@ -1580,48 +1580,6 @@ greedyMix <- function(
# %------------------------------------------------------ # %------------------------------------------------------
# function data = addAlleles(data, ind, line, divider)
# % Lisaa BAPS-formaatissa olevaan datataulukkoon
# % yksil<69><6C> ind vastaavat rivit. Yksil<69>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) # function loggis = laskeLoggis(counts, sumcounts, adjprior)
# npops = size(counts,3); # npops = size(counts,3);

23
man/addAlleles.Rd Normal file
View file

@ -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
}