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.50.0.tar.gz (162.6 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.50.0-cp39-abi3-win_amd64.whl (448.8 kB view details)

Uploaded CPython 3.9+Windows x86-64

biors-0.50.0-cp39-abi3-manylinux_2_34_x86_64.whl (627.1 kB view details)

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

biors-0.50.0-cp39-abi3-macosx_11_0_arm64.whl (564.3 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for biors-0.50.0.tar.gz
Algorithm Hash digest
SHA256 6c85c5713b63c5547557b0c8ed0d0da632129e4563333ee07a76037a4c82c47e
MD5 fac03f9ffd4c6e5eb2ed2786e7d6920c
BLAKE2b-256 f9acbf543a78a606b8e02b326fa52bab2c3956276ace1c65971ef34783ab0d1d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: biors-0.50.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 448.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.50.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 aea295924d65c33e76dee5457cf947ffb553b419ce17eb48f198048dee02df39
MD5 3a8b106560ac94781010c9f456ca47d2
BLAKE2b-256 d64bc925d63735ba8e64600c5e2b7d2b6e4349035ddcea4b3f872896458234bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.50.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d4c5c076747eac1655249a6b3af40f3e84500e3cf5ec29d13daaecf9bae99e1e
MD5 ff1dc5b1e78011b98502d63154efade1
BLAKE2b-256 9a8fb47da82e45fb58adaefcbb3721d2adf381b2fb36b34f992665d35b88ebeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for biors-0.50.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de1229f90f64798a099aafab405524aee41edf984a1fb283ba1c5d15e42c8484
MD5 43b7ddf6b5fa2daea90d5020fcb067ba
BLAKE2b-256 90831d65f62d8935cda51323d2662eda3239d559da998ff1233c5352401db7be

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