單細胞/空間組利用scanpy實現(xiàn)Seurat的splitby分頁繪圖

在使用Seurat時,經(jīng)常需要對不同分類的樣本在同一畫布上進行可視化,可以非常方便地通過其DimPlot()函數(shù)的goupyby和spliby等參數(shù)實現(xiàn),例如對照組和實驗組,如下:

以正常和腫瘤組織作為區(qū)別

但是在python的環(huán)境中,scanpy的sc.pl.umap()并沒有這么靈活的參數(shù)。所以需要通過循環(huán)解決問題,sc.pl.umap()中的color參數(shù)類似于Seurat的groupby,但其groups參數(shù)完全沒有Seurat的splitby強大。所以我們可以通過python的Matplotlib包的plt.subplots()函數(shù),結(jié)合循環(huán)將分組內(nèi)容一一繪制,再多個分組圖合并在一起,就實現(xiàn)相同目的。

下面提供一個參考:

#data.obsm['umap']=data.obsm['spatial']
#data.obs.refined_pred=data.obs.refined_pred.astype('str') # 數(shù)字轉(zhuǎn)為字符串
celltype=data.obs['refined_pred'].unique().tolist() # refined_pred是細胞注釋
fig, axes = plt.subplots(4, 5, figsize=(18, 12), tight_layout=True,dpi=600) # nrows和ncols取決于想要的畫圖個數(shù)
x=0;y=0
for i in celltype: #celltype為任何需要并列繪制的list
    fig = sc.pl.umap(data, color='refined_pred', groups=i, ax=axes[y][x],show=False)
    x = x +1 if x <4 else 0
    y = y +1 if y <3 and x ==0 else y
plt.show()
#plt.savefig('./split.png')
按細胞類型分頁繪圖

以上這個例子是用于空間組分圖繪制不同細胞類型分布的圖譜,對應(yīng)普通的單細胞數(shù)據(jù),例如實驗組 vs 對照組、scRNA數(shù)據(jù) vs scATAC數(shù)據(jù)也是一樣的(循環(huán)+共同繪制)。而且值得注意的是,空間組之所以不采用官方推薦的scanpy.pl.spatial()函數(shù),是因為這個函數(shù)對于純粹的scanpy數(shù)據(jù)可以很好的適配,但是對于其他空間組工具包,例如spateo、spGCN等等,就不適配,還是原始的sc.pl.umap()更香,具有更加廣的應(yīng)用面和適配性,不過注意調(diào)整adata.obsm['umap']=adata.obsm['spatial']就可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容