## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## -----------------------------------------------------------------------------
DataSim <- AdmixPoly::SimulatePop(K=3L, N=50L, P=8L, M=200L, C=2L, L=10L, NbThreads = 1)

## -----------------------------------------------------------------------------
head(DataSim$Geno[[1]])

## -----------------------------------------------------------------------------
head(DataSim$Prop)

## -----------------------------------------------------------------------------
DataSim$Freq[[1]]

## -----------------------------------------------------------------------------
head(DataSim$GeneticMap)

## -----------------------------------------------------------------------------
ResGlobalAdmix <- AdmixPoly::AdmixGlobal(Geno=DataSim$Geno, K=3L, MaxIter=100, Verbose=F, NbThreads = 1)

## -----------------------------------------------------------------------------
head(ResGlobalAdmix$Prop)

## ----fig.width=7, fig.height=3------------------------------------------------
AdmixPoly::GlobalPlot(ResGlobalAdmix$Prop)

## -----------------------------------------------------------------------------
group_corresp <- apply(cor(DataSim$Prop, ResGlobalAdmix$Prop), 2, which.max)
sqrt(mean((DataSim$Prop-ResGlobalAdmix$Prop[,group_corresp])^2))

## -----------------------------------------------------------------------------
ResGlobalAdmix$Freq[[1]]

## ----fig.width=7, fig.height=4------------------------------------------------
plot(ResGlobalAdmix$LogLik, xlab="Iterations", ylab="LogLik", type="o")

## -----------------------------------------------------------------------------
DataSim2 <- AdmixPoly::SimulatePop(K=3L, N=50L, P=8L, M=200L, C=2L, L=10L,
                                   AlphaProp=10, Freq=DataSim$Freq, NbThreads = 1)

## ----fig.width=7, fig.height=3------------------------------------------------
AdmixPoly::GlobalPlot(DataSim2$Prop)

## -----------------------------------------------------------------------------
ResGlobalAdmix2 <- AdmixPoly::AdmixGlobal(Geno=DataSim2$Geno, K=3L, MaxIter=100, Verbose=F, 
                                          FreqInit=ResGlobalAdmix$Freq, ParamToUpdate="Prop",
                                          NbThreads=1)

## -----------------------------------------------------------------------------
sqrt(mean((DataSim2$Prop-ResGlobalAdmix2$Prop[,group_corresp])^2))

## -----------------------------------------------------------------------------
Ind <- "Ind1"
ResLocalAdmix <- AdmixPoly::AdmixLocal(Geno=DataSim$Geno, ResAdmixGlobal=ResGlobalAdmix,
                                       GeneticMap=DataSim$GeneticMap, Ind=Ind, P = 8L,
                                       SmoothParam=1, Verbose=F, NbThreads = 1)

## -----------------------------------------------------------------------------
head(ResLocalAdmix$Posterior$Chr1)

## -----------------------------------------------------------------------------
head(ResLocalAdmix$Viterbi$Chr1)

## -----------------------------------------------------------------------------
sqrt(mean((DataSim$Ancestry[[Ind]]$Chr1/8-ResLocalAdmix$Posterior$Chr1[,group_corresp]/8)^2))
sqrt(mean((DataSim$Ancestry[[Ind]]$Chr1/8-ResLocalAdmix$Viterbi$Chr1[,group_corresp]/8)^2))

## ----fig.width=7, fig.height=4------------------------------------------------
AdmixPoly::LocalPlot(Ancestry = ResLocalAdmix$Posterior, GeneticMap=DataSim$GeneticMap)

## -----------------------------------------------------------------------------
ResLocalAdmix_list <- lapply(paste0("Ind",1:5),function(i){
  res_i <- AdmixPoly::AdmixLocal(Geno=DataSim$Geno, ResAdmixGlobal=ResGlobalAdmix,
                               GeneticMap=DataSim$GeneticMap, Ind=i, P=8L,
                               SmoothParam=1, Verbose=F, NbThreads=1)
  return(res_i)
})

## ----results=FALSE------------------------------------------------------------
vcf_path <- system.file("extdata", "Test.vcf", package="AdmixPoly")
DataVCF <- AdmixPoly::ReadVCF(File=vcf_path, NbThreads=1)

## -----------------------------------------------------------------------------
head(DataVCF$MarkerInfo)

## -----------------------------------------------------------------------------
head(DataVCF$Geno[[1]])

## -----------------------------------------------------------------------------
head(DataVCF$GeneticMap)

## ----results=FALSE------------------------------------------------------------
DataVCF2 <- AdmixPoly::ReadVCF(File = vcf_path,AlleleDepthField = "AD",NbThreads = 1)

## -----------------------------------------------------------------------------
head(DataVCF2$Geno[[1]])

## ----results=FALSE------------------------------------------------------------
hpa_path <- system.file("extdata", "Test.hpa", package="AdmixPoly")
DataHPA <- AdmixPoly::ReadHPA(File=hpa_path, NbThreads=1)

## -----------------------------------------------------------------------------
head(DataHPA$Geno[[1]])

