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.51.0.tar.gz (167.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.51.0-cp39-abi3-win_amd64.whl (447.9 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.51.0-cp39-abi3-manylinux_2_34_x86_64.whl (627.5 kB view details)

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

biors-0.51.0-cp39-abi3-macosx_11_0_arm64.whl (564.6 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: biors-0.51.0.tar.gz
  • Upload date:
  • Size: 167.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.51.0.tar.gz
Algorithm Hash digest
SHA256 f8124cead0a44c7c810f58ffc7d777ce241af89a2a0edb310f4c6ef83d5aa3f7
MD5 f5ce86590985e33809ff9c87b8121e69
BLAKE2b-256 e753619f3a9b40c7d35ca0f7466cb0c9b86fa7b76b287d736031e5652dc25992

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.51.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 447.9 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.51.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1dc40dcfd1cddb733cb7d1cdf34264d10a32cd368b85a3edd339d8680effbac7
MD5 1a43d625090e0c3d10939e7f4e628c70
BLAKE2b-256 a81809b8b73fdd6af0e007c9dcd72e4008214856284cf30ef786eca60dce2b4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.51.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9bbef065fbe5ed7dcb58ce36b9da46a781548fa12ad56a7cea673489a1e52384
MD5 c813d0878e2a1a76b9b1d2282618fa03
BLAKE2b-256 57c5d10bb4bffef35cebecbfce75fc40e57bfef14bd34f12708a8db8ae1b932e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.51.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee7f3a99d2f5326fc25a3c5db830bf0e37cd4471260b1af1afb9c10988f0ed4d
MD5 6de21ae4ee61e04b336227693c915a83
BLAKE2b-256 0624d05f8a0b2b8b99d5ae02a422324cc6d9a8a459b979d676b85a39c241f385

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