muLAn analyzes and fits light curves of gravitational microlensing events. The code includes all classical microlensing models (for example, single and binary microlenses, ground- and space-based parallax effects, orbital motion, finite-source effects, and limb-darkening); these can be combined into several time intervals of the analyzed light curve. Minimization methods include an Affine-Invariant Ensemble Sampler to generate a multivariate proposal function while running several Markov Chain Monte Carlo (MCMC) chains, for the set of parameters which is chosen to be fit; non-fitting parameters can be either kept fixed or set on a grid defined by the user. Furthermore, the software offers a model-free option to align all data sets together and allow inspection the light curve before any modeling work. It also comes with many useful routines (export publication-quality figures, data formatting and cleaning) and state-of-the-art statistical tools.
Modeling results can be interpreted using an interactive html page which contains all information about the light curve model, caustics, source trajectory, best-fit parameters and chi-square. Parameters uncertainties and statistical properties (such as multi-modal features of the posterior density) can be assessed from correlation plots. The code is modular, allowing the addition of other computation or minimization routines by directly adding their Python files without modifying the main code. The software has been designed to be easy to use even for the newcomer in microlensing, with external, synthetic and self-explanatory setup files containing all important commands and option settings. The user may choose to launch the code through command line instructions, or to import muLAn within another Python project like any standard Python package.