---
title: "Demonstrate joyplot"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Demonstrate joyplot}
  %\VignetteEngine{knitr::rmarkdown}
  \usepackage[utf8]{inputenc}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
knitr::opts_chunk$set(fig.width = 6)
```

```{r}
library(GenomeAdmixR)
library(ggplot2)
packageVersion("GenomeAdmixR")
```

# Demonstration of how to use joyplots
To demonstrate the applicability and versatility of joyplots, we create a 
population, and select on this population on two separate locations, for two 
different ancestors.

```{r setup select_matrix}
select_matrix <- matrix(ncol = 5, nrow = 2)
s <- 0.1
select_matrix[1, ] <- c(0.23, 1.0, 1 + 0.5 * s, 1 + s, 0)
select_matrix[2, ] <- c(0.27, 1.0, 1 + 0.5 * s, 1 + s, 1)

markers <- seq(from = 0.2, to = 0.3, length.out = 100)
```
We track frequencies of all ancestors in the range [0.2, 0.3], using 100 
markers.

```{r simulate}
selected_pop <- simulate_admixture(
                    module = ancestry_module(number_of_founders = 2,
                                             morgan = 1,
                                             markers = markers),
                    pop_size = 100,
                    total_runtime = 1001,
                    select_matrix = select_matrix)
```
We can now plot all the ancestors over time, we choose here to plot them only for a select subset of times.

```{r joyplot all}
time_points <- seq(from = 0, to = 1000, by = 100)
plot_joyplot_frequencies(selected_pop$frequencies,
                         time_points,
                         picked_ancestor = "ALL")
```

Alternatively, we can plot them separately.
```{r joyplot separate 0}
p1 <- plot_joyplot_frequencies(selected_pop$frequencies,
                               time_points,
                               picked_ancestor = 0)
p1 + ggplot2::geom_vline(xintercept = 0.23, lty = 2)
```
And for the other ancestor:
```{r joyplot separate 1}
p2 <- plot_joyplot_frequencies(selected_pop$frequencies,
                               time_points,
                               picked_ancestor = 1)
p2 + ggplot2::geom_vline(xintercept = 0.27, lty = 2)
```