Skip to content

Osteosarc 0.6.0

Choose a tag to compare

@iskandr iskandr released this 24 Sep 20:17
· 39 commits to main since this release
6f43aed

Keeps verified evidence when a mate or split-read partner query times out (#28).

python -m pip install --upgrade osteosarc==0.6.0
from osteosarc import RecoveryPolicy
subset = data.extract_reads(source, regions, recovery=RecoveryPolicy(on_timeout="incomplete"))
subset.receipt["status"]  # "incomplete" if a partner query timed out
  • What's kept. With on_timeout="incomplete", a timed-out partner query no longer discards the verified seed/context records or the partners already matched. By default the request still fails, as before.
  • How it's labeled. The receipt has status="incomplete" and failed_queries (round, regions, timeout, leads), and each affected lead is unresolved as "partner query timed out". Nothing from the failed query is kept, and an unavailable partner is never counted as zero support.
  • Retries. The incomplete result is stored apart from complete ones, so calling again retries the query and resumes from the verified extractions. Existing complete results stay cached.
  • What counts as a timeout. Samtools timeouts and timed-out remote HEAD requests count. Source changes and corruption still fail.
  • Fixture recipes can opt in with a source's acquisition: {"recovery": {"on_timeout": "incomplete"}}. Bundles then record acquisition_status: "incomplete".

Validation:

  • CI passes on Python 3.9–3.13, including Varcode 7/9 consumer checks.
  • 253 tests pass against the built wheel in a clean virtualenv.
  • Live check on a remote RNA-seq BAM: a real 1-second partner timeout kept all 3,829 verified seed records, and the retry completed with 5,244 records.

PR #40 · Changelog · PyPI

https://claude.ai/code/session_01CcNHdiWgNhPGLmd4kDvG9G