Run_Scripts/05_subsample_populations.R

library(ProgInRBCIfunc)
library(devtools)
library(tidyr)
library(ggplot2)
library(rdiversity)
library(BCI)

source("create_datasets.R")

#' ## Tree pop
#'

tree.pop10 <- sample_by_individuals(tree.pop, 10)
tree.pop100 <- sample_by_individuals(tree.pop, 100)
tree.pop1000 <- sample_by_individuals(tree.pop, 1000)
tree.pop10000 <- sample_by_individuals(tree.pop, 10000)
tree.pop20000 <- sample_by_individuals(tree.pop, 20000)

q <- c(0:20)

tree.popdq <- multi_q_diversity4(tree.pop, q)
tree.pop10dq <- multi_q_diversity4(tree.pop10, q)
tree.pop100dq <- multi_q_diversity4(tree.pop100, q)
tree.pop1000dq <- multi_q_diversity4(tree.pop1000, q)
tree.pop10000dq <- multi_q_diversity4(tree.pop10000, q)
tree.pop20000dq <- multi_q_diversity4(tree.pop20000, q)
raw_sub_alpha(tree.pop, q)

df.Dq.values <- as.data.frame(q)

df.Dq.values <- cbind(df.Dq.values, tree.pop10dq)
df.Dq.values <- cbind(df.Dq.values, tree.pop100dq)
df.Dq.values <- cbind(df.Dq.values, tree.pop1000dq)
df.Dq.values <- cbind(df.Dq.values, tree.pop10000dq)
df.Dq.values <- cbind(df.Dq.values, tree.pop20000dq)
df.Dq.values <- cbind(df.Dq.values, tree.popdq)

df.Dq.useful <- gather(df.Dq.values, Population, Dq, 2:7)

ggplot(data = df.Dq.useful, aes(x = q, y = Dq)) +
  geom_line(aes(col = Population)) +
  theme_bw()

#' --------------------------------------------------------------------------------------
#' ## One pop
#'

one.pop10 <- sample_by_individuals(one.pop, 10)
one.pop100 <- sample_by_individuals(one.pop, 100)
one.pop1000 <- sample_by_individuals(one.pop, 1000)
one.pop10000 <- sample_by_individuals(one.pop, 10000)
one.pop20000 <- sample_by_individuals(one.pop, 20000)

q <- c(0:20)

one.popdq <- multi_q_diversity4(one.pop, q)
one.pop10dq <- multi_q_diversity4(one.pop10, q)
one.pop100dq <- multi_q_diversity4(one.pop100, q)
one.pop1000dq <- multi_q_diversity4(one.pop1000, q)
one.pop10000dq <- multi_q_diversity4(one.pop10000, q)
one.pop20000dq <- multi_q_diversity4(one.pop20000, q)

df.Dq.values.op <- as.data.frame(q)

df.Dq.values.op <- cbind(df.Dq.values.op, one.pop10dq)
df.Dq.values.op <- cbind(df.Dq.values.op, one.pop100dq)
df.Dq.values.op <- cbind(df.Dq.values.op, one.pop1000dq)
df.Dq.values.op <- cbind(df.Dq.values.op, one.pop10000dq)
df.Dq.values.op <- cbind(df.Dq.values.op, one.pop20000dq)
df.Dq.values.op <- cbind(df.Dq.values.op, one.popdq)

df.Dq.useful.op <- gather(df.Dq.values.op, Population, Dq, 2:7)

ggplot(data = df.Dq.useful.op, aes(x = q, y = Dq)) +
  geom_line(aes(col = Population)) +
  theme_bw()

#' --------------------------------------------------------------------------------------
#' ## Uneven pop
#'

uneven.pop10 <- sample_by_individuals(uneven.pop, 10)
uneven.pop100 <- sample_by_individuals(uneven.pop, 100)
uneven.pop1000 <- sample_by_individuals(uneven.pop, 1000)
uneven.pop10000 <- sample_by_individuals(uneven.pop, 10000)
uneven.pop20000 <- sample_by_individuals(uneven.pop, 20000)

q <- c(0:20)

uneven.popdq <- multi_q_diversity4(uneven.pop, q)
uneven.pop10dq <- multi_q_diversity4(uneven.pop10, q)
uneven.pop100dq <- multi_q_diversity4(uneven.pop100, q)
uneven.pop1000dq <- multi_q_diversity4(uneven.pop1000, q)
uneven.pop10000dq <- multi_q_diversity4(uneven.pop10000, q)
uneven.pop20000dq <- multi_q_diversity4(uneven.pop20000, q)

df.Dq.values.un <- as.data.frame(q)

df.Dq.values.un <- cbind(df.Dq.values.un, uneven.pop10dq)
df.Dq.values.un <- cbind(df.Dq.values.un, uneven.pop100dq)
df.Dq.values.un <- cbind(df.Dq.values.un, uneven.pop1000dq)
df.Dq.values.un <- cbind(df.Dq.values.un, uneven.pop10000dq)
df.Dq.values.un <- cbind(df.Dq.values.un, uneven.pop20000dq)
df.Dq.values.un <- cbind(df.Dq.values.un, uneven.popdq)

df.Dq.useful.un <- gather(df.Dq.values.un, Population, Dq, 2:7)

ggplot(data = df.Dq.useful.un, aes(x = q, y = Dq)) +
  geom_line(aes(col = Population)) +
  theme_bw()


#' --------------------------------------------------------------------------------------
#' ## Mixed pop
#'

mixed.pop10 <- sample_by_individuals(mixed.pop, 10)
mixed.pop100 <- sample_by_individuals(mixed.pop, 100)
mixed.pop1000 <- sample_by_individuals(mixed.pop, 1000)
mixed.pop10000 <- sample_by_individuals(mixed.pop, 10000)
mixed.pop20000 <- sample_by_individuals(mixed.pop, 20000)

q <- c(0:20)

mixed.popdq <- multi_q_diversity4(mixed.pop, q)
mixed.pop10dq <- multi_q_diversity4(mixed.pop10, q)
mixed.pop100dq <- multi_q_diversity4(mixed.pop100, q)
mixed.pop1000dq <- multi_q_diversity4(mixed.pop1000, q)
mixed.pop10000dq <- multi_q_diversity4(mixed.pop10000, q)
mixed.pop20000dq <- multi_q_diversity4(mixed.pop20000, q)

library(rdiversity) # Load the rdiversity package
meta <- metacommunity(mixed.pop) # create an object which stores information which the rdiversity package uses to calculate diversity
res <- meta_gamma(meta, qs = seq(from = 0, to = 20)) # Create a dataframe of the biodiversity of the whole metacommunitiy at values of q 1-5
plot(diversity ~ q, type = "l", data = res)
plot(q, mixed.popdq)

df.Dq.values.mp <- as.data.frame(q)

df.Dq.values.mp <- cbind(df.Dq.values.mp, mixed.pop10dq)
df.Dq.values.mp <- cbind(df.Dq.values.mp, mixed.pop100dq)
df.Dq.values.mp <- cbind(df.Dq.values.mp, mixed.pop1000dq)
df.Dq.values.mp <- cbind(df.Dq.values.mp, mixed.pop10000dq)
df.Dq.values.mp <- cbind(df.Dq.values.mp, mixed.pop20000dq)
df.Dq.values.mp <- cbind(df.Dq.values.mp, mixed.popdq)

df.Dq.useful.mp <- gather(df.Dq.values.mp, Population, Dq, 2:7)

ggplot(data = df.Dq.useful.mp, aes(x = q, y = Dq)) +
  geom_line(aes(col = Population)) +
  theme_bw()


#' --------------------------------------------------------------------------------------
#' ## Even pop
#'

even.pop10 <- sample_by_individuals(even.pop, 10)
even.pop100 <- sample_by_individuals(even.pop, 100)
even.pop1000 <- sample_by_individuals(even.pop, 1000)
even.pop10000 <- sample_by_individuals(even.pop, 10000)
even.pop20000 <- sample_by_individuals(even.pop, 20000)

q <- c(0:20)

even.popdq <- multi_q_diversity4(even.pop, q)
even.pop10dq <- multi_q_diversity4(even.pop10, q)
even.pop100dq <- multi_q_diversity4(even.pop100, q)
even.pop1000dq <- multi_q_diversity4(even.pop1000, q)
even.pop10000dq <- multi_q_diversity4(even.pop10000, q)
even.pop20000dq <- multi_q_diversity4(even.pop20000, q)

df.Dq.values.ev <- as.data.frame(q)

df.Dq.values.ev <- cbind(df.Dq.values.ev, even.pop10dq)
df.Dq.values.ev <- cbind(df.Dq.values.ev, even.pop100dq)
df.Dq.values.ev <- cbind(df.Dq.values.ev, even.pop1000dq)
df.Dq.values.ev <- cbind(df.Dq.values.ev, even.pop10000dq)
df.Dq.values.ev <- cbind(df.Dq.values.ev, even.pop20000dq)
df.Dq.values.ev <- cbind(df.Dq.values.ev, even.popdq)

df.Dq.useful.ev <- gather(df.Dq.values.ev, Population, Dq, 2:7)

ggplot(data = df.Dq.useful.ev, aes(x = q, y = Dq)) +
  geom_line(aes(col = Population)) +
  theme_bw()

#'
#'-----------------------------------------------------------------------------
#'
#' ## Graphical comparison for multiple repeats of small sample collection
#'
new.graph <- TRUE
for(i in 1:20){
  # we define a dataframe which will contain our model results
  small.even.populations <-
    sample_by_individuals(even.pop, 100)
  small.even.diversity <-
    multi_q_diversity4(small.even.populations, q)
  # plot our results
  if (new.graph) {
    plot(q, small.even.diversity, type = 'l')
    new.graph <- FALSE
  } else {
    lines(q, small.even.diversity)
  }
  # change new.graph to false, so that each subsequnt run of the function after the first will produce a
  # new line on the same image
  new.graph <- F
}
plot(q, even.popdq, type = 'l')


new.graph = TRUE
for(i in 1:20){
  # we define a dataframe which will contain our model results
  small.mixed.populations <-
    sample_by_individuals(mixed.pop, 1000)
  small.mixed.diversity <-
    multi_q_diversity4(small.mixed.populations, q)
  # plot our results
  if (new.graph) {
    plot(q, small.mixed.diversity, type = 'l')
    new.graph <- FALSE
  } else {
    lines(q, small.mixed.diversity)
  }
  # change new.graph to false, so that each subsequnt run of the function after the first will produce a
  # new line on the same image
  new.graph <- F
}
EdieBishop/ProgInRBCIfunc documentation built on Dec. 23, 2019, 10:16 p.m.