knitr::opts_chunk$set(cache=TRUE)
knitr::opts_chunk$set(autodep=FALSE)
knitr::opts_chunk$set(echo=TRUE)
knitr::opts_chunk$set(error=FALSE)
knitr::opts_chunk$set(warning=FALSE)
knitr::opts_chunk$set(message=FALSE)

On simulated data

We simulate data

data = TESS3enchoSen::sampleTESS2.3(100,
                     20000,
                     1,
                     3 ,
                     TESS3enchoSen::SampleDistDFromCenterQ(0.1))

tmpFile = tempfile()
tmpFile.geno = paste0(tmpFile,".geno")
tmpFile.coord = paste0(tmpFile,".coord")
LEA::write.geno(data$X,tmpFile.geno)
write.table(data$coord,tmpFile.coord,row.names = FALSE, col.names = FALSE)

Comparison TESS3 and TESS3EnchoSen

# With the good K
tess3r.obj = tess3r::TESS3(tmpFile.geno, tmpFile.coord, K = 3, ploidy = 1)
tess3enchosen.obj = TESS3enchoSen::TESS3(data$X,data$coord, K=3, ploidy = 1, lambda = 1.0) 
BioCompToolsR::rmse_withBestPermutation(tess3r::Q(tess3r.obj,K = 3, run = 1), tess3enchosen.obj$Q)
BioCompToolsR::rmse_withBestPermutation(tess3r::G(tess3r.obj,K = 3, run = 1), tess3enchosen.obj$G)

# With an other K
K = 5
tess3r.obj = tess3r::TESS3(tmpFile.geno, tmpFile.coord, K = K, ploidy = 1)
tess3enchosen.obj = TESS3enchoSen::TESS3(data$X,data$coord, K=K, ploidy = 1, lambda = 1.0, max.iteration = 35) 
BioCompToolsR::rmse_withBestPermutation(tess3r::Q(tess3r.obj,K = K, run = 1), tess3enchosen.obj$Q)
BioCompToolsR::rmse_withBestPermutation(tess3r::G(tess3r.obj,K = K, run = 1), tess3enchosen.obj$G)

On a true dataset

Read data

at.geno = "~/PatatorHomeDir/Data/At/At.geno"
at.coord = "~/PatatorHomeDir/Data/At/coord_european.txt"

data.at = list()
data.at$X = LEA::read.geno(at.geno)
data.at$coord = read.table(at.coord)

Comparison TESS3 and TESS3EnchoSen

K = 3
tess3r.obj <- tess3r::TESS3(at.geno, at.coord, K = K,ploidy = 2, entropy = FALSE, project = "new")
tess3enchosen.obj = TESS3enchoSen::TESS3(data.at$X,
                                         data.at$coord, K = K, ploidy = 2, lambda = 1.0)
BioCompToolsR::rmse_withBestPermutation(tess3r::Q(tess3r.obj,K = K, run = 1), tess3enchosen.obj$Q)
BioCompToolsR::rmse_withBestPermutation(tess3r::G(tess3r.obj,K = K, run = 1), tess3enchosen.obj$G)

TESS3enchosen use more memory (because we store data un a double matrix).

Plot results :

TESS3enchoSen::PlotAncestryCoef(tess3r::Q(tess3r.obj,K = K, run = 1),data.at$coord)
TESS3enchoSen::PlotAncestryCoef(tess3enchosen.obj$Q,data.at$coord)

Comparison with sNMF

K = 3
snmf.obj <- LEA::snmf(at.geno, K = K,ploidy = 2, entropy = FALSE, project = "new")

Plot results :

TESS3enchoSen::PlotAncestryCoef(LEA::Q(snmf.obj,K = K, run = 1),data.at$coord)

Comparison with TESS3EnchoSen OQA

# K = 3
# tess3enchosen.oqa.obj = TESS3enchoSen::TESS3(data.at$X,
#                                          data.at$coord, K = K, ploidy = 2, lambda = 1.0, method = "OQA")
# TESS3enchoSen::PlotAncestryCoef(tess3enchosen.oqa.obj$Q,data.at$coord)


cayek/TESS3_encho_sen documentation built on July 4, 2023, 7:51 p.m.