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 packages/rust/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.47.15.tar.gz (123.4 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.47.15-cp39-abi3-win_amd64.whl (446.1 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.47.15-cp39-abi3-manylinux_2_34_x86_64.whl (624.6 kB view details)

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

biors-0.47.15-cp39-abi3-macosx_11_0_arm64.whl (560.6 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.47.15.tar.gz
Algorithm Hash digest
SHA256 e144d246bd73f90a974db7279c48bdde0e95eeb47c72e46e35e894fa8addb22d
MD5 bfd4f1f8fb004b54e89194fe9225ae7e
BLAKE2b-256 5ddb772f0375bf1481e993e5977795a9821b1ac9b9e7f7a2b5f722ea2b169d7a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.47.15-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 446.1 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.47.15-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 29a87a4a63bb53618737bdafa3d19695d6503a49f48d6cc72bc2d0c7f7369f33
MD5 f009b25e50f4559021e85769ef63716d
BLAKE2b-256 f85bec02cd70b59925ad03dd08d8a30df4fb7150219c1b5820a704c34f754dcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.47.15-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 12a36147c69cb1c6694abb22e68f8bdba78b8bae7f00efa90576a204508dbd01
MD5 dd2e32b75de3b5ca6bfe11e662a0a245
BLAKE2b-256 bc6166d4552f3f654910bdc7dbd9c0c43d574fa2cf168350a8d4dd3d1a028c50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.47.15-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed04e1a589e5258bf68cbf2ecf2af54807d791d7b500c14cffdb77998437046d
MD5 f211566c378724af50d96d59d783e941
BLAKE2b-256 4905ca640049384096572465e6a6716124dc240bdfaecdf4e82e37415bf0c2d2

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