Installation and Requirements

Nested Sampling in nestfit is perfomed using MultiNest, written by Farhan Feroz and published in Feroz & Hobson (2008) and Feroz, Hobson, & Bridges (2009). Therefore, MultiNest must first be compiled and placed in your host systems shared library path. This must be done so that it can be linked against when compiling the Cython extension module for nestfit.

Installing MultiNest

A fortran compiler, such as gfortran or ifort, and LAPACK are necessary to build MultiNest. Parallelism in nestfit is implemented using Python’s multiprocessing module, so it is not strictly necessary to compile MultiNest against an MPI library (e.g., MPICH). LAPACK should be included with the anaconda distribution. On a 64-bit Linux system using anaconda this may be done with:

$ conda install gfortran_linux-64 mpich

Then place one of the following lines into your local shell configuration file (e.g., ~/.bashrc or ~/.profile):

# if installing into your base conda environment
export LD_LIBRARY_PATH=<ANACONDA-PATH>/lib/:$LD_LIBRARY_PATH
# or if installing into a specific conda environment
export LD_LIBRARY_PATH=<ANACONDA-PATH>/envs/<ENV-NAME>/lib/:$LD_LIBRARY_PATH

Then, download the latest copy of MultiNest and enter the directory for the latest version (replace <VERSION> with, e.g, v3.12):

$ git clone https://github.com/farhanferoz/MultiNest
$ cd MultiNest/MultiNest_<VERSION>_CMake/multinest

MultiNest can then be built with cmake following the supplied installation instructions (see the README file under “Building and installing MultiNest CMake version” within the above directory):

$ mkdir build
$ cd build
$ cmake ..
$ make

MultiNest should now be compiled and ready for linking. As a final step, the directory containing the bin/ and lib/ directories (the present directory if following the above instructions) must be added as the shell environment variable MNEST_DIR:

export MNEST_DIR=<MULTINEST-PATH>/MultiNest/MultiNest_<VERSION>_CMake/multinest

Now, either open a new terminal our source your shell configuration file. It should now be possible to install nestfit.

Installing NestFit

Due to rapid pace of current development, it is recommended for the time being to clone development branch and build the module in-place. It is Python best-practices to activate a virtual environment for this project (perhaps the same conda environment possibly used previously for MultiNest), but this is not strictly necessary.

$ git clone https://github.com/autocorr/nestfit
$ cd nestfit
$ pip install -r requirements.txt
$ make

If compilation was a success, the nestfit module may then be imported from Python appending this directory to your PYTHON_PATH. Congratulations! Instructions on getting started may be found in the quick-start guide.

Requirements

The python dependencies can be found in requirements.txt:

astropy
cython
getdist
h5py
matplotlib
numpy
photutils
pyspeckit
scipy
spectral_cube

The matplotlib and getdist packages are only required for plotting; photutils is only required for sub-grid corrections when computing information kernels.