Software developement - A world without limits


properFIT proton example

properFIT is a software package that I started to develop in 2016. It is a general-purpose tool to fit cosmic-ray propagation models from GALPROP to data. I have used and improved this software package in several of my research projects. The figure on the left shows the result of proton flux after fitting the cosmic-ray model to a set of light nuclei data from the AMS-02 and Voyager experiments.

The most important features are:
  • Generalization: A config file (yaml format) specifies the setup of the fit. This allows the user to choose fit parameters, priors, constraints, parameter dependencies, or the handling of solar modulation. Naturally, also the cosmic-ray data set can be chosen by the user.
  • properFIT scaling
    properFIT docu
  • Scalability: The code is parallelized using a hybrid scheme. While the numerical solver GALPROP can be run on multiple cores using OpenMP the Bayesian inference tool MultiNest can be run with multiple tasks using MPI. The combination of both options allows us to efficently run the code also on a few hundred cores.
  • User-friendliness: My original code was written in c++, but in the last years the code entirely changed to python. For the user, this means that no compilation of the code is required. The code is contained in a gitHub repository providing version control and boosting collaboration.
    Although properFIT does not require any compilation, the GALPROP code is c++ and fortran based. Moreover, it depends on several external libraries. It can take some time to figure out how to install GALPROP if you want to do it the first time. To get started immediately I provide a Dockerfile from which you can create your own Docker image containing everything. So, you can start to explore the software immediately.
  • Automatization: The code automatizes the whole fitting procedure. It starts by running GALPROP and MultiNest and then extracts best-fit parameters, uncertainties, and plots. Plots are provided for the cosmic-ray spectra as well as for parameter constraints in the frequentist and Bayesian frameworks.
  • Documentation: An online documentation is available for the current master branch of the software. The documentation contains several examples and step-by-step guides to get started. It is generated automatically using sphinx.

The code is not yet public. But you can have a look at the online documentation. If you would like to use properFIT, feel free to contact me.


CRXS is a library to access cross section parametrizations for the production of secondary antiprotons by cosmic-ray interactions with intergalactic gas.

The code is publicly available on gitHub. Check it out now.