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.2.tar.gz (185.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.57.2-cp39-abi3-win_amd64.whl (449.4 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.57.2-cp39-abi3-manylinux_2_34_x86_64.whl (630.3 kB view details)

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

biors-0.57.2-cp39-abi3-macosx_11_0_arm64.whl (563.5 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: biors-0.57.2.tar.gz
  • Upload date:
  • Size: 185.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.57.2.tar.gz
Algorithm Hash digest
SHA256 c882f9375aa2ee05428aadc79e9ca932f3e75c40a093a90d4ff7a0921967c5cd
MD5 839fa4b8b805b7cfc26ac4166628cf87
BLAKE2b-256 3a3c1a2de009d2b254e8a2870b40c345e09475fcc17307ac1b8291bef300d3ed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.57.2-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 449.4 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.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 27aa6a5455dcfdd07d16f8c586cbd0255a1dd6cf4872a088e043b5f733917c00
MD5 d339c4813d692ea0817c478f83b8b29d
BLAKE2b-256 ec4e438d110d283d61f788bd2decc99ec3734da82cd835fc81a0c20ec2082735

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.2-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bf91eff39a32fbbae0437d09bbaa5df0662ebba81991f223c1b1eacd1ad68c7f
MD5 85b73f59792ada17256e6bc1d2b415f2
BLAKE2b-256 ff15430b0650219a2aef4e53f558ff74947a877975dae3431631c8de766b787a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21b4209f255f22e0c7371c65055c1d17f2f26694a001c7a7901b7289f9d77c7d
MD5 17a9da04980fa2de37ea9e63933c17e4
BLAKE2b-256 08e0c8cdb9dc270d001198c75f35d9cf0cde5721b6f7e48c22f769411c6515a1

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