% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/custom_moves.R
\name{custom_moves}
\alias{custom_moves}
\alias{print.outbreaker_moves}
\title{Customise samplers for outbreaker}
\usage{
custom_moves(...)

\method{print}{outbreaker_moves}(x, ...)
}
\arguments{
\item{...}{A list or a series of named, comma-separated functions
implementing movements of parameters or augmented data.}

\item{x}{an \code{outbreaker_moves} object as returned by \code{create_moves}.}
}
\value{
A list of movement functions with a single argument 'param', with
    class \code{outbreaker_moves}.
}
\description{
This function is used to specify customised movement functions
(a.k.a. samplers) for outbreaker. Custom functions are specified as a named
list or series of comma-separated, named arguments, indicating which type of
movement they implement. Values currently available are:
}
\details{
\itemize{

\item \code{mu}: movement of the mutation rate; by default, the function
\code{cpp_move_mu} is used.

\item \code{pi}: movement of the reporting probability; by default, the function
\code{cpp_move_pi} is used.

\item \code{eps}: movement of the contact reporting coverage; by default, the
function \code{cpp_move_eps} is used.

\item \code{lambda}: the movement of the non-infectious contact rate; the
function \code{cpp_move_lambda} is used.

\item \code{alpha}: movement of the transmission tree, by randomly proposing
infectors in the pool of cases infected before; by default, the function
\code{cpp_move_alpha} is used.

\item \code{swap_cases}: movement of the transmission tree, by swapping
infectors and infected cases; by default, the function
\code{cpp_move_swap_cases} is used.

\item \code{t_inf}: movement of the date of infection; by default, the
function \code{cpp_move_t_inf} is used.

\item \code{kappa}: movement of the number generations between cases; by
default, the function \code{cpp_move_kappa} is used.

}


Movement functions must have an argument \code{param}, which is a list of
parameters and augmented data of the class \code{\link{create_param}}.
Each movement function will be enclosed with its other arguments, so that the
resulting function will have a single argument 'param'. For non-standard
movements (i.e. none of the names specified above), the closure will contain:

\itemize{

\item \code{data}: a list of named items containing input data as returned by
\code{\link{outbreaker_data}}

\item \code{config}:  a list of named items containing input data as returned by
\code{\link{create_config}}

\item \code{likelihoods}: a list of named custom likelihood functions as returned by
\code{\link{custom_likelihoods}}

\item \code{priors}: a list of named custom prior functions as returned by
\code{\link{custom_priors}}

}
}
\seealso{
See \href{http://www.repidemicsconsortium.org/outbreaker2/articles/customisation.html#customising-movements}{customization vignette} for detailed examples on how to customise movement functions.
}
\author{
Thibaut Jombart (\email{thibautjombart@gmail.com}).
}
