Rds2py
Read RDS files, in Python
Install / Use
/learn @BiocPy/Rds2pyREADME
rds2py
Parse and construct Python representations for datasets stored in RDS or RData files. rds2py supports various base classes from R, and Bioconductor's SummarizedExperiment and SingleCellExperiment S4 classes. For more details, check out rds2cpp library.
Installation
Package is published to PyPI
pip install rds2py
# or install optional dependencies
pip install rds2py[optional]
By default, the package does not install packages to convert python representations to BiocPy classes. Please consider installing all optional dependencies.
Usage
[!NOTE]
If you do not have an RDS object handy, feel free to download one from single-cell-test-files.
from rds2py import read_rds, read_rda
r_obj = read_rds("path/to/file.rds") # or read_rda("path/to/file.rda")
The returned r_obj either returns an appropriate Python class if a parser is already implemented or returns the dictionary containing the data from the RDS file.
Write-your-own-reader
Reading RDS or RData files as dictionary representations allows users to write their own custom readers into appropriate Python representations.
from rds2py import parse_rds, parse_rda
robject = parse_rds("path/to/file.rds") # or use parse_rda for rdata files
print(robject)
If you know this RDS file contains an GenomicRanges object, you can use the built-in reader or write your own reader to convert this dictionary.
from rds2py.read_granges import read_genomic_ranges
gr = read_genomic_ranges(robject)
print(gr)
Type Conversion Reference
| R Type | Python/NumPy Type | | ---------- | ------------------------------------ | | numeric | numpy.ndarray (float64) | | integer | numpy.ndarray (int32) | | character | list of str | | logical | numpy.ndarray (bool) | | factor | list | | data.frame | BiocFrame | | matrix | numpy.ndarray or scipy.sparse matrix | | dgCMatrix | scipy.sparse.csc_matrix | | dgRMatrix | scipy.sparse.csr_matrix |
and integration with BiocPy ecosystem for Bioconductor classes
- SummarizedExperiment
- RangedSummarizedExperiment
- SingleCellExperiment
- GenomicRanges
- MultiAssayExperiment
Developer Notes
This project uses pybind11 to provide bindings to the rds2cpp library. Please make sure necessary C++ compiler is installed on your system.
<!-- pyscaffold-notes -->Note
This project has been set up using PyScaffold 4.5. For details and usage information on PyScaffold see https://pyscaffold.org/.
Related Skills
node-connect
346.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
107.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
107.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
346.4kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
