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.52.0.tar.gz (173.3 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.52.0-cp39-abi3-win_amd64.whl (447.8 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.52.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.52.0-cp39-abi3-macosx_11_0_arm64.whl (564.0 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.52.0.tar.gz
Algorithm Hash digest
SHA256 08523c7618586e225fe2c01951a6906ac552b8ec97d1d68a8abebb6d6353410c
MD5 ce3813a1df78df3090c6858ca5fa3d05
BLAKE2b-256 0731e9ef4cfcc834792ac4b7e81d99453fb5011ec414e4cad636ff54a140d0cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.52.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 447.8 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.52.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 94c9ceecfc91323a2585cfea820dcb576e1752ac266571f5b840fb1ea42942df
MD5 d1a8fa5ec54fd48bfd607f64ab7f5c1c
BLAKE2b-256 275cf2615e28380ccc8af1fbebb4d3d0acf8663a2141591faed83f23f9048656

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.52.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 22893e9e68a8f54ebc4e84ae0c94fee3b3c2e8145dd67b0cea16a5eccb2fe8c7
MD5 37b663937a8a1a09a9a2672a26f4261d
BLAKE2b-256 6e374a44cd71c4910d70e6236ff4101ec080ca0df6765bb4cf10fea21dab519a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.52.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a96f8b554c5030472f400455fc874d4f6e20037f3fa13cc3db1e7de688bd214
MD5 55a624096e8811ae77e0bd415ded1e9b
BLAKE2b-256 8ae04ca9ed4ee5ad3a82fdd48126e5ad168901fde279ae104cbe9884480e92a7

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