Skip to main content

Rust-backed directLFQ quantification for DIA-NN report.parquet and generic TSV inputs

Project description

directlfq_rs

directlfq_rs is a Python package that exposes a Rust implementation of the core directLFQ protein quantification workflow.

This repository is a mixed Rust/Python project with a split architecture:

  • the PyO3 binding crate and Python packaging live at the repository root
  • the Rust quantification core lives in crates/directlfq-core

It is intended for fast label-free quantification from:

  • DIA-NN report.parquet files
  • Generic wide TSV matrices with protein, ion, and sample columns

The package currently focuses on the programmatic API rather than the full feature surface of the original Python directlfq package.

Features

  • Native Rust execution for the main LFQ pipeline
  • Direct DIA-NN report.parquet input support
  • Generic TSV fallback for preformatted inputs
  • Optional pandas DataFrame convenience wrapper
  • Packaged type stubs for IDE signature and type rendering

Repository Layout

directlfq-rs/
├── pyproject.toml
├── Cargo.toml                 # PyO3 binding crate + workspace root
├── directlfq_rs/              # Python package
├── src/                       # PyO3 Rust bindings
├── tests/                     # Python-side tests
└── crates/
    └── directlfq-core/        # Rust quantification core crate

Installation

Install from PyPI:

pip install directlfq_rs

If you install from a source distribution, a Rust toolchain is required during build.

Python Version Support

The package is built with PyO3 abi3-py310, so one wheel per platform supports CPython 3.10 and newer Python 3 releases. The release workflow currently smoke tests Python 3.10, 3.11, 3.12, 3.13, and 3.14.

Release Builds

GitHub Actions builds release artifacts for:

  • Linux x86_64 and aarch64
  • macOS universal2
  • Windows x64
  • source distribution

Publishing uses PyPI Trusted Publishing from the Build and Publish workflow and the pypi GitHub environment.

Python API

File-path API

from directlfq_rs import quantify

results = quantify("report.parquet")
print(results["P001"])

quantify() returns a dict[str, list[float | None]] mapping each protein ID to its per-sample protein intensities in linear space.

DataFrame API

import pandas as pd
from directlfq_rs import quantify_dataframe

df = pd.DataFrame(
    {
        "protein": ["P001", "P001"],
        "ion": ["I1", "I2"],
        "sample_0": [100.0, 120.0],
        "sample_1": [200.0, 240.0],
    }
)

protein_df = quantify_dataframe(df)
print(protein_df)

Supported Inputs

DIA-NN report.parquet

For DIA-NN output, .parquet input is auto-detected and parsed as a precursor report.

Generic TSV

For generic wide-table input, the expected shape is:

  • one protein column
  • one ion column
  • one or more sample columns in linear intensity space

Empty cells are treated as missing values.

Scope

This package ships the Rust-backed quantification core and a compact Python API. It does not aim to mirror every workflow and helper exposed by the upstream directlfq package.

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

directlfq_rs-1.0.0.tar.gz (36.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

directlfq_rs-1.0.0-cp310-abi3-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

directlfq_rs-1.0.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file directlfq_rs-1.0.0.tar.gz.

File metadata

  • Download URL: directlfq_rs-1.0.0.tar.gz
  • Upload date:
  • Size: 36.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for directlfq_rs-1.0.0.tar.gz
Algorithm Hash digest
SHA256 13027d0ccc360176c28ff64cbd9e74f60a5ef73e68841e3a0ec5d42816dacc2e
MD5 e41994fae8a78f42aa308f67cb03b541
BLAKE2b-256 21af2324f547daf0336ea173cd8f30095f7a949b6c46b2aa776c761eef4dc101

See more details on using hashes here.

Provenance

The following attestation bundles were made for directlfq_rs-1.0.0.tar.gz:

Publisher: release.yml on wenjiudaijiugui/directlfq-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file directlfq_rs-1.0.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: directlfq_rs-1.0.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for directlfq_rs-1.0.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9064946e4a5a5b436a8a4bfef8499ec74247caed6ad6eb530acc60dc3de8b262
MD5 007614b9262226ddbd68904737fd47b5
BLAKE2b-256 c48612b9387498d93f4484a1cea79964a7146e2e2f8dd01edc211985215f8489

See more details on using hashes here.

Provenance

The following attestation bundles were made for directlfq_rs-1.0.0-cp310-abi3-win_amd64.whl:

Publisher: release.yml on wenjiudaijiugui/directlfq-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8f07863e234954d948da57018d5fa88df8ed30329c2f4ac298214186ec02724
MD5 a3eac5c98d167483dd50db90da489eb9
BLAKE2b-256 c4e4f6f7138287ba6d0c71ca2db302f71b98dfcf7b707209e409ebbaa6732419

See more details on using hashes here.

Provenance

The following attestation bundles were made for directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on wenjiudaijiugui/directlfq-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 62cf60212bb345fe55a471bbf91b76aeea5a90e7e76781a507c1d3596bd6880a
MD5 c8d4483e7bdd40d65d5f3894103050d8
BLAKE2b-256 9b684e515b7d795e2911e3e9d88fd3d33f37ca862a56fb3143975ea841cd8140

See more details on using hashes here.

Provenance

The following attestation bundles were made for directlfq_rs-1.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on wenjiudaijiugui/directlfq-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file directlfq_rs-1.0.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for directlfq_rs-1.0.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 aa0aab96a4745a11b1b3157eace2b176220e51e30bc4544135519713c61ed2df
MD5 501a8f12508321c10ece854b14b38cf5
BLAKE2b-256 a329596410fbb5bf7cd83bacd9c99673dffd8bc6ef682d6ec92997662d087597

See more details on using hashes here.

Provenance

The following attestation bundles were made for directlfq_rs-1.0.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on wenjiudaijiugui/directlfq-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page