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.16.tar.gz (124.2 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.16-cp39-abi3-win_amd64.whl (446.6 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.47.16-cp39-abi3-manylinux_2_34_x86_64.whl (624.9 kB view details)

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

biors-0.47.16-cp39-abi3-macosx_11_0_arm64.whl (561.2 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: biors-0.47.16.tar.gz
  • Upload date:
  • Size: 124.2 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.16.tar.gz
Algorithm Hash digest
SHA256 b793757d1cdb17e161b4a3ecc331ad6a9ad2d327c13f17c680cc53762b36fe99
MD5 d841d2e913fe8d6b02a78cf85bb3af98
BLAKE2b-256 b54e50fc44f30f370d05def9a3c7d5f105658dec9afb4bf1fc81368a0866bd04

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.47.16-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 446.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.47.16-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6cb2c3b9a978d93d8e5a756900bbd12ee8c8eece5c0514e3b719d7f33013872d
MD5 af4bda9b1c769c3ebf3956f575dd0d48
BLAKE2b-256 0d6476a71b306882563e4f23ed5f3a772f412355cc1427b9ee8cf28be4c687d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.47.16-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5a52cc5c19896f0285b874f9b30391efdd3fbdd8ddf845eab3ca9bb7645f0e7b
MD5 ef407eb4013fc36d1ce299ef0dcd7653
BLAKE2b-256 85b95c61304c761989c48f0ec18401e4d10d9f4860b4a6c66d78d66b8ec7b823

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.47.16-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 332d32860f30a77401bb0680e078af7d833eee5f58e26439e190b18463f0418e
MD5 63abb3dd65ef12576d6a3ce9b1928757
BLAKE2b-256 77c818a25b9dc2bbedc29abafdaab714c4772a7aadf24a142a25d2f50c9141a7

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