  Many problems in science and engineering require uncertainty quantification
that accounts for observed data. For example, in computational neuroscience,
Neural Population Models (NPMs) are mechanistic models that describe brain
physiology in a range of different states. Within computational neuroscience
there is growing interest in the inverse problem of inferring NPM parameters
from recordings such as the EEG (Electroencephalogram). Uncertainty
quantification is essential in this application area in order to infer the
mechanistic effect of interventions such as anaesthesia. This paper presents
C++ software for Bayesian uncertainty quantification in the parameters of NPMs
from approximately stationary data using Markov Chain Monte Carlo (MCMC).
Modern MCMC methods require first order (and in some cases higher order)
derivatives of the posterior density. The software presented offers two
distinct methods of evaluating derivatives: finite differences and exact
derivatives obtained through Algorithmic Differentiation (AD). For AD, two
different implementations are used: the open source Stan Math Library and the
commercially licenced dco/c++ tool distributed by NAG (Numerical Algorithms
Group). The use of derivative information in MCMC sampling is demonstrated
through a simple example, the noise-driven harmonic oscillator. And different
methods for computing derivatives are compared. The software is written in a
modular object-oriented way such that it can be extended to derivative based
MCMC for other scientific domains.
