MOSFiT can be run from any directory, and it’s typically convenient to make a new directory for your project.
mkdir mosfit_runs cd mosfit_runs
MOSFiT can be invoked either via either
python -m mosfit or simply
mosfit. Then, to run
MOSFiT, pass an event name to the program via
mosfit -e LSQ12dlf
The above command will prompt the user to choose a model (of those distributed with
MOSFiT) to fit against the data, using the event’s claimed type to provide a list of suggested models. A specific model can be fit to transients using the model option
mosfit -e LSQ12dlf -m slsn
Multiple events can be fit in succession by passing a list of names separated by spaces (names containing spaces can be specified using quotation marks):
mosfit -e LSQ12dlf SN2015bn "SDSS-II SN 5751"
The code outputs JSON files for each event/model combination that each contain a set of walkers that have been relaxed into an equilibrium about the posterior parameter distributions. This output is visualized via an example Jupyter notebook (
mosfit.ipynb), which is copied to the
products folder in the run directory, and by default shows output from the last
MOSFiT is parallelized and can be run in parallel by prepending
mpirun -np #, where
# is the number of processors in your machine +1 for the master process. So, if you computer has 4 processors, the above command would be:
mpirun -np 5 mosfit -e LSQ12dlf
MOSFiT can also be run without specifying an event, which will yield a collection of light curves for the specified model described by the priors on the possible combinations of input parameters specified in the
parameters.json file. This is useful for determining the range of possible outcomes for a given theoretical model:
mpirun -np 5 mosfit -m magnetar
Using your own data¶
MOSFiT has a built-in converter that can take input data in a number of formats and convert that data to the Open Catalog JSON format. Using the converter is straightforward, simply pass the path to the file(s) using the same
mosfit -e my_ascii_data_file.csv
MOSFiT will convert the files to JSON format and immediately begin processing the new files (append
-i 0 to immediately exit after conversion). For more information, please see the Private data section.
All outputs (except for converted observational data) are stored in the
products directory, which is created by
MOSFiT automatically in the current run directory. By default, a single file with the transient’s name, e.g.
LSQ12dlf.json, will be produced; this file contains all of the information originally available in the input JSON file and the results of the fitting. An exact copy of this file is stored under the name
walkers.json for convenience.
Additional outputs can be produced via some optional options that can be passed to
MOSFiT. Please see the arbitrary outputs section.
The outputs from
MOSFiT can be visualized using the Jupyter notebook
mosfit.ipynb copied by the code into a
jupyter directory within the current run directory. This notebook is intended to be a simple demonstration of how to visualize the output data, and can be modified by the users to their own needs.
First, the user should make sure that Jupyter is installed, then execute the Jupyter notebook from the run directory:
jupyter notebook jupyter/mosfit.ipynb
In this notebook, there are four cells which should require minimal editing to visualize your results; the cells should be evaluated in order. The first cell imports modules and loads the data output from the last run (store in
walkers.json). The second cell displays the ensemble of light curve fits and the data the model was fitted to:
The third cell shows X-ray observations, if the transient had any.
The fourth cell shows the evolution of free parameters as a function of time (the Monte Carlo chain).
The last cell produces a corner plot using the corner package.