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

Uploaded CPython 3.9+Windows x86-64

biors-0.53.0-cp39-abi3-manylinux_2_34_x86_64.whl (627.6 kB view details)

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

biors-0.53.0-cp39-abi3-macosx_11_0_arm64.whl (563.6 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.53.0.tar.gz
Algorithm Hash digest
SHA256 ac265ec9a9a9b0b881085e7a9ea6227ce22ce68cc7e5749c21d0cc672ca98808
MD5 1933ab150d111a9ec6095eaae0a38e93
BLAKE2b-256 d801e7428efca3ff2a975dc12c3438ad22ccd555afe662c43c6d952b1003d455

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.53.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.53.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c18b1fcf437fdfb52d8ff3be47cc7eb1c5ce7b8d5a1a3fde2fe4b40c081cfc9d
MD5 a84c1d71ff0bf161ec8cf67bfab1a027
BLAKE2b-256 dcc5f5ac3439debaf40da866533827128a7db54301bb7a0b638dd9c090326290

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.53.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 52fdc9e25e79c8e078482f092bf69957dffb95ac0d874c7c3d363fab42a4a94b
MD5 f249f63813265d8d22f0ea1fe4a06b79
BLAKE2b-256 86b463a49c033f9115de2cda4cda92eeec5dfbc0f46aa9ba1bb040e13c934980

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.53.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 954e4514099c2730a320a13d8cab1a16b3a6c45ab6271051984b03773537fd3b
MD5 416c503124e1df2af5ac14f4fe3a99d9
BLAKE2b-256 25092ecafeb0d59f69c4b6e9c1469ba0948becff0383c6d416b6c1987f07c501

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