Getting started¶
Once installed, 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
the -e option:
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 -m:
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 run.
Parallel execution¶
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 -e option:
mosfit -e my_ascii_data_file.csv
MOSFiT will convert the files to JSON format and immediately begin processing the new files (append -G to immediately exit after conversion). For more information, please see the Private data section.
Producing outputs¶
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.
Visualizing outputs¶
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.
Troubleshooting¶
If you are having trouble getting MOSFiT working, please first consult our Frequently Asked Questions page, which addresses many common issues. If the answers there do not answer your questions, feel free to join our #mosfit Slack channel on AstroChats and ask for assistance.