用来生成
Monocle2
中的数据对象CellDataSet(CDS/cds)
创建一个 CellDataSet
需要:
UMI matrix(sparse)
+Cell metadata object
+Feature metadata object
newCellDataSet(cellData=, phenoData=, featureData=, expressionFamily=)
cellData=
:UMI matrix
phenoData=
:Cell metadata object
, created based on@meta.data
inSeurat object
featureData=
:Feature metadata object
, mainly includesgene ID
andgene short name
expressionFamily=
:VGAM::negbinomial.size()
/VGAM::negbinomial()
/VGAM::tobit()
/VGAM::gaussianff()
每种数据适合的模型:http://cole-trapnell-lab.github.io/monocle-release/docs/
require(monocle)
require(Seurat)
require(dplyr)
#--------------------------------------------------------#
Seurat_object <- Human_REP1_RPL35_KD_25uM_3_200_filtered_feature_over_2500_HVF_1000_dim_5_G1_phase
#--------------------------------------------------------#
#Extract UMI matrix
UMI_matrix <- as(as.matrix(GetAssayData(Seurat_object, slot = "counts")), "sparseMatrix")
#Extract cell metadata
Seurat_cell_metadata <- Seurat_object@meta.data
Monocle2_cell_metadata <- new("AnnotatedDataFrame", data =Seurat_cell_metadata) #Create Monocle2 cell metadata object
#Extract gene metadata
Seurat_gene_metadata <- data.frame(gene_id=rownames(Seurat_object), gene_short_name=rownames(Seurat_object))
rownames(Seurat_gene_metadata)<-rownames(Seurat_object)
Monocle2_gene_metadata <- new("AnnotatedDataFrame", data = Seurat_gene_metadata) #Create Monocle2 gene metadata object
#Create Monocle2 object: CellDataSet(CDS/cds)
Monocle2_object <- newCellDataSet(cellData=UMI_matrix, phenoData = Monocle2_cell_metadata, featureData = Monocle2_gene_metadata, expressionFamily=VGAM::negbinomial.size())
#--------------------------------------------------------#
#Estimate size factor for every cell and dispersion for every feature
Monocle2_object <- estimateSizeFactors(Monocle2_object) #Estimate size factor for every cell
Monocle2_object <- estimateDispersions(Monocle2_object) #Estimate dispersion for every feature
网友评论