|
发表于 2022-8-4 10:56:41
|
查看: 2145 |
回复: 0
文档:https://cole-trapnell-lab.github.io/monocle3/docs/clustering/
一、读入数据
- #1 读入数据
- expression_matrix <- readRDS("monocle3/celegans/cao_l2_expression.rds")
- cell_metadata <- readRDS("monocle3/celegans/cao_l2_colData.rds")
- gene_annotation <- readRDS("monocle3/celegans/cao_l2_rowData.rds")
- # Make the CDS object
- cds <- new_cell_data_set(expression_matrix,
- cell_metadata = cell_metadata,
- gene_metadata = gene_annotation)
复制代码
二、数据处理
数据处理包括表达数据标准化和批次效应的去除,对数据进行标准化使用 preprocess_cds函数,相当于 seurat 中 NormalizeData+ScaleData+RunPCA。
- cds <- preprocess_cds(cds, num_dim = 100)
复制代码 num_dim 是降维的维数,默认为 100,这里是根据各组成部分解释的差异散点趋势图,也可以自己调整,建议安装默认维数进行降维。
- plot_pc_variance_explained(cds)
复制代码
monocle3 数据处理
三、降维以及可视化
3.1 UMAP 方法
- cds <- reduce_dimension(cds)
- plot_cells(cds)
- plot_cells(cds, color_cells_by="cao_cell_type")
- #绘制特定基因在细胞中表达
- plot_cells(cds, genes=c("cpna-2", "egl-21", "ram-2", "inos-1"))
复制代码- #可以使用多线程,前面读取好cds数据重新preprocess
- cds <- preprocess_cds(cds, num_dim = 100)
- cds <- reduce_dimension(cds, cores = 12)
- plot_cells(cds, color_cells_by="cao_cell_type")
- #和单线程的结果看起来差别不大,但是提醒是有差别的。
复制代码 3.2 tSNE 方法
- cds <- reduce_dimension(cds, reduction_method="tSNE")
- plot_cells(cds, reduction_method="tSNE", color_cells_by="cao_cell_type", group_label_size=3.5,cell_size = 0.8)
复制代码 3.3 去除批次效应
- plot_cells(cds, color_cells_by="plate", label_cell_groups=FALSE)
- cds <- align_cds(cds, num_dim = 100, alignment_group = "plate")
- cds <- reduce_dimension(cds)
- plot_cells(cds, color_cells_by="plate", label_cell_groups=FALSE)
复制代码 3.4 细胞聚类
- cds <- cluster_cells(cds, resolution=1e-5)
- plot_cells(cds)
复制代码- #使用PAGA算法进行聚类
- plot_cells(cds, color_cells_by="partition", group_cells_by="partition")
- #根据细胞类型进行涂色
- plot_cells(cds, color_cells_by="cao_cell_type")
- #更改细胞标注策略,不对聚类的进行标注。
- plot_cells(cds, color_cells_by="cao_cell_type", label_groups_by_cluster=FALSE)
复制代码
四、 寻找 marker 基因
- #寻找每个cluster的marker基因
- marker_test_res <- top_markers(cds, group_cells_by="partition",
- reference_cells=1000, cores=8)
- #根据pseudo_R2方法对标记基因进行排序,取出每个cluster排名最高的基因
- library(dplyr)
- top_specific_markers <- marker_test_res %>% filter(fraction_expressing >= 0.10) %>% group_by(cell_group) %>% top_n(1, pseudo_R2)
- top_specific_marker_ids <- unique(top_specific_markers %>% pull(gene_id))
- #绘制每个cluster中不同marker基因的表达量
- plot_genes_by_group(cds, top_specific_marker_ids, group_cells_by="partition",
- ordering_type="maximal_on_diag",max.size=3)
- #选取更多marker基因进行绘图
- top_specific_markers <- marker_test_res %>% filter(fraction_expressing >= 0.10) %>% group_by(cell_group) %>% top_n(3, pseudo_R2)
- top_specific_marker_ids <- unique(top_specific_markers %>% pull(gene_id))
- plot_genes_by_group(cds,top_specific_marker_ids,group_cells_by="partition", ordering_type="cluster_row_col", max.size=3)
复制代码
五、 对细胞进行注释
- #根据marker基因对细胞进行鉴定。
- colData(cds)$assigned_cell_type <- as.character(partitions(cds))
- #为每个cluster重新命名。
- colData(cds)$assigned_cell_type <- dplyr::recode(colData(cds)$assigned_cell_type,
- "1"="Body wall muscle",
- "2"="Germline",
- "3"="Motor neurons",
- "4"="Seam cells",
- "5"="Sex myoblasts",
- "6"="Socket cells",
- "7"="Marginal_cell",
- "8"="Coelomocyte",
- "9"="Am/PH sheath cells",
- "10"="Ciliated neurons",
- "11"="Intestinal/rectal muscle",
- "12"="Excretory gland",
- "13"="Chemosensory neurons",
- "14"="Interneurons",
- "15"="Unclassified eurons",
- "16"="Ciliated neurons",
- "17"="Pharyngeal gland cells",
- "18"="Unclassified neurons",
- "19"="Chemosensory neurons",
- "20"="Ciliated neurons",
- "21"="Ciliated neurons",
- "22"="Inner labial neuron",
- "23"="Ciliated neurons",
- "24"="Ciliated neurons",
- "25"="Ciliated neurons",
- "26"="Hypodermal cells",
- "27"="Mesodermal cells",
- "28"="Motor neurons",
- "29"="Pharyngeal gland cells",
- "30"="Ciliated neurons",
- "31"="Excretory cells",
- "32"="Amphid neuron",
- "33"="Pharyngeal muscle")
- #重新绘图
- plot_cells(cds, group_cells_by="partition", color_cells_by="assigned_cell_type")
复制代码
每个 cluster 重新命名之后进行绘图
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
|