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 · Concepts · 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.
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 | Concepts |
| 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 |
| 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.
Release files for osteosarc 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| osteosarc-0.10.0.tar.gz | 892.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| osteosarc-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / osteosarc-0.10.0.tar.gz
| Download URL | osteosarc-0.10.0.tar.gz |
|---|---|
| Size | 892.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd0528c0b07db7c3b1ebfd9960a66a78687d61d3d9be7025578f9d64d162f792
|
|
BLAKE2b-256 checksum How to use checksums |
472c65abeae66b9dab269a809a392e1ca9d82fd111c297b380b0e1c452638cd8
|
| 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.10.0-py3-none-any.whl
| Download URL | osteosarc-0.10.0-py3-none-any.whl |
|---|---|
| Size | 581.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8621c7796bd25d016b028042f03f1301cfda90f2e5f905d0dfbfdfb01ab271f6
|
|
BLAKE2b-256 checksum How to use checksums |
205f11a09aef2682e0b5acce1c8fe6903875f6075b631694cf996b84c5bdd78c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.6
|