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.54.0.tar.gz (175.9 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.54.0-cp39-abi3-win_amd64.whl (448.1 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.54.0-cp39-abi3-manylinux_2_34_x86_64.whl (630.1 kB view details)

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

biors-0.54.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.54.0.tar.gz.

File metadata

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

File hashes

Hashes for biors-0.54.0.tar.gz
Algorithm Hash digest
SHA256 df934adc4a9ee4dde1969911cf807d34fb0b84a63f0889507e3d4775b17ed9f5
MD5 90d5af344065f765edf58a4be63e11e7
BLAKE2b-256 7394e575ea10fdff1f5045db041a5ccb5e0c9a3ecb19177e1dc89f96a5fe36c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.54.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 448.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.54.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 050fb68635a875b1060665825b8adc4dcae2ff6c4cb1ba8057e66f4d95033fbd
MD5 ea8a7d31ff680bb05d08983a04e6a0bd
BLAKE2b-256 602b8a9fc2cfeeefec414170833a3d7d861e328f441f0a1c691e9b2b8736dda9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.54.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a1795da617896b62f3112f41c95fc541f294ccf7b508e03db83de1b34b53e851
MD5 3fdc5e2468050ce5841fbcde7d14e695
BLAKE2b-256 0f6ecb298b07897e77d3c52b608af5fda4c9eb31695f5740b10cff7c1dd91dc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.54.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2eb3365941d7106e9f3cf20143fde7d09414f3679636776dc215950c81632da5
MD5 93094c8d615e15dd5f537d4e3b03bf14
BLAKE2b-256 1b598996420468358b12bbfed1c1543bd5c3422a33675816e7e1509fc3014654

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