flowMC
flowMC: Normalizing flow enhanced sampling package for probabilistic inference in JAX - Published in JOSS (2023)
Science Score: 95.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: arxiv.org -
✓Committers with academic emails
3 of 9 committers (33.3%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
Normalizing-flow enhanced sampling package for probabilistic inference in Jax
Basic Info
- Host: GitHub
- Owner: kazewong
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://flowmc.readthedocs.io/en/main/
- Size: 33.9 MB
Statistics
- Stars: 247
- Watchers: 5
- Forks: 30
- Open Issues: 22
- Releases: 17
Topics
Metadata Files
README.md
flowMC
Normalizing-flow enhanced sampling package for probabilistic inference
[!WARNING] Note that
flowMChas not reached v1.0.0, meaning the API could subject to changes. In general, the higher level the API, the less likely it is going to change. However, intermediate level API such as the resource strategy interface could subject to major revision for performance concerns.

flowMC is a Jax-based python package for normalizing-flow enhanced Markov chain Monte Carlo (MCMC) sampling. The code is open source under MIT license, and it is under active development.
- Just-in-time compilation is supported.
- Native support for GPU acceleration.
- Suit for problems with multi-modality.
- Minimal tuning.
Installation
The simplest way to install the package is to do it through pip
pip install flowMC
This will install the latest stable release and its dependencies. flowMC is based on Jax and Equinox. By default, installing flowMC will automatically install Jax and Equinox available on PyPI. By default this install the CPU version of Jax. If you have a GPU and want to use it, you can install the GPU version of Jax by running:
pip install flowMC[cuda]
If you want to install the latest version of flowMC, you can clone this repo and install it locally:
git clone https://github.com/kazewong/flowMC.git
cd flowMC
pip install -e .
There are a couple more extras that you can install with flowMC, including:
- flowMC[docs]: Install the documentation dependencies.
- flowMC[codeqa]: Install the code quality dependencies.
- flowMC[visualize]: Install the visualization dependencies.
On top of pip installation, we highly encourage you to use uv to manage your python environment. Once you clone the repo, you can run uv sync to create a virtual environment with all the dependencies installed.
Attribution
If you used flowMC in your research, we would really appericiate it if you could at least cite the following papers:
``` @article{Wong:2022xvh, author = "Wong, Kaze W. k. and Gabri\'e, Marylou and Foreman-Mackey, Daniel", title = "{flowMC: Normalizing flow enhanced sampling package for probabilistic inference in JAX}", eprint = "2211.06397", archivePrefix = "arXiv", primaryClass = "astro-ph.IM", doi = "10.21105/joss.05021", journal = "J. Open Source Softw.", volume = "8", number = "83", pages = "5021", year = "2023" }
@article{Gabrie:2021tlu, author = "Gabri\'e, Marylou and Rotskoff, Grant M. and Vanden-Eijnden, Eric", title = "{Adaptive Monte Carlo augmented with normalizing flows}", eprint = "2105.12603", archivePrefix = "arXiv", primaryClass = "physics.data-an", doi = "10.1073/pnas.2109420119", journal = "Proc. Nat. Acad. Sci.", volume = "119", number = "10", pages = "e2109420119", year = "2022" } ```
This will help flowMC getting more recognition, and the main benefit for you is this means the flowMC community will grow and it will be continuously improved. If you believe in the magic of open-source software, please support us by attributing our software in your work.
flowMC is a Jax implementation of methods described in:
Efficient Bayesian Sampling Using Normalizing Flows to Assist Markov Chain Monte Carlo Methods Gabrié M., Rotskoff G. M., Vanden-Eijnden E. - ICML INNF+ workshop 2021 - pdf
Adaptive Monte Carlo augmented with normalizing flows. Gabrié M., Rotskoff G. M., Vanden-Eijnden E. - PNAS 2022 - doi, arxiv
Contributors
Hajime Kawahara 🐛 |
Daniel Dodd 📖 👀 ⚠️ 🐛 |
Matt Graham 🐛 ⚠️ 👀 📖 |
Kaze Wong 🐛 📝 💻 🖋 📖 💡 🚇 🚧 🔬 👀 ⚠️ ✅ |
Marylou Gabrié 🐛 💻 🖋 📖 💡 🚧 🔬 ⚠️ ✅ |
Meesum Qazalbash 💻 🚧 |
Thomas Ng 💻 🚧 |
Thomas Edwards 🐛 💻 |
Owner
- Name: Kaze Wong
- Login: kazewong
- Kind: user
- Repositories: 13
- Profile: https://github.com/kazewong
JOSS Publication
flowMC: Normalizing flow enhanced sampling package for probabilistic inference in JAX
Authors
Tags
Bayesian Inference Machine Learning JAXGitHub Events
Total
- Create event: 30
- Release event: 8
- Issues event: 33
- Watch event: 52
- Delete event: 22
- Issue comment event: 59
- Push event: 242
- Pull request review comment event: 15
- Pull request review event: 32
- Pull request event: 43
- Fork event: 5
Last Year
- Create event: 30
- Release event: 8
- Issues event: 33
- Watch event: 52
- Delete event: 22
- Issue comment event: 59
- Push event: 242
- Pull request review comment event: 15
- Pull request review event: 32
- Pull request event: 43
- Fork event: 5
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Kaze Wong | k****s@g****m | 952 |
| marylou | m****e@g****m | 65 |
| Thomas Ng | t****g@l****k | 16 |
| ThibeauWouters | t****s@l****u | 7 |
| allcontributors[bot] | 4****] | 6 |
| Thibeau Wouters | t****s@w****l | 6 |
| Qazalbash | m****h@g****m | 2 |
| tedwards2412 | t****2@g****m | 1 |
| Thibeau Wouters | t****s@l****u | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 112
- Total pull requests: 130
- Average time to close issues: 3 months
- Average time to close pull requests: 11 days
- Total issue authors: 18
- Total pull request authors: 12
- Average comments per issue: 1.09
- Average comments per pull request: 0.62
- Merged pull requests: 118
- Bot issues: 0
- Bot pull requests: 7
Past Year
- Issues: 23
- Pull requests: 55
- Average time to close issues: 15 days
- Average time to close pull requests: 4 days
- Issue authors: 7
- Pull request authors: 5
- Average comments per issue: 0.91
- Average comments per pull request: 1.09
- Merged pull requests: 47
- Bot issues: 0
- Bot pull requests: 7
Top Authors
Issue Authors
- kazewong (65)
- Qazalbash (11)
- matt-graham (8)
- marylou-gabrie (8)
- daniel-dodd (4)
- thomasckng (2)
- zeeshan5885 (2)
- ColCarroll (2)
- dfm (1)
- HarrisonWilde (1)
- ahnitz (1)
- Felipe-4 (1)
- ThibeauWouters (1)
- HajimeKawahara (1)
- bjricketts (1)
Pull Request Authors
- kazewong (110)
- marylou-gabrie (11)
- Qazalbash (9)
- allcontributors[bot] (6)
- ThibeauWouters (4)
- thomasckng (4)
- tedwards2412 (2)
- matt-graham (1)
- google-labs-jules[bot] (1)
- jasonmcewen (1)
- alicjapolanska (1)
- daniel-dodd (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 2,970 last-month
- Total dependent packages: 1
- Total dependent repositories: 0
- Total versions: 29
- Total maintainers: 1
pypi.org: flowmc
Normalizing flow exhanced sampler in jax
- Documentation: https://github.com/kazewong/flowMC
- License: MIT License Copyright (c) 2022 Kaze Wong & contributor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
Latest release: 0.4.5
published 8 months ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v2 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite
- distrax *
- flax *
- jax *
- jaxlib *
- myst-nb *
- sphinx-book-theme *
- tqdm *
- actions/checkout v3 composite
- actions/setup-python v3 composite
- actions/checkout v3 composite
- actions/setup-python v3 composite
- pypa/gh-action-pypi-publish v1.8.4 composite
