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

Uploaded CPython 3.9+Windows x86-64

biors-0.55.0-cp39-abi3-manylinux_2_34_x86_64.whl (629.4 kB view details)

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

biors-0.55.0-cp39-abi3-macosx_11_0_arm64.whl (564.6 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.55.0.tar.gz
Algorithm Hash digest
SHA256 57fd9de876279b548f7ad8d17046b60be340b4e23b83ed72a396305d2f7331d9
MD5 c872ab0c46e71aff1c18fb706ac39981
BLAKE2b-256 30b323588026985d9d2750d7d3c9b81b2f9ed24b9deabeda4b08502a28a08b07

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.55.0-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.55.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ae6e9f101b5946a33ff5ca6950dfc8aab030d18a9d7a11b8a3a287bdc9e09357
MD5 474f04f26ee836b51e02f6f0582076bb
BLAKE2b-256 85420dd8c7aacead3e1977b9c32adde3171ad2ed7e75e52362b5a0774bd58dad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.55.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 77209997fbed57892b7bac7fb6b72995a880d398a48760c07d28bf2ff1e79f05
MD5 333afafc2391db3cc1e5c9226077840c
BLAKE2b-256 10d6c27c7ca63b3a4e17e86c9edd74141a84a1254bc2d2832232956b005dd047

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.55.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eacda04f181a9e4b5662f70ad0a6fa47226f0e29e918931d798746e0754d9d29
MD5 71db5cef6a5eb492736d4d0fa6795938
BLAKE2b-256 51d7f43f2ba4397380d5fc5a6585f974f690fd4daac098548317c66342bfc975

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