当前位置:首页>python>我宣布:单细胞R与python之间转换的奔溃时代已结束

我宣布:单细胞R与python之间转换的奔溃时代已结束

  • 2026-09-10 08:35:59
我宣布:单细胞R与python之间转换的奔溃时代已结束

这两天被seurat与scanpy之前的转换差点折腾断气了.......

电脑也差点干甭了......

SeuratDisk 和 MuDataSeurat 的各种坑.....

为什么要绞尽脑汁去debug别人的包?或许写包的人就是想折磨我们呢?与其在这些事情上浪费时间和精力,还不如自己搞一个?

数据转换的目的只有一个:

转换前后信息保持一致

有什么标准流程吗?

没有.....

于是.....

scBridge就这样出来了.....

🎯 为什么需要 scBridge?

作为单细胞分析人员,我们经常遇到这些困扰:

R和Python生态割裂:Seurat (R) 和 Scanpy (Python) 各有所长,但数据转换总是麻烦

SeuratDisk各种bug:转换失败、数据丢失、版本不兼容...

MuDataSeurat限制多:只支持部分功能,文档不清晰

手动转换太痛苦:写大量代码,还得处理格式问题

✨ scBridge 

    scBridge是一个专门解决 Seurat 和 AnnData (h5ad) 格式的双向转换问题而生。

    吹牛X点说:双向自如,随意切换,想用R就用R,不想用了换python继续搞,看python不爽了,两行代码再回到R。

核心优势

🔄 双向转换:Seurat → h5ad 和 h5ad → Seurat

🐍 Python集成:完美配合 Scanpy 生态系统|

📦 零配置:自动管理临时文件,开箱即用 

🔧 版本兼容:同时支持 Seurat v4 和 v5

🛡️ 稳定可靠:绕过已知bug,完整保留数据 

🎯 简单易用: 只需两个函数:`seurat2py()` 和 `py2seurat()` 

📦 快速安装

# 从GitHub安装

install.packages("remotes")remotes::install("xiaoqqjun/scBridge")

## 依赖要求

R包: Seurat (≥4.0.0), Matrix, reticulate  Python模块:scanpy, pandas, numpy, scipy
# python 需要大家自行配置pip install scanpy pandas numpy scipy

🚀 使用示例

场景1:R → Python

源对象UMAP:

将你的 Seurat 分析结果发送给 Python 生态:

library(scBridge)# 一行代码搞定seurat2py(seurat_obj, "output.h5ad")

转换后我在python 绘图:

Python → R

     我们再把它转回R,此时我们可以只需要找到这个文件的位置即可,操作还是在R:

library(scBridge)# 读入Rseurat_obj <- py2seurat("output.h5ad")# 继续Seurat分析DimPlot(seurat_obj, reduction = "umap")

table(test_obj$orig.ident)

names(test_obj@meta.data)

DimPlot(test_obj)

seurat2py(test_obj, "output.h5ad")

## 我们再把这个output.h5ad 转回来

test2rda <- py2seurat("output.h5ad")names(test2rda@meta.data)## 对比一下列名完全一致# 此时默认的Idents如果是SeuratProject,需要调整一下## 新版本这里我做了优化,没测试行不行:DimPlot(test2rda)## 可以设置我们之前的DimPlot(test2rda,group.by = "big_celltype")## 可能需要设置一下IdentsIdents(test2rda) <- test2rda$big_celltype

这是再转回来的UMAP.

地址:https://github.com/xiaoqqjun/scBridge

欢迎老铁们试用+建议!!

最新文章

随机文章