Skip to main content

Bayesian X-ray spectral analysis

Project description

About Bayesian X-ray Analysis (BXA)

BXA connects the X-ray spectral analysis environments Xspec/Sherpa to the nested sampling algorithm UltraNest for Bayesian Parameter Estimation and Model comparison.

BXA provides the following features:

  • parameter estimation in arbitrary dimensions, which involves:
    • finding the best fit
    • computing error bars
    • computing marginal probability distributions
  • plotting of spectral model vs. the data:
    • for the best fit
    • for each of the solutions (posterior samples)
    • for each component
  • model selection:
    • computing the evidence for the considered model, ready for use in Bayes factors
    • unlike likelihood-ratios, not limited to nested models
  • model discovery:
    • visualize deviations between model and data with Quantile-Quantile (QQ) plots. QQ-plots do not require binning and are more comprehensive than residuals. This will give you ideas on when to introduce more complex models, which may again be tested with model selection

BXA shines especially

  • when systematically analysing a large data-set, or
  • when comparing multiple models, or
  • when analysing low counts data-set
  • when you don’t want to babysit your fits
  • when you don’t want to test MCMC chains for their convergence Documentation Status Github repository

Who is using BXA?

  • Dr. Antonis Georgakakis, Dr. Angel Ruiz (NOA, Athens)
  • Dr. Mike Anderson (MPA, Munich)
  • Dr. Franz Bauer, Charlotte Simmonds (PUC, Jonathan Quirola Vásquez, Santiago)
  • Dr. Stéphane Paltani, Dr. Carlo Ferrigno (ISDC, Geneva)
  • Dr. Zhu Liu (NAO, Beijing)
  • Dr. Georgios Vasilopoulos (Yale, New Haven)
  • Dr. Francesca Civano, Dr. Aneta Siemiginowska (CfA/SAO, Cambridge)
  • Dr. Teng Liu, Adam Malyali, Riccardo Arcodia, Sophia Waddell, … (MPE, Garching)
  • Dr. Sibasish Laha, Dr. Alex Markowitz (UCSD, San Diego)
  • Dr. Arash Bahramian (MSU, East Lansing)
  • and you?


BXA’s documentation is hosted at


First, you need to have Sherpa or Xspec installed and its environment loaded.

BXA itself can installed easily using pip or conda:

$ pip install bxa

If you want to install in your home directory, install with:

$ pip install bxa --user

The following commands should not yield any error message:

$ python -c 'import ultranest'
$ python -c 'import xspec'
$ sherpa

You may need to install required python packages through your package manager. For example:

$ yum install ipython python-matplotlib scipy numpy matplotlib
$ apt-get install python-numpy python-scipy python-matplotlib ipython

The source code is available from, so alternatively you can download and install it:

$ git clone
$ cd BXA
$ python install

Or if you only want to install it for the current user:

$ python install --user


In Sherpa, load the package:

jbuchner@ds42 ~ $ sherpa
Welcome to Sherpa: CXC's Modeling and Fitting Package
CIAO 4.4 Sherpa version 2 Tuesday, June 5, 2012

sherpa-1> import bxa.sherpa as bxa
sherpa-2> bxa.BXASolver?

For Xspec, start python or ipython:

jbuchner@ds42 ~ $ ipython
In [1]: import xspec

In [2]: import bxa.xspec as bxa

In [3]: bxa.BXASolver?

Now you can use BXA.


See the code repository page

Citing BXA correctly

Refer to the accompaning paper Buchner et al. (2014) which gives introduction and detailed discussion on the methodology and its statistical footing.

We suggest giving credit to the developers of Sherpa/Xspec, UltraNest and of this software. As an example:

For analysing X-ray spectra, we use the analysis software BXA (\ref{Buchner2014}),
which connects the nested sampling algorithm UltraNest (\ref{ultranest})
with the fitting environment CIAO/Sherpa (\ref{Fruscione2006}).

Where the BibTex entries are:

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for bxa, version 4.0.2
Filename, size File type Python version Upload date Hashes
Filename, size bxa-4.0.2-py3.8.egg (4.1 MB) File type Egg Python version 3.8 Upload date Hashes View
Filename, size bxa-4.0.2-py3-none-any.whl (4.0 MB) File type Wheel Python version py3 Upload date Hashes View
Filename, size bxa-4.0.2.tar.gz (50.7 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page