diff --git a/DESCRIPTION b/DESCRIPTION
index 4a1fd15..0177786 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -36,7 +36,7 @@ Description: Partial R implementation of the BAPS software
License: GPL-3
BugReports: https://github.com/ocbe-uio/rBAPS/issues
Encoding: UTF-8
-RoxygenNote: 7.1.2
+RoxygenNote: 7.2.0
Suggests:
testthat (>= 2.1.0)
Imports:
diff --git a/NAMESPACE b/NAMESPACE
index 3237aff..43dbeb2 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -11,6 +11,7 @@ export(etsiParas)
export(fgetl)
export(fopen)
export(greedyMix)
+export(greedyPopMix)
export(handleData)
export(handlePopData)
export(initPopNames)
@@ -64,6 +65,7 @@ importFrom(matlab2r,sortrows)
importFrom(matlab2r,squeeze)
importFrom(matlab2r,strcmp)
importFrom(matlab2r,times)
+importFrom(matlab2r,uiputfile)
importFrom(matlab2r,zeros)
importFrom(methods,is)
importFrom(stats,runif)
diff --git a/R/greedyMix.R b/R/greedyMix.R
index 624c529..8b26f28 100644
--- a/R/greedyMix.R
+++ b/R/greedyMix.R
@@ -46,4 +46,5 @@ greedyMix <- function(data, format, verbose = TRUE) {
stop("Format not supported.")
}
return(out)
+ # TODO: add handleData(out) or some other post-processing of data
}
diff --git a/R/greedyPopMix.R b/R/greedyPopMix.R
index cb8c660..6b25f9e 100644
--- a/R/greedyPopMix.R
+++ b/R/greedyPopMix.R
@@ -8,13 +8,31 @@
#' @importFrom vcfR read.vcfR
#' @importFrom Rsamtools scanBam
#' @importFrom adegenet read.genepop .readExt
+#' @importFrom matlab2r uiputfile
#' @references Samtools: a suite of programs for interacting
#' with high-throughput sequencing data.
#' @export
greedyPopMix <- function(data, format, partitionCompare = NULL, verbose = TRUE) {
# Replacing original file reading code with greedyMix()
- greedyMix(data, format, verbose)
- # TODO: find out where the elements above come from. Maybe greedyMix should create them?
+ rawdata <- greedyMix(data, format, verbose)
+
+ # Other function calls to produce necessary objects
+ data_greedyMix_handle <- handlePopData(rawdata)
+ data <- data_greedyMix_handle$data
+ rowsFromInd <- data_greedyMix_handle$rowsFromInd
+ alleleCodes <- data_greedyMix_handle$alleleCodes
+ noalle <- data_greedyMix_handle$noalle
+ adjprior <- data_greedyMix_handle$adjprior
+ priorTerm <- data_greedyMix_handle$priorTerm
+ rm(data_greedyMix_handle)
+ Z_dist <- getPopDistancesByKL(adjprior)
+ Z_dist$Z -> Z
+ Z_dist$dist -> dist
+ rm(Z_dist)
+ a_data <- data[, 1:(ncol(data) - 1)]
+ sumcounts_counts_logml <- initialPopCounts(a_data, npops, rows, noalle, adjprior)
+ sumcounts_counts_logml$logml -> logml
+ rm(sumcounts_counts_logml)
c <- list()
c$data <- data
c$rows <- rows
@@ -34,10 +52,10 @@ greedyPopMix <- function(data, format, partitionCompare = NULL, verbose = TRUE)
for (i in 1:npartitions) {
# number of unique partition lables
npops <- length(unique(partitions[, i]))
- partitionInd <- zeros(rows(end), 1)
+ partitionInd <- zeros(length(rows), 1)
partitionSample <- partitions[, i]
for (j in 1:nsamplingunits) {
- partitionInd[c$rows[j, 1]:c.rows[j, 2]] <- partitionSample[j]
+ partitionInd[c$rows[j, 1]:c$rows[j, 2]] <- partitionSample[j]
}
partitionLogml[i] <- initialCounts(
partitionInd, data[, 1:(ncol(data) - 1)], npops, c$rows, noalle,
@@ -47,17 +65,21 @@ greedyPopMix <- function(data, format, partitionCompare = NULL, verbose = TRUE)
# return the logml result
partitionCompare$logmls <- partitionLogml
}
- data = data(:,1:end-1);
data <- data[, 1:(ncol(data) - 1)]
+ logml_npops_partitionSummary <- indMix(c)
+ logml_npops_partitionSummary$logml -> logml
+ logml_npops_partitionSummary$npops -> npops
+ logml_npops_partitionSummary$partitionSummary -> partitionSummary
+ rm(logml_npops_partitionSummary)
changesInLogml <- writeMixtureInfoPop(
logml, rows, data, adjprior, priorTerm,
- outp, inp, partitionSummary, popnames, fixedK
+ NULL, NULL, partitionSummary, popnames, fixedK = FALSE
)
talle <- questdlg(
'Do you want to save the mixture populations so that you can use them later in admixture analysis?',
'Save results?', c('Yes', 'No'), 'Yes'
)
- if (isequal(talle, 'Yes')) {
+ if (tolower(talle) == 'yes') {
waitALittle()
filename_pathname <- uiputfile()
if (rowsFromInd == 0) {
diff --git a/R/waitALittle.R b/R/waitALittle.R
index f448afc..ca8e314 100644
--- a/R/waitALittle.R
+++ b/R/waitALittle.R
@@ -1,4 +1,4 @@
waitALittle <- function() {
A <- rand(500)
- invisible(gammaln(A))
+ invisible(matlab2r::gammaln(A))
}
diff --git a/man/greedyPopMix.Rd b/man/greedyPopMix.Rd
new file mode 100644
index 0000000..cccc077
--- /dev/null
+++ b/man/greedyPopMix.Rd
@@ -0,0 +1,25 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/greedyPopMix.R
+\name{greedyPopMix}
+\alias{greedyPopMix}
+\title{Clustering of pop individuals}
+\usage{
+greedyPopMix(data, format, partitionCompare = NULL, verbose = TRUE)
+}
+\arguments{
+\item{data}{data file}
+
+\item{format}{Data format. Format supported: "FASTA", "VCF" ,"BAM", "GenePop"}
+
+\item{partitionCompare}{a properly-named list. Proper names include
+"partitions"}
+
+\item{verbose}{if \code{TRUE}, prints extra output information}
+}
+\description{
+Clustering of pop individuals
+}
+\references{
+Samtools: a suite of programs for interacting
+with high-throughput sequencing data.
+}
diff --git a/matlab/independent/greedyPopMix.m b/matlab/independent/greedyPopMix.m
index b8abe97..02d388a 100644
--- a/matlab/independent/greedyPopMix.m
+++ b/matlab/independent/greedyPopMix.m
@@ -88,7 +88,7 @@ elseif isequal(input_type,'GenePop-format')
end
if ~isequal(input_type, 'Preprocessed data')
- a_data = data(:,1:end-1);
+ 2
npops = size(rows,1);
PARTITION = 1:npops'; %Jokainen "yksil? eli populaatio on oma ryhmäns?