美文网首页scRNA-seqR包单细胞空间转录组
seurat结果转为scanpy可处理对象

seurat结果转为scanpy可处理对象

作者: seqyuan | 来源:发表于2020-02-18 15:09 被阅读0次

    作者:ahworld
    链接:seurat结果转为scanpy可处理对象
    来源:微信公众号seqyuan
    著作权归作者所有,任何形式的转载都请联系作者。

    怎样把seurat的对象转换成scanpy能够识别的数据格式呢,这一个是R S3对象,另一个是python的anndata对象。最初的想法是能不能把seurat对象的矩阵和分群信息导出到文件,再手动构建一个anndata对象,真要做的时候发现面临很多困难。

    最终经过在google搜索,毫无意外的发现了同道中人,有相同需求的人在bioinformatics上提问Convert R RNA-seq data object to a Python object,通过查看这个页面提供的方案,我发现seurat官网提供了不同单细胞处理软件结果互通的转换方法。

    seurat官网提供了seurat对象SingleCellExperimentloomAnnData三种单细胞数据格式相互转换的方法。目前seurat(version 3.1)不支持写入scanpy要求的H5AD文件,所以目前的解决方案是:

    1. Seurat对象转换为loom文件
    2. Scanpy读取loom文件转换为能够操作的anndata对象

    要是实现上面的两个简单的步骤还需要安装一些R和python包,需要安装的有以下几个,如果已经安装了,忽略就好:

    安装好以上包之后,在R中执行以下代码 ,实现第一步:Seurat对象转换为loom文件

    #读入seurat处理后的rds文件
    library(Seurat)
    library(loomR)
    
    sdata <- readRDS(file = "/Users/yuanzan/Desktop/tmp/seurat_project.rds")
    # seurat对象转换为loop文件
    sdata.loom <- as.loom(x = sdata, filename = "/Users/yuanzan/Desktop/tmp/sdata.loom", verbose = FALSE)
    # Always remember to close loom files when done
    sdata.loom$close_all()
    

    接着在jupyter中执行以下代码 ,实现第二步:Scanpy读取loom文件转换为能够操作的anndata对象

    import scanpy as sc
    adata = sc.read_loom("/Users/yuanzan/Desktop/tmp/sdata.loom", sparse=True, cleanup=False, X_name='spliced', obs_names='CellID', var_names='Gene', dtype='float32')
    

    我们再试一下用scanpy里的函数画marker gene堆叠小提琴图

    marker_genes = ['Stfa1', 'Ngp', 'Ccl5', 'Ccl4', 'BC100530', 'Gzma', 'Gata2', 'Cd74']
    ax = sc.pl.stacked_violin(adata, marker_genes, groupby='ClusterName', rotation=90)
    

    相关文章

      网友评论

        本文标题:seurat结果转为scanpy可处理对象

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