Package: bumps
Bumps provides data fitting and Bayesian uncertainty modeling for inverse
problems.  It has a variety of optimization algorithms available for locating
the most like value for function parameters given data, and for exploring
the uncertainty around the minimum.Installation is with the usual python installation command:pip install bumpsOnce the system is installed, you can verify that it is working with:bumps doc/examples/peaks/model.py --chisqDocumentation is available atreadthedocsIf a compiler is available, then significant speedup is possible for DREAM using:(cd bumps/dream && cc compiled.c -I ../../Random123/include/ -O2 -fopenmp -shared -lm -o _compiled.so -fPIC)For now this requires an install from source rather than pip.Release notesv0.9.1 2023-04-10added support for python 3.11, scipy 1.10, numpy 1.24, wx 4.1.1fixed covariance calculation for n-D datasetsfixed batch mode I/O redirection cleanupfixed issue with DREAM bounds checker when running in paralleldefault to single precision derivatives with lm (fixes issue in SasView
where OpenCL models failed with Levenberg-Marquardt)improved support for repeat fitting within scripts and notebooks
(start_mappershould now work afterstop_mapper)v0.9.0 2022-03-15use MPFit in place of scipy.leastsq for bounds-constrained Levenberg-MarquardtBreaking change:
* simultaneous fit now scales individual nllfs by squared weight rather than weightv0.8.1 2021-11-18“apply parameters” action added to GUI menu (does the same as –pars flag in CLI)operators refactored (no more eval)BoundedNormal keywords renamed (sigma, mu) -> (std, mean)support for numba usage in modelsfixed Parameters view jumping to top after toggling fit (linux, Mac)fixed Summary view sliders disappearing in linuxfixed uncertainty plots regenerating at each parameter updateimproved documentation of uncertainty analysisBreaking change:
* python 2.7 support discontinuedv0.8.0 2020-12-16add stopping conditions to DREAM, using–alpha=p-valueto reject convergencerequire–overwriteor–resumewhen reusing a store directoryenable outlier trimming in DREAM with –outliers=iqradd fitted slope and loglikelihood distribution to the loglikelihood plotdisplay seed value used for fit so it can be rerun with–seedsave MCMC files using gzipremove R stat from saved staterestore–parsoption, which was broken in 0.7.17terminate the MPI session when the fit is complete instead of waiting for the
allocation to expireallow a series of fits in the same MPI sessionsupport newest matplotlibv0.7.18 2020-11-16restore python 2.7 supportv0.7.17 2020-11-06restore DREAM fitter efficiency (it should now require fewer burn-in steps)errplot.reload_errors allows full path to model fileclip values within bounds at start of fit so constraints aren’t infiniteallow–entropy=gmm|mvn|wnn|llfto specify entropy estimation algorithmallow duplicate parameter names in model on reloadexpand tilde in path namesGUI: restore parallel processingGUI: suppress uncertainty updates during fit to avoid memory leakdisable broken fitters: particle swarm, random lines, snobfitminor doc changesv0.7.16 2020-06-11improved handling of parameters for to_dict() json picklingv0.7.15 2020-06-09parallel fitting suppressed in GUI for now—need to reuse thread poolsupportlimits=(min, max)for pm and pmp parameter rangescleaner handling of single/multiple fit specificationfix–entropycommand line optionbetter support for pathlib with virtual file systemv0.7.14 2020-01-03support for–checkpoint=n, which updates the .mc files every n hoursfix bug for stuck fits on–resume: probabilities contain NaNbetter error message for missing store directoryPython 3.8 support (time.clock no longer exists)v0.7.13 2019-10-15fix pickle problem for parameterized functionssupport multi-valued functions in Curve, shown with a coupled ODE exampleupdate support for newer numpy and matplotlibv0.7.12 2019-07-30–parallel defaults to using one process per CPU.–pop=-k sets population size to k rather than k times num parameters–resume=- resumes from –store=/path/to/storeuse expanded canvas for parameter histograms to make plots more readableuse regular spaced tics for parameter histograms rather than 1- and 2-sigmaimprove consistency between values of cov, stderr and chisqfix handling of degenerate ranges on parameter outputadd entropy calculator using gaussian mixture models (default is still Kramer)vfs module allows loading of model and data from zip file (not yet enabled)warn when model has no fitted parametersupdate mpfit to support python 3support various versions of scipy and numpyv0.7.11 2018-09-24add support for parameter serializationv0.7.10 2018-06-15restructure parameter table in guiv0.7.9 2018-06-14full support for python 3 in wx GUIallow added or missing parameters in reloaded .par fileadd dream state to return from fit() callv0.7.8 2018-05-18fix source distribution (bin directory was missing)v0.7.7 2018-05-17merge in amdahl branch for improved performanceupdate plot so that the displayed “chisq” is consistent with nllfslight modification to the DREAM DE crossover ratio so that no crossover
weight ever goes to zero.par.dev(std) now uses the initial value of the parameter as the center of the
distribution for a gaussian prior on par, as stated in the documentation. In
older releases it was incorrectly defaulting to mean=0 if the mean was
not specified.save parameters and uncertainties as JSON as well as textconvert discrete variables to integer prior to computing DREAM statisticsallow relative imports from model filessupport latest numpy/matplotlib stackinitial support for wxPhoenix/python 4 GUI (fit ranges can’t yet be set)v0.7.6 2016-08-05add –view option to command line which gets propagated to the model plotteradd support for probability p(x) for vector x using VectorPDF(f,x0)rename DirectPDF to DirectProblem, and allow it to run in GUIdata reader supports multi-part files, with parts separated by blank linesadd gaussian mixture and laplace examplesbug fix: plots were failing if model name contains a ‘.’miscellaneous code cleanupv0.7.5.10 2016-05-04gui: undo code cleaning operation which broke the user interfacev0.7.5.9 2016-04-22population initializers allow indefinite boundsuse single precision criterion for levenberg-marquardt and bfgsimplement simple, faster, less accurate Hessian & Jacobiancompute uncertainty estimate from Jacobian if problem is sum of squaresgui: fit selection window acts like a dialogv0.7.5.8 2016-04-18accept model.par output from a different modelshow residuals with curve fit outputonly show correlations for selected variablesshow tics on correlations if small numberimprove handling of uncertainty estimate from curvaturetweak dream algorithm – maybe improve the acceptance ratio?allow model to set visible variables in outputimprove handling of arbitrary probability density functionssimplify loading of pymc modelsupdate to numdifftools 0.9.14bug fix: improved handling of ill-conditioned fitsbug fix: avoid copying mcmc chain during runbug fix: more robust handling of –time limitbug fix: support newer versions of matplotlib and numpymiscellaneous tweaks and fixesv0.7.5.7 2015-09-21add entropy calculator (still unreliable for high dimensional problems)adjust scaling of likelihood (the green line) to match histogram areause –samples to specify the number of samples from the distributionmark this and future releases with a DOI at zenodo.orgv0.7.5.6 2015-06-03tweak uncertainty calculations so they don’t fail on bad modelsv0.7.5.5 2015-05-07documentation updatesv0.7.5.4 2014-12-05use relative rather than absolute noise in dream, which lets us fit target
values in the order of 1e-6 or less.fix covariance population initializerv0.7.5.3 2014-11-21use –time to stop after a given number of hoursLevenberg-Marquardt: fix “must be 1-d or 2-d” bugimprove curvefit interfacev0.7.5.2 2014-09-26pull numdifftools dependency into the repositoryv0.7.5.1 2014-09-25improve the load_model interfacev0.7.5 2014-09-10Pure python release