

图片全国最大的成人色情网全国最大的成人色情网
引子Hello小伙伴们公共好,我是生信技巧树的小学徒”我才不吃蛋黄“。今天是胃癌单细胞数据集GSE163558复现系列第八期。第七期咱们使用AddModuleScore_UCell函数计较细胞的增殖和转移评分。本期,咱们将使用monocle2进行拟时序分析。
1.布景先容系列推文前七期,咱们共同学习了单细胞测序的基础分析,从第八期启动,咱们将不断学习拟时序分析(Pseudo-Temporal Analysis),“Copykat”分析及细胞通信等高均分析。
疾病是一个动态变化的过程,在疾病发生发展的过程中,细胞景况随时分不断变化。现存的单细胞测序工夫提供的是某一时刻的“快照”,关联词通过拟时序分析,咱们不错推断出细胞的动态变化过程。
拟时序分析(Pseudo-Temporal Analysis)的界说如下:
拟时序分析(Pseudo-Temporal Analysis)是一种分析举止,频繁用于参议那些在时分上不连气儿的数据集。它试图通过模拟时分序列的步地来分析数据,即使数据自身并不是按照时分划定收罗的。这种分析举止在多个限制皆有应用,比如在生物信息学中,它不错用于分析基因抒发数据,即使这些数据不是在连气儿的时分点上收罗的。拟时序分析的要害在于构建一个编造的时分轴,然后在这个时分轴上对数据进行排序和分析。这频繁触及到以下几个举止:数据预惩处:清洗数据,确保数据的质地和一致性。特征采取:识别和采取对分析有效的特征或变量。时分轴构建:凭证数据的特点构建一个编造的时分轴,这可能基于生物学过程、实验谋略或其他逻辑。排序:将数据按照编造时分轴进行排序。分析:使用时分序列分析的举止来分析排序后的数据,比如趋势分析、周期性分析等。考据:通过交叉考据或其他举止来考据分析遵守的可靠性。*
单细胞拟时序分析的主要宗旨包括:
细胞发展轨迹推断:通过分析细胞景况的变化,推断细胞是如何从一种景况发展或分化到另一种景况。细胞景况排序:将细胞按照它们在假设的发展轨迹上的位置进行排序,即使这些细胞并非在连气儿的时分点上被不雅测。生物学过程荟萃:识别细胞在特定生物学过程中的动态变化,如细胞分化、发育、疾病发扬等。要害基因和调控汇聚识别:发面前细胞景况转变中起要害作用的基因和调控汇聚。细胞异质性探究:揭示细胞群体里面的异质性,以及不同细胞亚群之间的关联。细胞气运展望:基于刻下的细胞景况和拟时序轨迹,展望细胞可能的异日发展和分化气运。动态生物学过程建模:构建数学模子来模拟细胞景况的动态变化,为生物学假设提供定量描绘。疾病参议和诊疗靶点发现:在疾病参议中,拟时序分析不错匡助荟萃病理景况下细胞的变化,发现潜在的诊疗靶点。发育过程的细胞谱系构建:在发育生物学中,拟时序分析有助于构建细胞谱系树,荟萃细胞的发祥祥和运。实验谋略疏导:通过荟萃细胞景况的变化,不错疏导异日的实验谋略,举例采取哪些细胞景况进行进一步的实验考据。Monocle是面前最常用的拟时序分析算法,其中枢工夫是一种机器学习算法——反向图形镶嵌(Reversed Graph Embedding)进行降维分析。Monocle2使用DDRtree进行降维分析,而Monocle3则使用UMAP降维,可视化细胞转录特征相同性关联,从而描绘细胞景况过渡轨迹。细胞景况过渡轨迹是“根”到“叶”的树状结构,细胞从根到达分支后,会采取一个分支往远方移动,临了到达叶子,每个细胞的psudotime值是它从叶复返根的距离。
monocle的分析经由与seurat雷同,准备输入文献,创建monocle对象cds(new cell data set),对数据预惩处,筛选特定基因,降维,计较psudotime值,临了可视化。本期使用monocle2进行拟时序分析。
2.数据分析2.1 导入数据撤消系统环境变量,开拓职责目次,加载R包,采取作念拟时序的亚群,读取恶性上皮细胞RDS文献:
rm(list=ls())getwd()setwd('')library(tidyverse)library(tinyarray)library(data.table) library(Seurat)library(ggplot2)library(clustree)library(cowplot)library(dplyr)library(monocle)sce.all = readRDS('malignant.rds')sce = sce.alltable(sce$celltype)Idents(sce) = sce$celltype
要是用我方电脑,细胞量太大,不错每个细胞亚群抽样 :
allCells=names(Idents(sce))allType = levels(Idents(sce))# choose_Cells = unlist(lapply(allType, function(x){# cgCells = allCells[Idents(sce)== x ]# cg=sample(cgCells,10)# cg# }))# cg_sce = sce[, allCells %in% choose_Cells]cg_sce = scetable(Idents(cg_sce))2.2 数据准备
monocle构建CDS需要3个矩阵:
expr.matrixphenodata(pd)featuredata(fd)expr.matrix:
Mono_tj<-cg_sceMono_matrix<-as(as.matrix(GetAssayData(Mono_tj,slot = "counts")), 'sparseMatrix')
构建featuredata:
一般需要两个col,一个是gene_id,一个是gene_short_name,row对应counts的rownames:
feature_ann<-data.frame(gene_id=rownames(Mono_matrix),gene_short_name=rownames(Mono_matrix))rownames(feature_ann)<-rownames(Mono_matrix)Mono_fd<-new("AnnotatedDataFrame", data = feature_ann)
构建phenodata:全国最大的成人色情网
Seurat object中的@meta.data一般会存放表型辩论的信息如cluster、sample的开头、group等,是以采取将metadata调度为phenodata:
sample_ann<-Mono_tj@meta.datarownames(sample_ann)<-colnames(Mono_matrix)Mono_pd<-new("AnnotatedDataFrame", data =sample_ann)2.3 monocle分析经由
构建new cell data set:
Mono.cds<-newCellDataSet(Mono_matrix,phenoData =Mono_pd,featureData =Mono_fd,expressionFamily=negbinomial.size())
newCellDataSet函数中,expressionFamily参数用于指定抒发矩阵的数据类型,有几个选项不错采取:疏淡矩阵用negbinomial.size();FPKM值用tobit();logFPKM值用gaussianff()。
稽察phenodata、featuredata:
head(pData(Mono.cds))head(fData(Mono.cds))
Mono.cds异常于Seurat V5构建的Seurat对象,随后需要对数据预惩处(猜想圭臬因子、猜想破裂度):
Mono.cds <- estimateSizeFactors(Mono.cds)Mono.cds <- estimateDispersions(Mono.cds)
筛选基因,这里不错凭证我方的需要筛选特定的基因:
disp_table <- dispersionTable(Mono.cds)unsup_clustering_genes <- subset(disp_table, mean_expression >= 0.1)Mono.cds <- setOrderingFilter(Mono.cds, unsup_clustering_genes$gene_id)
用DDRtree进行降维分析:
Mono.cds <- reduceDimension( Mono.cds, max_components = 2, method = 'DDRTree')
计较psudotime值:
Mono.cds <- orderCells(Mono.cds)head(pData(Mono.cds))
图片
2.4 monocle可视化展示State轨迹踱步图:
plot_cell_trajectory(Mono.cds,cell_size = 1)
图片
展示Cluster/Pseudotime轨迹踱步图:
p1 = plot_cell_trajectory(Mono.cds,color_by="celltype", size=1,show_backbone=TRUE)p2 = plot_cell_trajectory(Mono.cds,color_by="Pseudotime", size=1,show_backbone=TRUE) p1+p2
图片
分面知道:
plot_cell_trajectory(Mono.cds, color_by = "celltype") + facet_wrap("~sample", nrow = 1)
图片
树形图:
plot_complex_cell_trajectory(Mono.cds,x=1,y=2,color_by="celltype")+ scale_color_manual(values =mycolors)+ theme(legend.title = element_blank())
图片
沿时分轴的细胞密度图:
library(ggpubr)df <- pData(Mono.cds)view(df)
图片
ggplot(df,aes(Pseudotime, colour = celltype, fill=celltype))+ geom_density(bw=0.5,size=1,alpha =0.5)+theme_classic2()
图片
Monocle基因可视化:
head(unsup_clustering_genes)s.genes <- c("NOC2L","PLEKHN1","HES4","ISG15")p1 <- plot_genes_jitter(Mono.cds[s.genes,], grouping = "State", color_by = "State")p2 <- plot_genes_violin(Mono.cds[s.genes,], grouping = "State", color_by = "State")p3 <- plot_genes_in_pseudotime(Mono.cds[s.genes,], color_by = "State")
图片
图片
图片
拟时辩论基因聚类热图:
#高变基因disp.genes <- subset(disp_table, mean_expression >= 0.5&dispersion_empirical >= 1*dispersion_fit)disp.genes <- as.character(disp.genes$gene_id)diff_test <- differentialGeneTest(Mono.cds[disp.genes,], cores = 4, fullModelFormulaStr = "~sm.ns(Pseudotime)")sig_gene_names <- row.names(subset(diff_test, qval < 1e-50))plot_pseudotime_heatmap(Mono.cds[sig_gene_names,], num_clusters=4, show_rownames=T, return_heatmap=T)
图片
2.5 BEAM分析由于细胞基因抒发模式不同,单细胞轨迹中频繁包括分支。通过BEAM(Branched expression analysis modeling)分析,咱们可找到以依赖于分支的步地调控的基因。
disp_table <- dispersionTable(Mono.cds)disp.genes <- subset(disp_table, mean_expression >= 0.5&dispersion_empirical >= 1*dispersion_fit)disp.genes <- as.character(disp.genes$gene_id)mycds_sub <- Mono.cds[disp.genes,]plot_cell_trajectory(mycds_sub, color_by = "State")beam_res <- BEAM(mycds_sub, branch_point = 1, progenitor_method = "duplicate")beam_res <- beam_res[order(beam_res$qval),]beam_res <- beam_res[,c("gene_short_name", "pval", "qval")]mycds_sub_beam <- mycds_sub[row.names(subset(beam_res, qval < 1e-4)),]plot_genes_branched_heatmap(mycds_sub_beam, branch_point = 1, num_clusters = 3, show_rownames = T)
图片
结语本期,咱们插足了单细胞高均分析系列,使用monocle2进行了拟时序分析。下一期,凭证课程安排,咱们将暂时回到Bulk转录组,应用TCGA-STAD数据进行生涯分析。干货满满,宽待公共捏续追更,谢谢!
图片
本站仅提供存储做事,通盘实践均由用户发布,如发现存害或侵权实践,请点击举报。