Skip to main content

DMSRoute

PyPI PyVersions Tests License DOI

DMSRoute obtains and standardizes Deep Mutational Scanning (DMS) datasets from ProteinGym and MaveDB. It provides a command-line interface, a Python API, and a YAML pipeline for producing consistent datasets from source-specific tables and metadata.

The project name is DMSRoute. The distribution, Python package, and console command are named dmsroute.

Supported sources:

  • ProteinGym substitution and indel datasets, identified by canonical DMS_id values.
  • MaveDB score sets, identified by permanent score-set URNs and acquired from the public API or a fixed bulk snapshot.

Installation

DMSRoute requires Python 3.11 or newer.

pip install dmsroute
# or with uv:
uv add dmsroute

Check the installation with:

dmsroute --help

Development setup and validation commands are documented in DEVELOPMENT.md.

Quick start

Inspect a MaveDB score set:

dmsroute metadata \
  --source mavedb \
  --dataset-id urn:mavedb:00000001-a-4

Download and standardize it:

dmsroute download \
  --source mavedb \
  --dataset-id urn:mavedb:00000001-a-4 \
  --output-dir datasets/ube2i

ProteinGym uses canonical DMS_id values:

dmsroute list --source proteingym --query BRCA1 --limit 10

dmsroute download \
  --source proteingym \
  --dataset-id BRCA1_HUMAN_Findlay_2018 \
  --output-dir datasets/brca1

ProteinGym substitutions are selected by default. Use --variant-type indels for the indel resource.

CLI

The main commands are:

Command Purpose
dmsroute list Search a ProteinGym or MaveDB catalog
dmsroute metadata Retrieve metadata for one dataset
dmsroute download Download and standardize one dataset
dmsroute download-many Process several datasets from one source
dmsroute run Run a YAML pipeline
dmsroute discover Search a fixed local MaveDB snapshot
dmsroute snapshot Fetch snapshots or extract archival tables
dmsroute cache Inspect the local cache without modifying it

Each command provides its complete options through --help.

For example, a batch can be specified with repeated identifiers:

dmsroute download-many \
  --source proteingym \
  --dataset-id BRCA1_HUMAN_Findlay_2018 \
  --dataset-id PTEN_HUMAN_Mighell_2018 \
  --output-dir datasets

Source artifacts are cached under ~/.cache/dmsroute by default. Use --cache-dir to select another location.

MaveDB acquisition

API

API acquisition is the default for MaveDB catalog, metadata, and download commands. It retrieves the current score-set metadata and scores for a permanent URN.

dmsroute download \
  --source mavedb \
  --dataset-id urn:mavedb:00000001-a-4 \
  --output-dir datasets/ube2i

Snapshot

Bulk snapshots are versioned Zenodo records. Snapshot acquisition is explicit and requires the selected record to be present in the local cache.

dmsroute snapshot fetch --record 20840937

dmsroute discover \
  --snapshot 20840937 \
  --query BRCA1

dmsroute download \
  --source mavedb \
  --dataset-id urn:mavedb:00000001-a-4 \
  --acquisition snapshot \
  --snapshot-record 20840937 \
  --output-dir datasets/ube2i-snapshot

dmsroute snapshot extract extracts raw score and count tables. Snapshot standardization is available through download and download-many; the YAML pipeline uses the MaveDB API.

Configuration

Run a configured pipeline with:

dmsroute run --config examples/pipeline.yml

A configuration may contain ProteinGym, MaveDB, or both:

proteingym:
  resource: dms_substitutions
  dir_base: datasets/proteingym
  datasets:
    - dataset_id: BLAT_ECOLX_Jacquier_2013

mavedb:
  dir_base: datasets/mavedb
  datasets:
    - dataset_id: "urn:mavedb:00000001-a-4"

output:
  summary_dir: datasets/summaries

Use --only proteingym or --only mavedb to select one configured source. --dry-run resolves configuration and source metadata without writing processed datasets. The full configuration contract is documented in examples/config.reference.yml.

Output

A successful download writes one dataset bundle:

output-directory/
|-- standardized.csv
|-- summary.csv
`-- summary.json

The standardized table preserves source columns and adds common dataset, variant, sequence, score, and row-status fields. Source scores are copied to score_raw; score transformations are opt-in.

download-many also writes download-summary.csv and download-summary.json at the batch root. YAML pipelines write processed CSV files under each source directory and combined summaries under output.summary_dir.

Python API

The same download workflow is available from Python:

from pathlib import Path

from dmsroute import FilesystemCache, download_and_standardize_dataset

cache = FilesystemCache(Path.home() / ".cache" / "dmsroute")
result = download_and_standardize_dataset(
    "mavedb",
    "urn:mavedb:00000001-a-4",
    output_dir="datasets/ube2i",
    cache=cache,
)

print(result.dataset_path)

Local tables can be standardized with build_proteingym_dataset, build_proteingym_indel_dataset, and build_mavedb_dataset.

Documentation

  • examples/ contains notebooks for acquisition, parsing, and score transformations.
  • examples/config.reference.yml documents every YAML option.
  • DEVELOPMENT.md covers development setup, architecture, tests, and packaging checks.
  • dmsroute <command> --help is the reference for CLI options.

Citation

If you use DMSRoute in your research, please cite:

Fernández-Villegas, D.; Escobedo, S.; Alarcón, T.; Medina-Ortiz, D. DMSRoute. Version 0.1.2, 2026. Zenodo. https://doi.org/10.5281/zenodo.21924522

@software{dmsroute2026,
  author    = {Fernández-Villegas, Diego and Escobedo, Sebastián and Alarcón, Tomás and Medina-Ortiz, David},
  title     = {DMSRoute},
  year      = {2026},
  version   = {0.1.2},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.21924522},
  url       = {https://doi.org/10.5281/zenodo.21924522}
}

License

MIT. See LICENSE.

Metadata

Release files for dmsroute 0.1.2

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

Source distribution (sdist)

Source distribution for dmsroute 0.1.2
File Size Uploaded Provenance Actions
dmsroute-0.1.2.tar.gz 180.4 kB With provenance Details for dmsroute-0.1.2.tar.gz

Built distribution (wheel)

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

Total release size: 286.4 kB

Release files / dmsroute-0.1.2.tar.gz

Download URL dmsroute-0.1.2.tar.gz
Size 180.4 kB
Tags Source
SHA-256 checksum
How to use checksums
48e9bb266af82c7672602a8b15eb8cc1fee74a23443395343b447f98cc18825f
BLAKE2b-256 checksum
How to use checksums
6e499726bb0849ca0eda88ed4b3499b7e83ebbccc4f706d68db5b6aee2e5ade9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / dmsroute-0.1.2-py3-none-any.whl

Download URL dmsroute-0.1.2-py3-none-any.whl
Size 106.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d68b7eb1afa1ed0ff5047e412d47033a11c43c30e2b6eb3b28af3c196f29dbcd
BLAKE2b-256 checksum
How to use checksums
1b58c1fa7b7ed56a4a6597a546dfc4f1289cc89d294c57e0f0c5e6045fdd6284
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for dmsroute 0.1.2

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for dmsroute-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

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.1.2 This release

2 release files Full 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