美文网首页单细胞分析tipsscanpyseurat
将R环境下的Seurat RDS格式数据转化成为到python环

将R环境下的Seurat RDS格式数据转化成为到python环

作者: 纷纷不可诉 | 来源:发表于2022-06-06 16:12 被阅读0次

    无论是单细胞、空间组还是ATAC的数据,有时由于下游分析的需求或可视化的需求,同时由于python的运算速度的优势,目前越来越多单细胞分析的工具开始在python环境下开发(scanpy/spGCN/scVelo……),但是大家大多都习惯了R的分析环境(Seurat/Harmony/Monocle3……),所以我们经常需要在不同的环境中运行同一个分析对象,这所以涉及到的数据类型的转变就非常关键了。

    想直接想找工具将RDS转为python可读数据对象的包,目前还没有……(如果有大佬可以开发一下)。

    目前所以从数据本身出发有三种方式,总结自目前网络上一些可行的方法:

    1,提取矩阵(稀疏/稠密)和特征信息(metadata),手动构筑anndata(单细胞分析时python中的一种数据结构,具体了解可以看一下:https://www.jianshu.com/p/9b057e105c42,写得挺好)就好。前提是对R的S4对象和python的anndata对象有基础的认识,就可以搞定,这是最本质也是最万能的方法,除了门槛高。

    2,存储的时候就注意,不要保存成rds,或者已经这样保存了也无所谓,可以读入再重新存:
    (1)存储成h5ad格式。Seurat数据写成h5需要借助包SeuratDisk: https://github.com/mojaveazure/seurat-disk
    从R环境下Seurat的对象保存成h5ad的格式:

    DefaultAssay(sdata) <- "Spatial" #选择你要保存的Assay
    SaveH5Seurat(sdata, filename = "data.h5Seurat",overwrite = TRUE)
    Convert("data.h5Seurat", dest = "h5ad",overwrite = TRUE)
    

    然后用python的anndata包/scanpy包直接读入就好,因为h5ad本来就是单细胞在跑一python环境中分析最基础的格式,对标R中的seurat对象或sce对象

    adata=anndata.read('./data.h5ad') #用anndata
    adata=scanpy.read('./data.h5ad')  #用scanpy
    

    这个方法可以具体参考:https://www.jianshu.com/p/c438d545f696 他写得更加详细一点

    (2)Seurat官方设置loom格式也是可行方式之一:
    参见:https://www.jianshu.com/p/147da295fc34
    将Seurat对象转为loom:

    #读入seurat处理后的rds文件
    library(Seurat)
    library(loomR)
    sdata <- readRDS(file = "./seurat_project.rds")
    # 在R环境下将seurat对象转换为loom文件
    sdata.loom <- as.loom(x = sdata, filename = "./data.loom", verbose = FALSE)
    # Always remember to close loom files when done
    sdata.loom$close_all()
    

    在python环境下读入loom,成为adata:

    import scanpy as sc
    adata = sc.read_loom("./data.loom", cleanup=False, X_name='spliced', obs_names='CellID', var_names='Gene', dtype='float32'))
    

    总而言之,经个人使用和实际操作来说,第二个存储成为h5ad的方法时最好用的、也最友好,除了只能保存一个assay之外,就都没问题,但是如果许多保存多个assay成为anndata中的多个layer,这就的用手动的方法了。

    相关文章

      网友评论

        本文标题:将R环境下的Seurat RDS格式数据转化成为到python环

        本文链接:https://www.haomeiwen.com/subject/msyjmrtx.html