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.3.tar.gz (174.6 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.3-cp39-abi3-win_amd64.whl (449.6 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.57.3-cp39-abi3-manylinux_2_34_x86_64.whl (629.2 kB view details)

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

biors-0.57.3-cp39-abi3-macosx_11_0_arm64.whl (563.1 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: biors-0.57.3.tar.gz
  • Upload date:
  • Size: 174.6 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.3.tar.gz
Algorithm Hash digest
SHA256 10b9a5dc024f41bc75059ca62df6c6a7403ba6ecc7ec4048e7432eb908bcdaea
MD5 ff90b3947677c0e6d02aabb4b77a723d
BLAKE2b-256 378d3e604b2d373c85d46f3fefaf1652aff68c3c846850ee3cef56d246bd6ab1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.57.3-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 449.6 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.3-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 317eb2f3413c5e584cd6e2f1b24e142f2e1a1067529e0db29c13cba77d1ccd54
MD5 97067d3bdc797b60daa8ba55eb5b8b90
BLAKE2b-256 39e3b03d93602872a4f5c4bbec627638fe9248ee4482309b46e385b49a01f446

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.3-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fa628a4ce97e1a06518b93e167dd2814f55ced7d172cae665ce816aff390d381
MD5 9a4cc27d9a2421ad853772f36207f0a1
BLAKE2b-256 e5091c0c1f9de71d0f8cb866a45692d78a55dd58e36bba25361ff214113b39a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d361212ba2c3d61064cd623f31f12fcb7d22cbe8c7240441cbc37d959288f23
MD5 67f26e0670545294a779fa6569e4733c
BLAKE2b-256 4665e0cc7d9be42ceeef4ebd8a4d2f14523c5ad7efbed425366a3c0a4c93c5d6

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