  In a world with data that change rapidly and abruptly, it is important to
detect those changes accurately. In this paper we describe an R package
implementing a generalized version of an algorithm recently proposed by Hocking
et al. [2020] for penalized maximum likelihood inference of constrained
multiple change-point models. This algorithm can be used to pinpoint the
precise locations of abrupt changes in large data sequences. There are many
application domains for such models, such as medicine, neuroscience or
genomics. Often, practitioners have prior knowledge about the changes they are
looking for. For example in genomic data, biologists sometimes expect peaks: up
changes followed by down changes. Taking advantage of such prior information
can substantially improve the accuracy with which we can detect and estimate
changes. Hocking et al. [2020] described a graph framework to encode many
examples of such prior information and a generic algorithm to infer the optimal
model parameters, but implemented the algorithm for just a single scenario. We
present the gfpop package that implements the algorithm in a generic manner in
R/C++. gfpop works for a user-defined graph that can encode prior assumptions
about the types of change that are possible and implements several loss
functions (Gauss, Poisson, binomial, biweight and Huber). We then illustrate
the use of gfpop on isotonic simulations and several applications in biology.
For a number of graphs the algorithm runs in a matter of seconds or minutes for
10^5 data points.
