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.
- Python ≥ 3.8
dvc-tools≥ 0.4.4Rscriptavailable on PATH (via conda, modules, or system install)- For
.qsfiles: theqsR package
pip install -e /path/to/dvc-tools-rThe plugin registers itself automatically — dt diff --list-handlers will
show the R Object handler.
# 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| Extension | Reader | Notes |
|---|---|---|
.Rds |
readRDS() |
Case-insensitive |
.rds |
readRDS() |
|
.qs |
qs::qread() |
Requires qs R package |
- 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
- Add extraction logic to
dvc_tools_r/r_scripts/extract_metadata.R - Create
dvc_tools_r/comparators/your_class.py - Register it in
dvc_tools_r/comparators/__init__.py