Limour

Limour

临床医学在读。

【移轉】CellTypist 註釋免疫細胞亞群

安裝 CellTypist#

conda create -n celltypist -c conda-forge r-base=4.1.2
conda activate celltypist
conda install -c conda-forge r-seurat=4.1.0 -y
conda install -c conda-forge r-irkernel=1.3 -y
IRkernel::installspec(name='celltypist', displayname='r-celltypist')
conda install -c conda-forge scanpy=1.8.2 -y
/opt/conda/envs/celltypist/bin/pip3 install celltypist -i https://pypi.tuna.tsinghua.edu.cn/simple
conda install -c conda-forge r-reticulate=1.24 -y
python3
import celltypist
celltypist.models.download_models(force_update = False)

載入套件#

Sys.setenv(RETICULATE_PYTHON = "/opt/conda/envs/celltypist/bin/python3.8")
library(reticulate)
scanpy = import("scanpy")
celltypist = import("celltypist")
pandas <- import("pandas")
numpy = import("numpy")
py_config()

載入資料#

library(Seurat)
sce <- readRDS("~/upload/yy_zhang_data/scRNA-seq/pca.celltype.rds")
Myeloid <- subset(sce, cell_type=='Myeloid')

seurat 轉 scanpy#

# 資料矩陣, scanpy與Seurat的行列定義相反
adata.X = numpy$array(t(as.matrix(Myeloid[['RNA']]@counts)))
# 對每個細胞的觀察
adata.obs = pandas$DataFrame([email protected][colnames(Myeloid[['RNA']]@counts),])
# 對基因矩陣的註釋
adata.var = pandas$DataFrame(data.frame(gene = rownames(Myeloid[['RNA']]@counts), row.names = rownames(Myeloid[['RNA']]@counts)))
 
# 組裝AnnData物件
adata = scanpy$AnnData(X = adata.X, obs=adata.obs, var=adata.var)

進行預測#

model = celltypist$models$Model$load(model = 'Immune_All_AddPIP.pkl')
model$cell_types
scanpy$pp$normalize_total(adata, target_sum=1e4)
scanpy$pp$log1p(adata)
predictions = celltypist$annotate(adata, model = 'Immune_All_AddPIP.pkl', majority_voting = T)

預測添加到 seurat 物件#

Myeloid = AddMetaData(Myeloid, predictions$predicted_labels)
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。