inst/doc/using_clipp.R

## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
options(rmarkdown.html_vignette.check_title = FALSE)

## -----------------------------------------------------------------------------
library(clipp)
MAF <- 0.1
geno_freq <- geno_freq_monogenic(p_alleles = c(1 - MAF, MAF))
trans <- trans_monogenic(n_alleles = 2)

## -----------------------------------------------------------------------------
geno_freq_monogenic(p_alleles = c(1 - MAF, MAF), annotate = TRUE)

## -----------------------------------------------------------------------------
trans_monogenic(n_alleles = 2, annotate = TRUE)

## -----------------------------------------------------------------------------
data("dat_small", "penet_small", "dat_large", "penet_large")
head(dat_small)
head(penet_small)

## -----------------------------------------------------------------------------
monozyg_small <- list(c("ora024", "ora027"), c("aey063", "aey064"))

## -----------------------------------------------------------------------------
pedigree_loglikelihood(dat_small, geno_freq, trans, penet_small, 
                       monozyg = monozyg_small, sum_loglik = FALSE, ncores = 2)

## ---- eval = FALSE------------------------------------------------------------
#  system.time(ll <- pedigree_loglikelihood(dat_large, geno_freq, trans, penet_large))
#  #>    user  system elapsed
#  #>   10.64    0.15   10.83
#  ll
#  #> [1] -18020.99

## -----------------------------------------------------------------------------
head(dat_small)

## -----------------------------------------------------------------------------
penet.fn <- function(i, logodds1, logodds2) {
  prob1 <- 1/(1 + exp(-logodds1))
  prob2 <- 1/(1 + exp(-logodds2))
  penet.i <- c(prob1, prob1, prob2)
  if (dat_small$aff[i] == 0)  penet.i <- 1 - penet.i
  return(penet.i)
}

## ---- eval = FALSE------------------------------------------------------------
#  library(stats4)
#  minusll <- function(logodds1 = 0, logodds2 = 0) {
#    penet <- t(sapply(1:nrow(dat_small), penet.fn, logodds1, logodds2))
#    loglik <- pedigree_loglikelihood(dat_small, geno_freq, trans, penet,
#                                     monozyg = monozyg_small, ncores = 2)
#    return(-loglik)
#  }
#  minusll()
#  #> [1] 705.6238
#  fit <- mle(minusll)
#  summary(fit)
#  #> Maximum likelihood estimation
#  #>
#  #> Call:
#  #> mle(minuslogl = minusll)
#  #>
#  #> Coefficients:
#  #>           Estimate Std. Error
#  #> logodds1 -1.359962  0.1054336
#  #> logodds2 -1.313467  6.8597364
#  #>
#  #> -2 log L: 1030.901

## -----------------------------------------------------------------------------
head(dat_small)

## -----------------------------------------------------------------------------
penet.fn <- function(i, logodds1, logodds2) {
  prob1 <- 1/(1 + exp(-logodds1))
  prob2 <- 1/(1 + exp(-logodds2))
  penet.i <- c(prob1, prob1, prob2)
  if (dat_small$aff[i] == 0)  penet.i <- 1 - penet.i
  if (dat_small$geno[i] == "1/1")  penet.i[-1] <- 0     ###
  if (dat_small$geno[i] == "1/2")  penet.i[-2] <- 0     ###
  if (dat_small$geno[i] == "2/2")  penet.i[-3] <- 0     ###
  return(penet.i)
}

## ---- eval = FALSE------------------------------------------------------------
#  minusll()
#  #> [1] 788.5003
#  fit <- mle(minusll)
#  summary(fit)
#  #> Maximum likelihood estimation
#  #>
#  #> Call:
#  #> mle(minuslogl = minusll)
#  #>
#  #> Coefficients:
#  #>           Estimate Std. Error
#  #> logodds1 -1.357596 0.08405912
#  #> logodds2 -1.395321 0.61632248
#  #>
#  #> -2 log L: 1196.65
#  

## -----------------------------------------------------------------------------
head(dat_small)
genotype_probabilities(target = "ora008", dat_small, geno_freq, trans, 
                       penet_small, monozyg_small)

## -----------------------------------------------------------------------------
penet.fn <- function(i) {
  penet.i <- rep(1, 3)
  if (dat_small$geno[i] == "1/1")  penet.i[-1] <- 0
  if (dat_small$geno[i] == "1/2")  penet.i[-2] <- 0
  if (dat_small$geno[i] == "2/2")  penet.i[-3] <- 0
  return(penet.i)
}
penet <- t(sapply(1:nrow(dat_small), penet.fn))
genotype_probabilities(target = "ora008", dat_small, geno_freq, trans, 
                       penet, monozyg_small)

Try the clipp package in your browser

Any scripts or data that you put into this service are public.

clipp documentation built on July 12, 2022, 9:05 a.m.