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 crates/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.57.4.tar.gz (175.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.57.4-cp39-abi3-win_amd64.whl (439.1 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.57.4-cp39-abi3-manylinux_2_34_x86_64.whl (625.0 kB view details)

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

biors-0.57.4-cp39-abi3-macosx_11_0_arm64.whl (560.2 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: biors-0.57.4.tar.gz
  • Upload date:
  • Size: 175.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.57.4.tar.gz
Algorithm Hash digest
SHA256 31ab1bf26cad995beccd2055a3130c5c4714401372016d735ac40d0843b05016
MD5 441528ae5bf0baaa6fa9c80db33ce154
BLAKE2b-256 c7d7e003e11c2aeafae50810ada5436f40fca5670db156c59c243a719861a8fb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.57.4-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 439.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.57.4-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3bfd556a3263ba92eb3b7acd933ac6872be20738422d26fc8e8727fde4a2b600
MD5 e6d1264cf093eb14b8788ff037da67a9
BLAKE2b-256 c4e0999b4cafd4c36929d257f9023d6bc5636515a89225a12a0827b039423f7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.4-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 993618f05164b397e8cb8d174b1ca098f9414b83e9c87fd2aa54dffdd0b923e3
MD5 1028e58b66f643bafa1d6bdfe689cf91
BLAKE2b-256 9c57336ff8423b884c685ab53ac632edc8ecfbea126e9ddbaae867dabff15c13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.4-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a51c363ce621f57a458b0203123e73fd467491a20f7861539fa3f3f4a2181d4a
MD5 3d93f41979afef45387da8692e0d99d6
BLAKE2b-256 a884cc963b934ae60d6ed3a8eab27f013e8c9b9fc3c041c3077abd2bd529d54c

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