Python bindings and utilities for e-Closure based multiple testing procedures
Project description
eclosure
eclosure provides Python bindings and research utilities for e-Closure based
multiple testing procedures. The package wraps a compiled C++ backend for the
core closed e-BH and closed BY routines and ships example datasets used in the
paper.
- Documentation: https://neilzxu.github.io/eclosure/
- Source: https://github.com/neilzxu/eclosure
- Paper: https://arxiv.org/abs/2509.02517
Installation
Install the core package from PyPI:
python -m pip install eclosure
Optional extras:
# experiment and real-data helpers
python -m pip install "eclosure[experiments]"
# plotting helpers used by the experiment code
python -m pip install "eclosure[plotting]"
Supported releases ship binary wheels for common CPython platforms. If you build from source, you will need a working C++17 toolchain.
Quick start
import eclosure
eclosure.closedeBH([1.0, 100.0], alpha=0.05)
eclosure.closedBY([0.01, 0.5], alpha=0.05)
The top-level API focuses on the stable testing procedures. The experiments workflow is available through the packaged module:
python -m eclosure.experiments --mode real --alpha 0.1 --out-dir figures
Learn more
The full package documentation includes:
- API reference for
closedBY,closedeBH, and packaged data helpers - Script documentation for
python -m eclosure.experiments - Testing guidance for unit, real-data, and timing suites
- Notes on repository-only exploratory scripts that are not part of the package
See https://neilzxu.github.io/eclosure/ for the full docs.
Citation
@article{xu2025bringing,
title={Bringing Closure to False Discovery Rate Control: A General Principle for Multiple Testing},
author={Xu, Ziyu and Solari, Aldo and Fischer, Lasse and de Heide, Rianne and Ramdas, Aaditya and Goeman, Jelle},
journal={arXiv preprint arXiv:2509.02517},
year={2025}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eclosure-0.1.1.tar.gz.
File metadata
- Download URL: eclosure-0.1.1.tar.gz
- Upload date:
- Size: 538.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f29303190701bd8cc39541e63a4e72013cb4be13f3135c41cdd4acbeba8f1203
|
|
| MD5 |
1b925d1432415fb767e2b19c9a6d7485
|
|
| BLAKE2b-256 |
a44824c093cdf2dc806a69fa95f862115dcdefdc275b6a227d9ed3cc6dbad731
|
File details
Details for the file eclosure-0.1.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 353.7 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe9c756d5bc010eeec20d03b76b5b8122a9b82115f6f86abf8f4f78fa0e3c543
|
|
| MD5 |
143d4123c8e599610aa38a56b235661d
|
|
| BLAKE2b-256 |
3d152fcb080a366cef680b23f4c9c14f1e90c320daf7fbdf52e2d85b5514c6ae
|
File details
Details for the file eclosure-0.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27879a3cd0906689c2612f5a32341c19ccfcb9814956b2890819b1f65df6f8ef
|
|
| MD5 |
5c555675a3df03af5ebcc3e3c77e4600
|
|
| BLAKE2b-256 |
086ef0f94aecc035f6b7ae818c155fb9124e60195049c8ea43161b26bdac5de9
|
File details
Details for the file eclosure-0.1.1-cp313-cp313-macosx_10_13_universal2.whl.
File metadata
- Download URL: eclosure-0.1.1-cp313-cp313-macosx_10_13_universal2.whl
- Upload date:
- Size: 440.7 kB
- Tags: CPython 3.13, macOS 10.13+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c96c3ed308dc5e5c4327e65dae9820ed84f6dbdf6d13c9a03cb0a5ee1fcd9dfc
|
|
| MD5 |
40c2eb32930ce1d80240cc312415906f
|
|
| BLAKE2b-256 |
210286caada23c2f9f0c67cbd74db56d4630dc26f6f5e0396cf90065e7fa0daf
|
File details
Details for the file eclosure-0.1.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 353.7 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a69f0f62863c0ca6e169f919f4410052ba2c6aef584403866f49ab91bb45dfea
|
|
| MD5 |
5130a4d49153ab3091c437d9a3505b63
|
|
| BLAKE2b-256 |
5a13a6d689da2f9e5c9db9405b7de9eaf8603fea6b6073f16d26b81307f29900
|
File details
Details for the file eclosure-0.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ed3b1ce7412c3c87b4e754a04e0128687cc08a8ac059bbedcd7f96187228166
|
|
| MD5 |
9c37cda19472212beed2e8044b5cbbc6
|
|
| BLAKE2b-256 |
ed3d6ffea36b7d0abd3a2f0c7d78705779fc11488e9ca49908776eff9f20eee0
|
File details
Details for the file eclosure-0.1.1-cp312-cp312-macosx_10_13_universal2.whl.
File metadata
- Download URL: eclosure-0.1.1-cp312-cp312-macosx_10_13_universal2.whl
- Upload date:
- Size: 440.6 kB
- Tags: CPython 3.12, macOS 10.13+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f186ad5cef07032823cdc518f20761c24f63cb6f32c65e7b30c8e61323d4d25e
|
|
| MD5 |
dd4f05b98fc9211b38dee27693f4d0d5
|
|
| BLAKE2b-256 |
e84bd600a93c4aa875ca494690d8d1a3d91ced9fb382390b74280bf43b175fb9
|
File details
Details for the file eclosure-0.1.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 353.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81a5143f6763ae9d6ec1ff752ba802f973343ef1f077f5ebaca85415172d326b
|
|
| MD5 |
78cd33b175fa574e39f77ce871123e65
|
|
| BLAKE2b-256 |
4223c1f781f351c45f30e5427b4499c16c0c4e22f7f5ca14f8c0a7b0ba6faa7f
|
File details
Details for the file eclosure-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2038206bf2ba5c2bcc4e27376f45ccb7df50b38e0067f59277c12c2155786242
|
|
| MD5 |
21eb69de434fa821936f25ed35cb842b
|
|
| BLAKE2b-256 |
3da7202788d7eab6cfd97ace2659d7a331890c7d3ac1593934cd1595a70596ff
|
File details
Details for the file eclosure-0.1.1-cp311-cp311-macosx_10_9_universal2.whl.
File metadata
- Download URL: eclosure-0.1.1-cp311-cp311-macosx_10_9_universal2.whl
- Upload date:
- Size: 439.1 kB
- Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93ca6b3ece54ee8e9500cd48dc707ec28d119a6e9816859cef52d6568a7ff8d7
|
|
| MD5 |
4d85dea2b61485eeb51b3d033c5fb33e
|
|
| BLAKE2b-256 |
a2b1ffc772422607f874a15f71d943dc45a998cd5bb9196dc2a64a4bf6e71271
|
File details
Details for the file eclosure-0.1.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 352.4 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80af8f20cdbc103f66d72126841f7cab473598f7fb11101f4a0f1ef85f12396a
|
|
| MD5 |
e2808b1e72627a474465ab2b835a5702
|
|
| BLAKE2b-256 |
b647d3b991e072daf2897ad8059426927b37dce23e22b627eb4308667bc0aaa8
|
File details
Details for the file eclosure-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41e8de9d0d5289fcc0d079d697597287d93eb01f28e29691b562053f8c34bdc8
|
|
| MD5 |
6f33150d458431162257aba4a6ccab35
|
|
| BLAKE2b-256 |
6388db9a858701815d317448023a96929e07d9ac4a0ceac8bda7e048aed7e0f4
|
File details
Details for the file eclosure-0.1.1-cp310-cp310-macosx_10_9_universal2.whl.
File metadata
- Download URL: eclosure-0.1.1-cp310-cp310-macosx_10_9_universal2.whl
- Upload date:
- Size: 436.6 kB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b745cbf9d28f26ba4147d33a70de9b3a812da2f3a188a55e202005580ec508b7
|
|
| MD5 |
3cb58af3ef37a567d2e1669a21775221
|
|
| BLAKE2b-256 |
8c59e38959a7f29f19697ba89a057907db4e9c49ebf3d45940d654b8af05b42b
|
File details
Details for the file eclosure-0.1.1-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 353.1 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0ee362b0407ebb5d31fbd91528812e8731087a54ee4a024fbac5cc393003e2d
|
|
| MD5 |
5663475e895cd645a1b8b69dc09f222d
|
|
| BLAKE2b-256 |
7d68e1448bd2032e0c1a9d19373e2ad8e3f43cc8937238bf540d9edcdb6f64d1
|
File details
Details for the file eclosure-0.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: eclosure-0.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.9, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97234c8f827944ac84480f35a3c48a1b4ccfff6944789435d95050420d4d41d2
|
|
| MD5 |
8a796a594a72939f801a33c7c06ab730
|
|
| BLAKE2b-256 |
2737550f412064998092431a3a8a9472d3f38bb57037f8321ddeda2f9c2f0383
|
File details
Details for the file eclosure-0.1.1-cp39-cp39-macosx_10_9_universal2.whl.
File metadata
- Download URL: eclosure-0.1.1-cp39-cp39-macosx_10_9_universal2.whl
- Upload date:
- Size: 436.8 kB
- Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88f6a38dd380a9702bf2b1c4db5d326b86c342b57bbcffd989a61e1fdfff4c19
|
|
| MD5 |
36720759ec099d739a6d1a73419018ee
|
|
| BLAKE2b-256 |
fc9cceb5d04abe830c900767d767a02fdeb50b8297f835f7c02d0d345255ef9a
|