Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dvc-tools-r

R object (.Rds / .qs) content-diff plugin for dvc-tools.

Adds rich, structured diffing for serialised R objects to dt diff --content. Includes a Seurat comparator (v3, v4, v5) and a generic base comparator that works for any R class.

Requirements

  • Python ≥ 3.8
  • dvc-tools ≥ 0.4.4
  • Rscript available on PATH (via conda, modules, or system install)
  • For .qs files: the qs R package

Installation

pip install -e /path/to/dvc-tools-r

The plugin registers itself automatically — dt diff --list-handlers will show the R Object handler.

Usage

# Compare two Seurat .Rds files
dt diff old.Rds new.Rds --content

# Compare two versions of a DVC-tracked .qs file
dt diff data/seurat.qs --content --old HEAD~1

# Different output formats
dt diff old.Rds new.Rds --content -o json
dt diff old.Rds new.Rds --content -o html
dt diff old.Rds new.Rds --content -o md

# Detail levels
dt diff old.Rds new.Rds --content --summary
dt diff old.Rds new.Rds --content --granular

Supported formats

Extension Reader Notes
.Rds readRDS() Case-insensitive
.rds readRDS()
.qs qs::qread() Requires qs R package

Comparators

  • Seurat (v3 / v4 / v5): assays, reductions, cell metadata, graphs, commands, misc/tools
  • Base (any R class): class, slots, dimensions, attributes — always produces useful output, never errors on an unknown class

Adding a new comparator

  1. Add extraction logic to dvc_tools_r/r_scripts/extract_metadata.R
  2. Create dvc_tools_r/comparators/your_class.py
  3. Register it in dvc_tools_r/comparators/__init__.py

About

R object (.Rds/.qs) content-diff plugin for dvc-tools — Seurat v3/v4/v5 and generic R object comparators

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages