R/v7_mat_and_prior_funcs.R

#Returns a matrix that is number of SNPs by number of grid points
# ll_ij = p(beta_hat_1_i, beta_hat_2_i | rho, b, q, sigma_1j, sigma_2j)
v7_li_mat_func <- function(rho, q, gamma, gamma_prime, data, grid, ...){
  ll_mat <- ll_v7_mat(rho, q, gamma, gamma_prime,
                      grid$S1, grid$S2,
                      data$beta_hat_1, data$beta_hat_2,
                      data$seb1, data$seb2)
}

#Calculates p(rho, q, gamma, gamma_prime)
v7_prior_func <- function(rho, q, gamma, gamma_prime,
                          z_prior_func=NULL, gamma_prior_func = NULL, q_prior_func  = NULL){
  arctanh <- function(rho){
    0.5*log((1+rho)/(1-rho))
  }
  if(is.null(z_prior_func)){
    z_prior_func = function(z){dnorm(z, 0, 0.5, log=TRUE)}
  }
  if(is.null(gamma_prior_func)){
    gamma_prior_func <- function(b){dnorm(b, 0, 0.6, log=TRUE)}
  }
  if(is.null(q_prior_func)){
    q_prior_func <- function(q){dbeta(q, 0.1, 1, log=TRUE)}
  }
  z <- arctanh(rho)
  z_prior_func(z)+ gamma_prior_func(gamma) + gamma_prior_func(gamma_prime) + q_prior_func(q)
  return(ll)
}
jean997/sherlockAsh documentation built on May 18, 2019, 11:45 p.m.