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.49.0.tar.gz (143.0 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.49.0-cp39-abi3-win_amd64.whl (446.5 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.49.0-cp39-abi3-manylinux_2_34_x86_64.whl (628.0 kB view details)

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

biors-0.49.0-cp39-abi3-macosx_11_0_arm64.whl (562.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.49.0.tar.gz
Algorithm Hash digest
SHA256 00d95ef332ddd864fa34fe7e1acd3732b62b9340b3bb79a400b59b1ff0bbed01
MD5 3b880b4f3cbff69230dfc332bbf76f63
BLAKE2b-256 0c56053c831459a0d64befe5a906a86c88ad82c5c4b862f546e627da3a83b8d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.49.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 446.5 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.49.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3e17f5e06c041009deb9e722ab60fac9592ca3178c5a5eb0d989ff4a71f9b10b
MD5 ec199464af907c48c60cf17424c770a2
BLAKE2b-256 d16d43e11e8180a3a79c6cc9458548f25d51b19ce9cdb72076de0da651fae900

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.49.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3c4d6ab0ef17980f295e5916db1380428d2d521b2e8a8bd1369dfbbb67947711
MD5 13240093749efdbc9441bdc3a793d826
BLAKE2b-256 a2f5d467eda9ca36e960e8d1da503f9ad70565d09001366a6f3fcb2e16d68820

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.49.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 317c0a1e7ed1fe6d49ca67c7de5aab1d724893a33a825f346af539abbab427bc
MD5 6fa198868d32901a9d639fa36a0eea41
BLAKE2b-256 f72c5352574dd05d62937bd7e91dadad865b2f1659fdf88a11248cc043e6c115

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