美文网首页单细胞分析tips
单细胞/空间组利用scanpy实现Seurat的splitby分

单细胞/空间组利用scanpy实现Seurat的splitby分

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

    在使用Seurat时,经常需要对不同分类的样本在同一画布上进行可视化,可以非常方便地通过其DimPlot()函数的goupyby和spliby等参数实现,例如对照组和实验组,如下:

    以正常和肿瘤组织作为区别

    但是在python的环境中,scanpy的sc.pl.umap()并没有这么灵活的参数。所以需要通过循环解决问题,sc.pl.umap中的color参数类似于Seurat的groupby,但其groups参数完全没有Seurat的splitby强大。所以我们可以通过python的Matplotlib包的plt.subplots()函数,结合循环将分组内容一一绘制,再多个分组图合并在一起,就实现相同目的。

    下面提供一个参考:

    celltype=adata.obs['refined_pred'].unique().tolist()
    fig, axes = plt.subplots(4, 5, figsize=(18, 12), tight_layout=True,dpi=600) # nrows和ncols取决于想要的画图个数
    x=0;y=0
    for i in celltype: #celltype为任何需要并列绘制的list
        sc.pl.umap(adata, color='refined_pred', groups=[i], ax=axes[y][x])
        x = x +1 if x <4 else 0
        y = y +1 if y <3 and x ==0 else y
    plt.savefig('./split.png')
    
    按细胞类型分页绘图

    以上这个例子是用于空间组分图绘制不同细胞类型分布的图谱,对应普通的单细胞数据,例如实验组 vs 对照组、scRNA数据 vs scATAC数据也是一样的(循环+共同绘制)。而且值得注意的是,空间组之所以不采用官方推荐的scanpy.pl.spatial()函数,是因为这个函数对于纯粹的scanpy数据可以很好的适配,但是对于其他空间组工具包,例如spateo、spGCN等等,就不适配,还是原始的sc.pl.umap()更香,具有更加广的应用面和适配性,不过注意调整adata.obsm['umap']=adata.obsm['spatial']就可。

    相关文章

      网友评论

        本文标题:单细胞/空间组利用scanpy实现Seurat的splitby分

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