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.58.1.tar.gz (175.1 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.58.1-cp39-abi3-win_amd64.whl (439.3 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.58.1-cp39-abi3-manylinux_2_34_x86_64.whl (623.9 kB view details)

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

biors-0.58.1-cp39-abi3-macosx_11_0_arm64.whl (559.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.58.1.tar.gz
Algorithm Hash digest
SHA256 dd48762f46f6bd2b165ee6b0d5a852b29d01be2cf3c4a5904f001c7d8eefc606
MD5 37793a8384e3ea4ac46ec1cb2d7eb314
BLAKE2b-256 2002dacfe0e395c398cd46cc1e5490c9e7113e5427b97266a12a1e087a170d85

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.58.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 439.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.58.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 86c25c907366c843654c15dc5d47c26b194b3f09622f43b362378606b8be01f3
MD5 1c6653e43abf4a83bf6c2d6d6450c064
BLAKE2b-256 c8cca5916f48e8ad0b85f5bb799d68212e957a6ec4f56732f1e72217784ce0ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.58.1-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a877c8a7e14a1a002a194788d11424312e9d8ca130f49be1dbd602133861b452
MD5 d9a67502af9faf2790f12d484b4bc498
BLAKE2b-256 538faa74cf5c083cc71642481a1ed027bc22eb1d2ba0700b5319b4a3f7dbe5ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.58.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ff446c7048feb4cc380bd874527f69bcd2fdf5aef18baf6702adbae8a5b881a7
MD5 f4c16fe1be3be7a688d8695489dc5ccc
BLAKE2b-256 8d270d7779d52af915db0d85a08b5e323c3216fc0a878aaf6c98e4a7d654c75a

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