Skip to main content

Python bindings for bio-rs core

Project description

biors-python

Python bindings for bio-rs via PyO3.

Installation

pip install biors

Requires Python 3.9+.

Quickstart

import json

import biors

fasta_text = (
    ">seq1\nACDEFGHIKLMNPQRSTVWY\n"
    ">seq2\nMKWVTFISLLFLFSSAYSRGVFRRDAHKSEVAHRFKDLGEENFKALVLIAFAQYLQQCP\n"
)

# Parse FASTA text
records = biors.parse_fasta_records(fasta_text)

# Validate
report = biors.validate_fasta_input(fasta_text)
rna_report = biors.validate_fasta_input_with_kind(">rna\nACGUN\n", "rna")
print(f"Valid records: {report.valid_records}/{report.records}")
for record in report.sequences:
    for issue in record.warnings:
        print(f"{record.id}: ambiguous residue {issue.residue} at {issue.position}")
    for issue in record.errors:
        print(f"{record.id}: invalid residue {issue.residue} at {issue.position}")

# Tokenize
tokenized = biors.tokenize_fasta_records(fasta_text)
for t in tokenized:
    print(t.id, t.alphabet, t.valid, t.tokens)
    for issue in t.warnings + t.errors:
        print(issue.residue, issue.position)

# Tokenize one in-memory sequence with a caller-provided ID
single = biors.tokenize_protein("ACDEFG", id="sample-001")
print(single.id, single.tokens)

# DNA/RNA use explicit tokenizer profiles.
dna = biors.tokenize_fasta_records(">dna\nACGT\n", profile="dna-iupac")
rna_workflow = biors.prepare_workflow_from_fasta(
    ">rna\nACGU\n",
    max_length=8,
    profile="rna-iupac",
)

# Build model input
model_input = biors.build_model_inputs_checked(
    tokenized,
    max_length=512,
    pad_token_id=0,
    padding="fixed_length",
)
for r in model_input.records:
    print(r.id, r.input_ids, r.attention_mask)

# End-to-end workflow
output = biors.prepare_workflow_from_fasta(
    fasta_text,
    max_length=512,
    pad_token_id=0,
    padding="fixed_length",
)
print(f"Model ready: {output.model_ready}")
print(output.report_json)

# Validate a package on disk, including artifact paths and checksums.
package_report = json.loads(
    biors.validate_package_manifest_file("./protein-package/manifest.json")
)
print(package_report["valid"])

validate_package_manifest(manifest_json) is field-only validation for an in-memory manifest. Use validate_package_manifest_artifacts(manifest_json, base_dir) or validate_package_manifest_file(manifest_path) when package files, checksums, and layout placement must be verified.

Errors raised by core parsing, model-input, and package helpers are BioRsError values with stable code, message, and optional location attributes, while still subclassing ValueError.

Development

Build locally with maturin:

cd crates/biors-python
maturin develop
pytest

License

MIT OR Apache-2.0

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

biors-1.0.0.tar.gz (175.2 kB view details)

Uploaded Source

Built Distributions

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

biors-1.0.0-cp39-abi3-win_amd64.whl (439.2 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-1.0.0-cp39-abi3-manylinux_2_34_x86_64.whl (624.2 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.34+ x86-64

biors-1.0.0-cp39-abi3-macosx_11_0_arm64.whl (559.6 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: biors-1.0.0.tar.gz
  • Upload date:
  • Size: 175.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for biors-1.0.0.tar.gz
Algorithm Hash digest
SHA256 39e3531abb2c2f83beb5f9fca69ec6d49be765edc3aa94f07da00c5d4aa73eb1
MD5 8330eeb79c5017d52bc116099521fc84
BLAKE2b-256 bdb000d9dea4af63fdaf483cddf2b0d1603abb3573c9f9d0277c61b1e93650a2

See more details on using hashes here.

File details

Details for the file biors-1.0.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: biors-1.0.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 439.2 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for biors-1.0.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f0e97668229ff6d00a60424149d4de75f36d10c549a9310642401a111fb00965
MD5 c03e68c1e99568ac9aa5f501993abf24
BLAKE2b-256 15358fa91752b38edd2f8ad51f6cad3c60d16a6f5f0583515e4803ab9d53a599

See more details on using hashes here.

File details

Details for the file biors-1.0.0-cp39-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for biors-1.0.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d1c05ed4f77018b50f3a36d1181eea2db586e9e7db1fceb0de3fbc17774418c3
MD5 13d0e6fa45f20ae8587aa07bf1e14f8b
BLAKE2b-256 6e443a463f351a059810da5ad774d37fe62d8f525bbf206fe52d6a1708f38e70

See more details on using hashes here.

File details

Details for the file biors-1.0.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: biors-1.0.0-cp39-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 559.6 kB
  • Tags: CPython 3.9+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for biors-1.0.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86ec5e40e01055a302768f3276ded0bf7300d12cd2fa6c236794922d9a76fa95
MD5 14b26482842bc02d84c4a3307c63304a
BLAKE2b-256 f135de51957add07b8751c08d80b499f922e73b9e62a57613caab23e76262c5d

See more details on using hashes here.

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