BUMPS(1)
π BUMPS(1) β the python-bumps era π
okay bestie, sit down, hydrate, because today we're learning about bumps from the python-bumps man page family π«Ά (bumps3 is the same vibe but for python3, noted).
β¨ NAME β¨
bumps β data fitting and Bayesian uncertainty modeling for inverse problems. yes that's a whole mouthful, but it's iconic, we move π
β¨ SYNOPSIS β¨
bumps [options] modelfile [modelargs]
bumps [{-? | -h | --help}]
πΈ DESCRIPTION πΈ
This manual page documents briefly the bumps command (and bumps3 for python3, in case you were wondering).
This manual page was written for the Debian distribution because the original program does not have a manual page. Instead, it has documentation in HTML and in the GNU info(1) format; see below π
So, what is bumps? It provides a set of routines for curve fitting and uncertainty analysis from a Bayesian perspective. And like β not just "find me a minimum and call it a day" energy. In addition to traditional optimizers which search for the best minimum they can find in the search space, bumps provides uncertainty analysis which explores all viable minima and finds confidence intervals on the parameters based on uncertainty in the measured values. Bumps has been used for systems of up to 100 parameters with tight constraints on the parameters. Full uncertainty analysis requires hundreds of thousands of function evaluations, which is only feasible for cheap functions, systems with many processors, or lots of patience. (ngl bestie, "lots of patience" is doing a LOT of heavy lifting in that sentence π)
Bumps includes several traditional local optimizers such as Nelder-Mead simplex, BFGS and differential evolution. Bumps uncertainty analysis uses Markov chain Monte Carlo to explore the parameter space. Although it was created for curve fitting problems, Bumps can explore any probability density function, such as those defined by PyMC. In particular, the bumps uncertainty analysis works well with correlated parameters. obsessed actually β¨
The modelfile is a Python script (i.e., a series of Python commands) which sets up the data, the models, and the fittable parameters. The model arguments are available in the modelfile as sys.argv[1:]. Model arguments may not start with '-'. periodt.
π OPTIONS π
The program follows the usual GNU command line syntax, with long options starting with two dashes (`-`). A summary of options is included below. For a complete description, see the HTML documentation or info(1) files. okay here's the full list, no skipping, we're doing ALL of them πͺ
--previewβ display the model but do NOT perform a fitting operation. just a lil look, no commitment bestie--pars=filenameβ initial parameter values; fit results are saved asmodelname.par--plot=log [linear|log|residuals]β the type of plot to display--simulateβ simulate a dataset using the initial problem parameters--simrandomβ simulate a dataset using random problem parameters--shakeβ set random parameters before fitting--noise=5%β percent noise to add to the simulated data--seed=integerβ random number seed--errβ show uncertainty estimate from curvature at the minimum--covβ show the covariance matrix for the model when done--entropyβ compute entropy for the model when done [dream only]--stajβ output staj file when done--editβ start the gui--view=linear|logβ one of the predefined problem views; reflectometry also hasfresnel,logfresnel,q4andresiduals--store=pathβ output directory for plots and models--overwriteβ if store already exists, replace it--resume=path [dream]β resume a fit from previous stored state--parallelβ run fit using multiprocessing for parallelism--mpiβ run fit using MPI for parallelism (use command"mpirun -n cpus ...")--batchβ batch mode; save output in.monfile and don't show plots after fit--noshowβ semi-batch; send output to console but don't show plots after fit--remoteβ queue fit to run on remote server--notify=user@emailβ remote fit notification--queue=http://reflectometry.orgβ remote job queue--time=infβ run for a maximum number of hours--fit=amoeba [amoeba|de|dream|lm|newton|ps|pt|rl|snobfit]β fitting engine to use; see manual for details--steps=400 [amoeba|de|dream|lm|newton|ps|pt|rl|snobfit]β number of fit iterations after any burn-in time--samples=1e4 [dream]β set steps so the target number of samples is drawn--xtol=1e-4 [de, amoeba]β minimum population diameter--ftol=1e-4 [de, amoeba]β minimum population flatness--pop=10 [dream, de, rl, ps]β population size--burn=100 [dream, pt]β number of burn-in iterations before accumulating stats--thin=1 [dream]β number of fit iterations between steps--nT=25--Tmin=0.1--Tmax=10 [pt]β temperatures vector; use a higher maximum temperature and a largernTif your fit is getting stuck in local minima (we've all been stuck in our local minima era, no shame π₯²)--CR=0.9 [de, rl, pt]β crossover ratio for population mixing--starts=1 [newton, rl, amoeba]β number of times to run the fit from random starting points.--keep_bestβ when running with multiple starts, restart from a point near the last minimum rather than using a completely random starting point.--init=eps [dream]β population initialization method:epsβ ball around initial parameter setlhsβ latin hypercube samplingcovβ normally distributed according to covariance matrixrandomβ uniformly distributed within parameter ranges
--stepmonβ show details for each step--resynth=0β run resynthesis error analysis for n generations--time_modelβ run the model--stepstimes in order to estimate total run time.--profileβ run the python profiler on the model; use--stepsto run multiple models for better statistics--chisqβ print the model description and chisq value and exit-m,-c,-pcommand β run the python interpreter with bumps on the path:mβ command is a module such asbumps.cli, run as__main__cβ command is a python one-line commandpβ command is the name of a python script
-iβ start the interactive interpreter-?,-h,--helpβ display this help
π¦ SEE ALSO π¦
Bumps is documented fully in HTML at /usr/share/doc/python-bumps-doc/html/index.html[1] and also in the info(1) system. go read it, it's giving β¨thoroughβ¨
π AUTHOR π
Drew Parsons <dparsons@debian.org>
- Wrote this manpage for the Debian system.
π COPYRIGHT π
Copyright Β© 2017 Drew Parsons
This manual page was written for the Debian system (and may be used by others).
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or (at your option) any later version published by the Free Software Foundation.
On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.
π NOTES π
/usr/share/doc/python-bumps-doc/html/index.htmlfile:///usr/share/doc/python-bumps-doc/html/index.html
and that's the whole page bestie, no cap, every single flag accounted for π
and that's a wrap on bumps β this little gem came from the python-bumps man page, dated 10/29/2017, and it lives in the BUMPS(1) section of your friendly neighborhood manual. take care of her, she's doing her best ππ
π¦ where this page comes from
- debian bookworm: python3-bumps 0.9.0-3 Β· LicenseRef-public-domain
- debian trixie: python3-bumps 1.0.0b2-2 Β· LicenseRef-public-domain
- ubuntu jammy: python3-bumps 0.8.1-1 Β· LicenseRef-public-domain
- ubuntu noble: python3-bumps 0.9.1-2 Β· LicenseRef-public-domain
- ubuntu questing: python3-bumps 1.0.0b2-2
- ubuntu resolute: python3-bumps 1.0.3-3 Β· LicenseRef-public-domain
- ubuntu stonking: python3-bumps 1.0.5-1 Β· LicenseRef-public-domain
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms