接上一篇,pySCENIC分析完之后就可以进行可视化了,个人认为最重要的有三个图:rss点图,rank图,转录因子表达水平热图,3个图结合着看。

1.loom文件读入R,提取数据

library(SCopeLoomR)
library(SCENIC)
library(AUCell)
loom <- open_loom("/yourpath/SCENIC.loom") 
regulons_incidMat <- get_regulons(loom, column.attr.name="Regulons")
regulonAUC <- get_regulons_AUC(loom,column.attr.name = 'RegulonsAUC')

2.可视化点图:寻找cluster特异性转录因子

#提取细胞metadata信息
cellinfo <-sc@meta.data[,c("cluster_name","group","orig.ident","nFeature_RNA","nCount_RNA")]
colnames(cellinfo)=c('celltype', 'group','orig.ident','nGene' ,'nUMI')
#计算细胞特异性TF
cellTypes <-  as.data.frame(subset(cellinfo,select = 'celltype'))
selectedResolution <- "celltype"
cellAnnotation = cellTypes[colnames(regulonAUC),
                           selectedResolution]
cellAnnotation = na.omit(cellAnnotation)
rss <- calcRSS(AUC = getAUC(regulonAUC),
               cellAnnotation = cellAnnotation)
rss = na.omit(rss)
rssPlot <- plotRSS(rss,
                   zThreshold = 3,#可调整
                   cluster_columns = FALSE,
                   order_rows = TRUE,
                   thr=0.1,
                   varName = "cellType",
                   col.low = '#330066',
                   col.mid = '#66CC66',
                   col.high = '#FFCC33')
rssPlot$rowOrder
plotly::ggplotly(rssPlot$plot)

3.可视化rank图,可以自己改一下plotRSS_oneSet参数让图更好看一点

#2.rank图
cowplot::plot_grid(plotRSS_oneSet(rss2,
setName = table(sc@active.ident)[4]%>%names(),n=3),
NULL,NULL,nrow = 2,byrow = T)

4. regulon表达水平热图,转录因子表达水平同理,得到的图类似只是输入不一样

library(ggheatmap)
library(reshape2)
library(RColorBrewer)
#regulon表达水平热图
tfs <- c("Nr2f1(+)","Cebpd(+)","Hnf4g(+)","Twist1(+)","Twist2(+)","Prrx2(+)",
         "Lef1(+)","Foxl2(+)","Foxp1(+)","Hey2(+)","Sox6(+)","Msx1(+)")
rss_data <- rssPlot$plot$data[which(rssPlot$plot$data$Topic %in% tfs),]
rownames(rss_data) <- rss_data[,1]
rss_data <- rss_data[,-1]
colnames(rss_data)
col_ann <- data.frame(group= c(rep("Acta2+ SMC",1),
                               rep("Notch3+ FB",1),
                               rep("Col8a1+ FB",1),
                               rep("Kcnma1+ SMC",1),
                               rep("Kdr+ EC",1),
                               rep("Ednrb+ EC",1),
                               rep("Pecam1+ EC",1),
                               rep("Pi16+ FB",1),
                               rep("Eln+ FB",1),
                               rep("Ly6c1+ EC",1),
                               rep("Pdgfra+ FB",1),
                               rep("Klf4+ EC",1),
                               rep("Ednra+ SMC",1),
                               rep("Angpt1+ FB",1)))
rownames(col_ann) <- colnames(rss_data)
groupcol <- colorRampPalette(brewer.pal(14,'Set3'))(14)
names(groupcol) <- c("Acta2+ SMC","Notch3+ FB","Col8a1+ FB","Kcnma1+ SMC","Kdr+ EC",    
                     "Ednrb+ EC","Pecam1+ EC","Pi16+ FB","Eln+ FB","Ly6c1+ EC",  
                     "Pdgfra+ FB","Klf4+ EC","Ednra+ SMC","Angpt1+ FB")
col <- list(group=groupcol)
text_columns <- sample(colnames(rss_data),0)
ggheatmap(rss_data,color=colorRampPalette(c('#1A5592','white',"#B83D3D"))(100),
               cluster_rows = T,cluster_cols = F,scale = "row",
               annotation_cols = col_ann,
               annotation_color = col,
               legendName="Relative value",
               text_show_cols = text_columns)
#转录因子表达水平热图
top3tfgene <- c("Nr2f1","Cebpd","Hnf4g","Twist1","Twist2","Prrx2",
                "Lef1","Foxl2","Foxp1","Hey2","Sox6","Msx1")
top3gene_cell_exp <- AverageExpression(sc,
                                       assays = 'RNA',
                                       features = top3tfgene,
                                       group.by = 'celltype',
                                       slot = 'data') 
top3gene_cell_exp <- as.data.frame(top3gene_cell_exp$RNA)
top3marker_exp <- t(scale(t(top3gene_cell_exp),scale = T,center = T))
ggheatmap(top3marker_exp,color=colorRampPalette(c('#1A5592','white',"#B83D3D"))(100),
          cluster_rows = T,cluster_cols = F,scale = "row",
          annotation_cols = col_ann,
          annotation_color = col,
          legendName="Relative value",
          text_show_cols = text_columns)
                    接上一篇,pySCENIC分析完之后就可以进行可视化了,个人认为最重要的有三个图:rss点图,rank图,转录因子表达水平热图,3个图结合着看。3.可视化rank图,可以自己改一下plotRSS_oneSet参数让图更好看一点。4. regulon表达水平热图,转录因子表达水平同理,得到的图类似只是输入不一样。2.可视化点图:寻找cluster特异性转录因子。1.loom文件读入R,提取数据。
				
可扩展的SCENIC工作流程,用于单细胞基因调控网络分析 该存储库描述了如何对单细胞数据运行pySCENIC基因调控网络推断分析以及基本的“最佳实践”表达分析。 这包括: 独立的Jupyter笔记本电脑,用于交互式分析 Nextflow DSL1工作流程,它提供了一种半自动化且简化的方法来运行这些步骤 pySCENIC安装,使用和下游分析的详细信息 另请参阅《自然规约》中的相关出版物: : 。 有关此协议中步骤的高级实现,请参阅 ,这是pySCENIC的Nextflow DSL2实现,具有用于表达式分析的全面且可自定义的管道。 这包括其他pySCENIC功能(多次运行,集成的基于主题和基于轨迹的regulon修剪,织机文件生成)。 PBMC 10k数据集(10x基因组学) 完整的SCENIC分析,以及过滤,群集,可视化和SCope就绪的织机文件创建: |
目录摘要引言自动注释Marker-based automatic annotationReference-based automatic cell annotation细化自动注释手动注释 单细胞转录组学(single-cell transcriptomics)可以在一次实验中分析数千个细胞,并在多种组织和生物体中识别新的细胞类型和状态。标准的实验方案和分析工作流程已经开发出来,可以从组织中创建单细胞转录组图谱(single-cell transcriptomic maps)。本教程重点介绍如何解释.
CCA(canonical correlation analysis)是一种常用的多变量统计分析方法,可以用于整合分析单细胞转录组和空间转录组的数据。 单细胞转录组是指对单个细胞的转录组进行测量和分析,可以了解细胞间的异质性和功能特征。而空间转录组是指在组织或器官水平上,对转录组进行测量和分析,可以了解细胞在空间上的分布和相互作用。 在整合分析单细胞转录组和空间转录组时,首先需要对两种数据进行预处理,例如数据清洗、标准化和归一化等。然后,可以利用CCA方法来识别两种数据之间共享的信息和变化模式。 CCA通过最大化两个数据集之间的相关性,找到两者之间最大化的公共变量。具体步骤包括:首先,计算两个数据集之间的相关性矩阵;然后,利用Singular Value Decomposition(奇异值分解)将相关性矩阵分解成特征向量和特征值;最后,根据特征值的大小选择最相关的特征向量,得到两个数据集之间的相关性。 通过整合分析单细胞转录组和空间转录组的数据,可以获得以下优势:一是可以揭示细胞类型和组织结构之间的关系,帮助我们了解细胞的空间分布模式;是可以发现特定细胞类型在不同组织中的表达模式和功能特征;三是可以识别具有生物学意义的共同变化模式,为进一步研究和解读提供线索。 当然,整合分析单细胞转录组和空间转录组的数据还需要结合其他的统计方法和生物学解释来进行综合分析和解读。这样的整合方法可以为我们更好地理解细胞和组织的功能和相互作用提供重要的信息。
Ian12: 用 reticulate R 包设置 virtualenv,py_install安装gene-trajectory。这一步出现问题:> if(!reticulate::virtualenv_exists('gene_trajectory')){ + reticulate::virtualenv_create('gene_trajectory', packages=c('gene_trajectory')) Error in stop_no_virtualenv_starter(version = version, python = python) : Suitable Python installation for creating a venv not found. Requested Python: /usr/bin/python3.10 Please install Python with one of following methods: - https://github.com/rstudio/python-builds/ - reticulate::install_python(version = '<version>') - sudo apt install python3-venv Milo | 细胞分布差异 weixin_51178697: 但是不同细胞在Umap空间上的位置也没有什么特定的意义啊. 感觉好像直接根据条件赋颜色画图也能看表情包 Slingshot|单细胞轨迹推断r包 可爱的一只帆: 文章的材料与方法部分有下载地址 Slingshot|单细胞轨迹推断r包 qq_48256313: 您好,请问可否请教如何下载该数据集? 单细胞 | pySCENIC·转录因子分析(二) CSDN-Ada助手: “恭喜您写了第20篇博客!看来您对转录因子分析有着深入的研究和理解,非常令人钦佩。希望您可以继续分享更多关于pySCENIC的使用经验,或者可以结合其他工具进行更深入的探索和比较分析,这样可以让读者更全面地了解相关领域的知识。期待您的下一篇作品!”