Skip to main content

fqxv (Python)

Read-only Python bindings for fqxv, a Rust toolkit for lossless FASTQ archiving.

uv pip install fqxv

The wheels are abi3 (one per platform, CPython >= 3.9) and carry the native codecs, so there is no Rust toolchain to install.

import fqxv

# Stream records (works on every layout, including reordered archives)
for rec in fqxv.open("reads.fqxv"):
    print(rec.name, rec.sequence, rec.quality)  # all bytes

# In-memory input works too
data = open("reads.fqxv", "rb").read()
n = sum(1 for _ in fqxv.open(data))

# Decode only some streams — deselected fields come back as b"" and their coded
# streams are skipped, never entropy-decoded (sequence-only measured ~12x faster
# on ONT long-read archives, ~1.3-1.6x single-threaded on short-read Illumina)
for rec in fqxv.open("reads.fqxv", streams=("seq",)):
    ...                                         # rec.name == rec.quality == b""

# FASTA out, quality skipped entirely — the CLI's `decompress --fasta` as an API
fqxv.decompress_to_path("reads.fqxv", "reads.fasta", fasta=True)

# Whole-archive convenience
fqxv.decompress_to_path("reads.fqxv", "reads.fastq")
raw = fqxv.decompress_to_bytes("reads.fqxv")
info = fqxv.inspect("reads.fqxv")
print(info.reads, info.format_version, info.platform)

# Column projection / random access (plain layout only)
idx = fqxv.open_index("reads.fqxv")
seqs = fqxv.read_sequences("reads.fqxv")        # list[bytes], skips quality
ids = fqxv.read_names("reads.fqxv", groups=[0]) # just the first row group
block0 = fqxv.read_block("reads.fqxv", 0)       # list[Record]

# Read over the network (fqxv.remote, standard-library HTTP). Streaming decodes the
# whole archive on the fly; projection fetches only the column you ask for via HTTP
# byte-range requests.
import fqxv.remote as remote
for rec in remote.stream("https://host/reads.fqxv"):   # or a presigned S3 URL
    ...                                                # streams; no full download
arc = remote.open_index("https://host/reads.fqxv")     # 1 tail GET → footer index
names = arc.names()                                    # ~1% of the file, CRC-checked
print(arc.bytes_fetched, "of", arc.size)
n = remote.download("https://host/reads.fqxv", "reads.fastq")  # → FASTQ on disk

# Any file-like works, so an AWS SDK response streams straight in — no fqxv HTTP:
import boto3
body = boto3.client("s3").get_object(Bucket=b, Key=k)["Body"]
for rec in fqxv.open(body):
    ...
# For concurrent async range fetches, drive fqxv.parse_index_suffix /
# Index.stream_range / fqxv.decode_*_bytes with your own httpx/aiohttp session
# (see fqxv.remote's module docstring).

# Integrity check — raises fqxv.FqxvError on a corrupt archive
fqxv.verify("reads.fqxv")

# Project the archive size/ratio from a FASTQ *without* compressing (gzip/BGZF ok)
est = fqxv.estimate("reads.fastq.gz", level=5)  # also: quality_binning=, sample_reads=
print(est.ratio, est.archive_bytes, est.exhausted)

# Paired mates (or 10x R1/R2/I1/I2) compress into one archive — pass a list and
# their sample sizes are summed. A str/bytes source stays a single input.
est = fqxv.estimate(["R1.fastq.gz", "R2.fastq.gz"])

The on-disk .fqxv format is stable at 1.0 (a version independent of this package's), so archives written today stay readable by later releases — and an archive this build cannot read is refused with an error, never misread.

Projection and open_index are unavailable for globally-reordered archives (--order any, --max, --order shuffle), whose streams are mutually dependent; use fqxv.open() to iterate those — streams= selection works on every layout. Two selection caveats: long-read archives code quality against the bases, so selecting quality still decodes the sequence internally; and a skipped stream's integrity digest cannot be checked (run fqxv.verify() for a full check). Everything here is read-only: verify and estimate only measure — neither writes an archive — and full compression stays in the CLI.

Full API reference: https://rnabioco.github.io/fqxv/python/.

Build from source

uv pip install maturin
maturin develop            # from crates/fqxv-python/

Metadata

Release files for fqxv 0.8.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 fqxv 0.8.0
File Size Uploaded
fqxv-0.8.0.tar.gz 977.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for fqxv 0.8.0
File
fqxv-0.8.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
fqxv-0.8.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
fqxv-0.8.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
fqxv-0.8.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
fqxv-0.8.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.8 MB

Release files / fqxv-0.8.0.tar.gz

Download URL fqxv-0.8.0.tar.gz
Size 977.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ee8e1c442db6bf8f62821080e853d14c8ae63ececb7f01c900bc8800fffb3f17
BLAKE2b-256 checksum
How to use checksums
c47ae6263edc8b63a7af2ed7383821be3cd766e597a60f3bb6d33fbb673d2ca2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 23, 2026.

Transparency log

Release files / fqxv-0.8.0-cp39-abi3-win_amd64.whl

Download URL fqxv-0.8.0-cp39-abi3-win_amd64.whl
Size 507.9 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
36feaaaf9185c500e19a509dd5a284c70b08fd0f6a4511656161856a88d0d83b
BLAKE2b-256 checksum
How to use checksums
11112da6353b9dfacc914f6e5d9fd2fbad8ad2d9cc13c72ff739f938d09c700a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 23, 2026.

Transparency log

Release files / fqxv-0.8.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fqxv-0.8.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 624.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
1e865d2cd1d1cfc6ce13f5d26629474ec1dcb89c5424f60b835dd0deee7a6eba
BLAKE2b-256 checksum
How to use checksums
11ba6249c03ef292314687ded0a59127af54630ca9b7049e8d682b9b2b8c8239
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 23, 2026.

Transparency log

Release files / fqxv-0.8.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fqxv-0.8.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 578.3 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
de20ecb5fa035dd26843e89c39a17458f27d415522085e120ed5fbf46338624d
BLAKE2b-256 checksum
How to use checksums
a9a41457a32bb65cab097087416d377788380a6693b2fd4a1519d63b627c2061
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 23, 2026.

Transparency log

Release files / fqxv-0.8.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL fqxv-0.8.0-cp39-abi3-macosx_11_0_arm64.whl
Size 530.1 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
13a95d6d0f27637a551158db2a5ea2c8f94239b2ee74cbeeecc4b9e1bad0e894
BLAKE2b-256 checksum
How to use checksums
08cdb0f37352a41893e9c3dbbca9719b125ebbbcc059e080cc8abe480811d322
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 23, 2026.

Transparency log

Release files / fqxv-0.8.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL fqxv-0.8.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 584.4 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7e4957b869284ddd807b960235d21dd13439d609a1524a075d40904992c2a381
BLAKE2b-256 checksum
How to use checksums
c26b18ff0ff207ea1467860172a2b8a091e19fd75f17779470344e692f4548f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

6 release files

0.7.0

6 release files

0.6.2

6 release files

0.6.1

6 release files

0.6.0

6 release files

0.5.2

6 release files

0.5.1

6 release files

0.5.0

6 release files

0.4.0

6 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