--- a
+++ b/man/custom_priors.Rd
@@ -0,0 +1,116 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/custom_priors.R
+\name{custom_priors}
+\alias{custom_priors}
+\alias{print.custom_priors}
+\title{Customise priors for outbreaker}
+\usage{
+custom_priors(...)
+
+\method{print}{custom_priors}(x, ...)
+}
+\arguments{
+\item{...}{A list or a series of named, comma-separated functions
+implementing priors. Each function must have a single argument, which
+corresponds to a 'outbreaker_param' list.}
+
+\item{x}{an \code{outbreaker_config} object as returned by \code{create_config}.}
+}
+\value{
+A list of custom functions with class \code{custom_priors}. Values
+    set to \code{NULL} will be ignored and default functions will be used
+    instead.
+}
+\description{
+Priors can be specified in several ways in outbreaker2 (see details and
+examples). The most flexible way to specify a prior is to provide a prior
+function directly. This function must take an argument 'param', which is a
+list which contains all the states of the parameters and augmented data. See
+the documentation of \link{create_param} for more information.
+}
+\details{
+There are three ways a user can specify priors:\cr
+
+1) Default: this is what happens when the 'config' has default values of
+prior parameters.\cr
+2) Customized parameters: in this case, the prior functions are the default
+ones from the package, but will use custom parameters, specified by the user
+through \code{\link{create_config}}.\cr
+
+3) Customized functions: in this case, prior functions themselves are
+specified by the user, through the '...' argument of 'custom_priors'. The
+requirements is that such functions must have either hard-coded parameters or
+enclosed values. They will take a single argument which is a list containing
+all model parameters with the class 'outbreaker_param'. ALL PRIORS functions
+are expected to return values on a LOG SCALE.\cr
+
+Priors currently used for the model are:
+\itemize{
+
+\item \code{mu} (mutation rate): default function is an exponential
+distribution implemented in \code{outbreaker:::cpp_prior_mu}. New prior
+functions should use \code{x$mu} to refer to the current value of \code{mu},
+assuming their argument is called \code{x}.
+
+\item \code{pi} (reporting probability): default function is a beta
+distribution implemented in \code{outbreaker:::cpp_prior_pi}. New prior
+functions should use \code{x$pi} to refer to the current value of \code{pi},
+assuming their argument is called \code{x}.
+
+\item \code{eps} (contact reporting coverage): default function is a beta
+distribution implemented in \code{outbreaker:::cpp_prior_eps}. New prior
+functions should use \code{x$eps} to refer to the current value of \code{eps},
+assuming their argument is called \code{x}.
+
+\item \code{lambda} (non-infectious contact rate): default function is a
+beta distribution implemented in \code{outbreaker:::cpp_prior_lambda}. New
+prior functions should use \code{x$lambda} to refer to the current value of
+\code{lambda}, assuming their argument is called \code{x}.
+
+}
+}
+\examples{
+
+## BASIC CONFIGURATION
+custom_priors()
+
+
+## SPECIFYING PRIOR PARAMETERS
+## - this will need to be passed to outbreaker
+default_config <- create_config()
+new_config <- create_config(prior_mu = 1e-5,
+                        prior_pi = c(2, 1))
+
+## - to check the prior manually, default settings:
+param <- list(mu = 0.001, pi = 0.9)
+outbreaker2:::cpp_prior_mu(param, default_config)
+outbreaker2:::cpp_prior_pi(param, default_config)
+
+outbreaker2:::cpp_prior_mu(param, new_config)
+outbreaker2:::cpp_prior_pi(param, new_config)
+
+## these correspond to:
+dexp(0.001, 0.01, log = TRUE)
+dbeta(0.9, 2, 1, log = TRUE)
+
+
+## SPECIFYING A PRIOR FUNCTION
+
+## flat prior for pi between 0.5 and 1
+f <- function(x) {ifelse(x$pi > 0.5, log(2), log(0))}
+priors <- custom_priors(pi = f)
+priors # this should be passed to outbreaker
+
+## test the prior manually
+priors$pi(list(pi=1))
+priors$pi(list(pi=.6))
+priors$pi(list(pi=.2))
+priors$pi(list(pi=.49))
+
+}
+\seealso{
+See \href{http://www.repidemicsconsortium.org/outbreaker2/articles/customisation.html#customising-priors}{customization vignette} for detailed examples on how to customize priors.
+}
+\author{
+Thibaut Jombart (\email{thibautjombart@gmail.com}).
+}