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.58.0.tar.gz (175.1 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.58.0-cp39-abi3-win_amd64.whl (438.9 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.58.0-cp39-abi3-manylinux_2_34_x86_64.whl (624.6 kB view details)

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

biors-0.58.0-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.58.0.tar.gz.

File metadata

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

File hashes

Hashes for biors-0.58.0.tar.gz
Algorithm Hash digest
SHA256 88798b30b5d0e688ebe1aff7aa61dfe0bea6f6b9ffe0890504aac73420ef1a3e
MD5 721079eac119a584dc8e137ef0e4f9db
BLAKE2b-256 c9e96584da3d9090ffb3dcc1ae45ba081df81f94e5a27c62388836bcef884b58

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.58.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 438.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.58.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 57c3694061a99be85628f5ffc36d290ef68dc467d90a7349308c6ca357999749
MD5 0c2ecfd127be71258d7016ba73679c46
BLAKE2b-256 8ff418ea7eaecbcdf4bea311e767ae326072210bc3235bb79cb4e3bbaa121826

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.58.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d5263db5015042f448011168330f553bdd202f3698de1ea8ceb334838cfa7d93
MD5 a76c32ee3f866f47047d73f07b1c7080
BLAKE2b-256 a3a4fd44bd60e171d945b58446a71b6ee4a120e9e4c8dac552636f74f02a271b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.58.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0f74addd87174bbcfc360fc70a0f74f8511f5746f5251a890506c33e8844be4
MD5 87e1650f5b4463d9b3c230443b9a8858
BLAKE2b-256 4e9361cb07e13dbbd65801c81be393f555022d6842f499614f240d1d783829d2

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