foss_data <- read.table("mukunda_foss.log", sep = '\t',  head = TRUE)
library(FossilSim)
library(tidyverse)
foss_sample <- function(n_extant, n_trees, data_frame, mu, lambda, psi, row, mers)
{

  max_num <- max(c(length(mu), length(lambda), length(psi)))


  if(length(mu) == 1) 
        {  
          mi <- rep(data_frame[row, mu], times = max_num)
      } else {
          mi <- c()
          for (i in mu) {
            mi <- append(mi, data_frame[row,i])
          }
      }

  if(length(lambda) == 1) 
        {  
          li <- rep(data_frame[row, lambda], times = max_num)
      } else {
          li <- c()
          for (i in lambda) {
            li <- append(li, data_frame[row,i])
          }
      }

  if(length(psi) == 1) 
        {  
          pi <- rep(data_frame[row, psi], times = max_num)
      } else {
          pi <- c()
          for (i in psi) {
            pi <- append(pi, data_frame[row,i])
          }
      }

  my_fuction <- sim.fbd.rateshift.taxa(n_extant, n_trees, li,mi, pi, times = mers, complete = TRUE)
   return(my_fuction)
}
mySample <- foss_sample(666,1, foss_data, "mu", "lambda", c("psi.1.","psi.2.", "psi.3."), 150, c(0,29,70)) 
View(mySample)


jaishimuku/WrightLab_FBD documentation built on July 17, 2020, 12:05 a.m.