Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

PCAT (Probabilistic Cataloger)

PCAT is a transdimensional, hierarchical, and Bayesian framework to sample from the posterior probability distribution of a metamodel (union of models with different dimensionality) given some Poisson-distributed data.

In addition to its previous use in the literature to sample from the point source catalog space consistent with the Fermi-LAT gamma-ray data, and the dark matter subhalo catalog space consistent with an Hubble Space Telescope (HST) optical image, it can also be used as a general-purpose Poisson mixture sampler.

During burn-in, it adaptively optimizes its within-model proposal scale to minimize the autocorrelation time. Furthermore, it achieves parallelism through bypassing Python's Global Interpreter Lock (GIL). It is implemented in python2.7 and its theoretical framework is introduced in Daylan, Portillo & Finkbeiner (2016). Refer to its webpage for an introduction.

In inference problems the desired object is the posterior probability distribution of fitted and derived parameters. Towards this purpose, tdpy.mcmc offers a parallized and easy-to-use Metropolis-Hastings MCMC sampler. Given a likelihood function and prior probability distribution in a parameter space of interest, it makes heavy-tailed multi-variate Gaussian proposals to construct a Markovian chain of states, whose stationary distribution is the target probability density. It then visualizes the marginal posterior. The sampler takes steps in a transformed parameter space where the prior is uniform. Therefore, the prior is accounted for by asymmetric proposals rather than explicitly evaluating the prior ratio between the proposed and current states. Parallelism is accomplished via multiprocessing by gathering chains indepedently and simulataneously-sampled chains.


You can install PCAT either by using pip

pip install pcat

or, by running its script.

python install

Note that PCAT depends on TDPY, a library of MCMC and numerical routines. The pip installation will install PCAT along with its dependencies.


PCAT user manual is on ReadTheDocs.


A transdimensional, hierarchical, Bayesian framework to sample from a metamodel







No packages published