Skip to main content

osteosarc

Python library and command-line tool for the public osteosarc.com dataset: one patient's osteosarcoma sequencing, variant calls, cancer vaccines and clinical history.

  • Explore it: every sample and what was sequenced, every file in the bucket, the variant catalogue with its vaccines, and the clinical timeline.
  • Make test data from it: pull the reads around a few variants out of a remote BAM into a small local one, without downloading the BAM.

Documentation · Command line · Python API · Changelog

Install

python -m pip install osteosarc

Needs Python 3.9+ on Linux or macOS, and SAMtools on your PATH to fetch reads.

Explore

osteosarc sync                # once: about 57 MB of the website's metadata
osteosarc                     # the snapshot in use, and every command
osteosarc samples             # samples and what was sequenced
osteosarc samples T1_tumor    # one sample's files, and commands to get them
osteosarc files               # what's in the bucket, by kind and folder
osteosarc variants --gene MAP2
osteosarc timeline            # treatments, procedures, scans and MRD

Every command prints text for people, or JSON with --json. In Python or a notebook, everything shows a readable preview; osteosarc repl opens Python with the data loaded:

from osteosarc import Dataset

data = Dataset.sync()   # later: Dataset.open(), offline
data                    # what's here, and how to get it
data.samples["T1_tumor"]

Make test data

The reads around a variant in each of a sample's RNA-seq BAMs, saved in a folder:

osteosarc reads T0_tumor --assay rna-seq --variant DYNC1H1-chr14-101980529 --padding 100 --to tests/data

Or in Python, for one BAM:

source = data.file("rna-seq/reprocessed/BG003082/BG003082.Aligned.sortedByCoord.out.md.bam")
dync1h1 = data.variants(gene="DYNC1H1", status="ready")
reads = data.extract_reads(source, variants=dync1h1, padding=100, to="tests/data")
print(reads.path)

Only the reads near the variants are fetched, into a small indexed BAM; asking again reuses it, even offline. For a bundle anyone can rebuild, with a balanced set of reads at each variant and every record pinned, use osteosarc test-data make; a test then reads a member with osteosarc.bundle_file(bundle, member). The OpenVax libraries share one such bundle, openvax-v2.

The website changes over time, so its metadata is saved as dated snapshots: osteosarc snapshots lists them, and --snapshot 2026-09 picks the newest from that month. Osteosarc also fixes known errors in the website's data; osteosarc --no-corrections shows the published values.

Guides

To Read
Understand samples, variants, coordinates and corrections Overview
Find a sample's files, and download them Samples and files
Get alleles, read counts and vaccine peptides Variants and vaccines
Fetch reads by variant or region Reads
Make a bundle of test reads, or use the shared openvax-v2 Test data
Chart treatments, scans and MRD Timeline
Pass data to Varcode, Isovar, Topiary or Vaxrank OpenVax libraries
Look through 637 candidate structural variants SV candidates

Data, license and citation

Code is Apache-2.0. The dataset is listed as CC0-1.0 in the AWS Open Data Registry. Cite the dataset and your access date when using it.

Development

python -m pip install -e '.[test]'
ruff check osteosarc tests scripts
python -m pytest -q

See testing for documentation builds and live-example checks.

Metadata

Release files for osteosarc 0.15.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for osteosarc 0.15.6
File Size Uploaded Provenance Actions
osteosarc-0.15.6.tar.gz 5.4 MB Without provenance Details for osteosarc-0.15.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for osteosarc 0.15.6
File Interpreter ABI Platform Actions
osteosarc-0.15.6-py3-none-any.whl Python 3 none any Details for osteosarc-0.15.6-py3-none-any.whl

Total release size: 6.0 MB

Release files / osteosarc-0.15.6.tar.gz

Download URL osteosarc-0.15.6.tar.gz
Size 5.4 MB
Tags Source
SHA-256 checksum
How to use checksums
a247cc16f618ebaf121536804ae419fed04dd40fae80b1abbe8df5b36e881a5e
BLAKE2b-256 checksum
How to use checksums
4abb12bf12c8695f7dcdcbbd0eb9519e6ec259602bbb6f9908ba7ca06ed4d645
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.6

Release files / osteosarc-0.15.6-py3-none-any.whl

Download URL osteosarc-0.15.6-py3-none-any.whl
Size 627.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
575b0b5cf7075c6ddc12f42612547e8229786ea28b403ee46379926d635a01a6
BLAKE2b-256 checksum
How to use checksums
78b904e9ea4b6a716ef4c9ee2488a4150f206db27b644749705a39c6fbfb875f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.6

Security for osteosarc 0.15.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.15.6 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page