如何将Seurat3.0版本的object转换为monocle的CDS

之前Monocle2直接输入Seurat object只适用于Seuratv2.0版本的Seurat object。官方也在github上的issue处表明暂时还未有直接将Seurat3.0的Seurat object直接转换为Monocle2的CDS的function。

所以需要从头构建CDS:

一般monocle构建CDS需要3个矩阵:expr.matrix、pd、fd

expr.matrix :基因-细胞表达矩阵

pd :细胞-细胞特征注释矩阵

fd  :基因-基因特征注释矩阵

这里Seurat object是RA.integrated

#Seurat object中的@assay中的@counts会存放单细胞测序的raw data,所以选择将@counts转换为expression matrix

RA_matrix<-as(as.matrix(RA.integrated@assays$RNA@data), 'sparseMatrix')

#构建featuredata,一般featuredata需要两个col,一个是gene_id,一个是gene_short_name,row对应counts的rownames

feature_ann<-data.frame(gene_id=rownames(RA_matrix),gene_short_name=rownames(RA_matrix))

rownames(feature_ann)<-rownames(RA_matrix)

RA_fd<-new("AnnotatedDataFrame", data = feature_ann)

#Seurat object中的@meta.data一般会存放表型相关的信息如cluster、sample的来源、group等,所以选择将metadata转换为phenodata

sample_ann<[email protected]

rownames(sample_ann)<-colnames(RA_matrix)

RA_pd<-new("AnnotatedDataFrame", data =sample_ann)

RA.cds<-newCellDataSet(RA_matrix,phenoData =RA_pd,featureData =RA_fd,expressionFamily=negbinomial.size())

#查看phenodata、featuredata

head(pData(RA.cds))

head(fData(RA.cds))

由于这里导入的expression matrix 是raw data,所以后续还需要进行normalized。

你可能感兴趣的:(如何将Seurat3.0版本的object转换为monocle的CDS)