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-0.57.0.tar.gz (184.3 kB view details)

Uploaded Source

Built Distributions

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

biors-0.57.0-cp39-abi3-win_amd64.whl (449.3 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.57.0-cp39-abi3-manylinux_2_34_x86_64.whl (628.3 kB view details)

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

biors-0.57.0-cp39-abi3-macosx_11_0_arm64.whl (563.4 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.57.0.tar.gz
Algorithm Hash digest
SHA256 274515a4da5e8336ce3cde72c1670919a2218ab2dff7cc6bd5e49df94577a506
MD5 b5f6b9f4e5bffa04fb03ff0eed5459b9
BLAKE2b-256 36fdf57540d91e232f3a6c69fcc26de7829c795f5d061f7e9ca4cb25db8641c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.57.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 449.3 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-0.57.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 59eedf9a573e7d8b5eac814f9b65e091f617db8b08718782305072b523881370
MD5 ddf66e3d1296c88609a0226ceee1f65c
BLAKE2b-256 dece09557320e947738ebc261688ffe73901728518feeffa81caf1ed0f0b58df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3e73320327b0aba1260c587ca4f2351c3f3c069f8e7b3469f0b8460e4f913fb5
MD5 2357b6da95f406ea9466eb127a0d94ed
BLAKE2b-256 4b2cc182ee2fa85b9e72d809b91a408a79e3b4c662dfb4d8933d91d0adedd1c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4d1ba1e452a8c88f656b70de11849396d4d5aa225cc127efc3a557cd7da7d8f
MD5 a6591572677c919abf39b0c05563cd0b
BLAKE2b-256 4c04a70f7c145abbfca360e27d4cbb37756a58af5449b89aa601306d2a77626e

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