Skip to main content

bgen

C library and Python bindings for reading BGEN files (format specifications 1.2 and 1.3).

This repository is a maintained fork of the original limix/bgen and limix/cbgen projects, merged into a single codebase with a modern build system, nanobind-based Python bindings, and S3 support.

Features

  • Fast C library for parsing BGEN genotype files
  • Python bindings via nanobind
  • Supports BGEN 1.2 and 1.3 format specifications
  • zlib and zstd decompression support
  • Metafile indexing for efficient random access

Quick start (pixi)

pixi install
pixi run test

Building the C library

cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure

System dependencies: zlib, zstd (installed via your system package manager or conda).

Installing the Python package

pip install .

Or in development mode:

pip install -e ".[test]"
pytest python/tests

Python usage

from cbgen import BgenFile, BgenMetafile

# Open a BGEN file
with BgenFile("example.bgen") as bgen:
    print(f"Variants: {bgen.nvariants}, Samples: {bgen.nsamples}")

    if bgen.contain_samples:
        samples = bgen.read_samples()

    # Create a metafile index for efficient access
    bgen.create_metafile("example.bgen.metafile")

# Read variant data via metafile
with BgenFile("example.bgen") as bgen:
    with BgenMetafile("example.bgen.metafile") as mf:
        partition = mf.read_partition(0)
        for variant in partition.variants:
            gt = bgen.read_genotype(variant.offset)
            print(f"{variant.rsid}: {gt.probability.shape}")

C API

Link against the bgen library:

find_package(bgen REQUIRED)
target_link_libraries(mytarget PRIVATE BGEN::bgen)

See include/bgen/bgen.h for the full C API.

Acknowledgments

  • Marc Jan Bonder for bug-reporting and improvement suggestions.
  • Yan Wong for bug-reporting and improvement suggestions.
  • Carl Kadie for bug-reporting and improvement suggestions.

Authors

License

This project is licensed under the MIT License.

Metadata

Release files for bgen-limix 4.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bgen-limix 4.3.0
File Size Uploaded
bgen_limix-4.3.0.tar.gz 4.8 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for bgen-limix 4.3.0
File
bgen_limix-4.3.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
bgen_limix-4.3.0-cp311-abi3-manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64 Details
bgen_limix-4.3.0-cp311-abi3-manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64 Details
bgen_limix-4.3.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details

Total release size: 18.5 MB

Release files / bgen_limix-4.3.0.tar.gz

Download URL bgen_limix-4.3.0.tar.gz
Size 4.8 MB
Tags Source
SHA-256 checksum
How to use checksums
71ed26ecd36a2bcc8677b08392220415b5d2b271117760550285abdb0168f591
BLAKE2b-256 checksum
How to use checksums
4df74def9acb69e3c245f8142890e145e105eb63da5d7bda5185ac2303ebd79f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / bgen_limix-4.3.0-cp311-abi3-win_amd64.whl

Download URL bgen_limix-4.3.0-cp311-abi3-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
dc7c0cd4d4f160d523b45fe6e41478133623abdc35e4068b49ad4d1c6093684c
BLAKE2b-256 checksum
How to use checksums
f3941097a197c05d1afa00b537110180abf67020a65e6238594ab0f1547a8f50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / bgen_limix-4.3.0-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL bgen_limix-4.3.0-cp311-abi3-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
f7f4b7ca500c77f8211372dce81c3dc09747f1074823bdfa2b4b45f54364a43e
BLAKE2b-256 checksum
How to use checksums
95fc0a0571fc7a5dc234373ca6d242bdc36e4702d0746f832a1ee837c5db68da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / bgen_limix-4.3.0-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL bgen_limix-4.3.0-cp311-abi3-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
4e5cb49a4c12563c1fc825fb300e853f1cb07b3d9194027259db61f371d68040
BLAKE2b-256 checksum
How to use checksums
7a1319b01d7cd9d6d44380e10bbe1c4fef0bf960c1c811e3b55e8fc4452debb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / bgen_limix-4.3.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL bgen_limix-4.3.0-cp311-abi3-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5f93df9da53a94d8d3c379f7ba3ddb1685abc7d9a164a8ef40bc942f3db8e2ff
BLAKE2b-256 checksum
How to use checksums
855e3d19f22d651c36346aaaa03b95264e040c7aec4f309f3570156f1494d2a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release history Release notifications | RSS feed

4.12.0

5 release files

4.11.0

5 release files

4.10.2

5 release files

4.10.1

5 release files

4.10.0

5 release files

4.9.1

5 release files

4.8.3

5 release files

4.8.2

5 release files

4.8.1

5 release files

4.8.0

5 release files

4.7.5

5 release files

4.7.4

5 release files

4.7.3

5 release files

4.7.2

5 release files

4.7.1

5 release files

4.4.0

5 release files

This release

4.3.0 This release

5 release files

4.2.1

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page