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.1.tar.gz (187.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.1-cp39-abi3-win_amd64.whl (449.5 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.57.1-cp39-abi3-manylinux_2_34_x86_64.whl (630.2 kB view details)

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

biors-0.57.1-cp39-abi3-macosx_11_0_arm64.whl (563.7 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: biors-0.57.1.tar.gz
  • Upload date:
  • Size: 187.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.1.tar.gz
Algorithm Hash digest
SHA256 702a27b5bbce99953553a6b1909de51bdfc4e08c29860a8dd47fb0e8dc3b0dde
MD5 b3194b4eaae7d77cb45f7409ea6220d4
BLAKE2b-256 7790971c5eb7f8ad3711aaa162159dfbe1a65cd834392bd192f3a105b3a82024

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.57.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 449.5 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.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0d84bb30fd2e68cb4e4390f2fe81771a7c672469ac486e6a7dbec3a16ab02b37
MD5 68d86359e9c50df15522784a6dca1dd8
BLAKE2b-256 3d9ca092bb9e748285c49892dff97ef949949c1572eabe1b5bb8e67ed0080ee2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.1-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b433d5d0c8265b95456e37ccfdd65a6234ebf41b069b8c77d5f01daa7558a308
MD5 3d8c76c5bf86187c043ed0483d0d4c53
BLAKE2b-256 70a284fd56bd8d2abca707a055418f1090b4c35efe540d74e88f0726bb762753

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.57.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a124c771ce3b2c4971fd329fb3899dc02d0cc88f993267cf8f191755821d7640
MD5 cb02c78aeec2c8cb90b9649aefc72480
BLAKE2b-256 b25dbe9ccdecf9552a316f5699c449ef768c7fce6bb7b28fd0c5facecc2e6c6d

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