seurat結果轉為scanpy可處理對象

作者:ahworld
鏈接:seurat結果轉為scanpy可處理對象
來源:微信公眾號seqyuan
著作權歸作者所有,任何形式的轉載都請聯(lián)系作者。

怎樣把seurat的對象轉換成scanpy能夠識別的數(shù)據(jù)格式呢,這一個是R S3對象,另一個是python的anndata對象。最初的想法是能不能把seurat對象的矩陣和分群信息導出到文件,再手動構建一個anndata對象,真要做的時候發(fā)現(xiàn)面臨很多困難。

最終經過在google搜索,毫無意外的發(fā)現(xiàn)了同道中人,有相同需求的人在bioinformatics上提問Convert R RNA-seq data object to a Python object,通過查看這個頁面提供的方案,我發(fā)現(xiàn)seurat官網提供了不同單細胞處理軟件結果互通的轉換方法。

seurat官網提供了seurat對象SingleCellExperimentloom、AnnData三種單細胞數(shù)據(jù)格式相互轉換的方法。目前seurat(version 3.1)不支持寫入scanpy要求的H5AD文件,所以目前的解決方案是:

  1. Seurat對象轉換為loom文件
  2. Scanpy讀取loom文件轉換為能夠操作的anndata對象

要是實現(xiàn)上面的兩個簡單的步驟還需要安裝一些R和python包,需要安裝的有以下幾個,如果已經安裝了,忽略就好:

安裝好以上包之后,在R中執(zhí)行以下代碼 ,實現(xiàn)第一步: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中執(zhí)行以下代碼 ,實現(xiàn)第二步: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里的函數(shù)畫marker gene堆疊小提琴圖

marker_genes = ['Stfa1', 'Ngp', 'Ccl5', 'Ccl4', 'BC100530', 'Gzma', 'Gata2', 'Cd74']
ax = sc.pl.stacked_violin(adata, marker_genes, groupby='ClusterName', rotation=90)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容