单细胞-第四节 多样本数据分析,下游画图

news/2025/2/1 7:18:25/

文件在单细胞\5_GC_py\1_single_cell\2_plots.Rmd

1.细胞数量条形图

rm(list = ls())
library(Seurat)
load("seu.obj.Rdata")dat = as.data.frame(table(Idents(seu.obj)))
dat$label = paste(dat$Var1,dat$Freq,sep = ":")
head(dat)
library(ggplot2)
library(paletteer)
#View(palettes_d_names)
ggplot(dat,aes(x = Freq,fill = Var1,y = Var1))+scale_fill_paletteer_d("ggsci::category20_d3")+geom_bar(stat = "identity")+theme_bw()+geom_text(aes(x = 0,label = label),hjust = 0)+theme(axis.text.y = element_blank(),   # 隐藏纵坐标刻度文字axis.ticks.y = element_blank(),axis.title.y = element_blank())  # 隐藏纵坐标刻度线

在这里插入图片描述

2.细胞比例条形图

seu.obj$seurat_annotation = seu.obj@active.ident
ggplot(seu.obj@meta.data,aes(orig.ident,fill = seurat_annotation))+geom_bar(position = "fill", alpha = 0.9,width = 0.5)+scale_fill_paletteer_d("ggsci::category20_d3")+theme_classic()+coord_flip()+coord_fixed(ratio = 4) #纵轴长度是横轴的4

在这里插入图片描述

3.小提琴图

load("markers.Rdata")
library(tidyverse)
g = allmarkers %>% group_by(cluster) %>% top_n(1,wt = avg_log2FC) %>% pull(gene)m = as.matrix(seu.obj@assays$RNA@layers$data)
rownames(m) = Features(seu.obj)
colnames(m) = Cells(seu.obj)
vln.df <- m %>%t() %>%as.data.frame()%>%select(g) %>% rownames_to_column("CB") %>% mutate(cluster = seu.obj$seurat_annotation)%>%pivot_longer(cols = 2:(ncol(.)-1),#宽边长names_to = "gene",values_to = "exp") %>% mutate(gene = factor(gene,levels = g))
head(vln.df)
# 自定义颜色
library(paletteer)
my_color = paletteer_d(`"ggsci::category20_d3"`)
my_color = colorRampPalette(my_color)(length(unique(vln.df$cluster)))
# 画图
p1 <- ggplot(vln.df,aes(exp,cluster),color=factor(cluster))+geom_violin(aes(fill=cluster),scale = "width")+scale_fill_manual(values = my_color)+facet_grid(.~gene,scales = "free_y", switch = "x")+scale_x_continuous(expand = c(0,0),position = "top")+theme_bw()+theme(panel.grid = element_blank(),axis.title.x.top = element_blank(),#axis.ticks.x.bottom = element_blank(),axis.text.x.top= element_text(hjust = 1,vjust = NULL,color = "black",size = 7),#axis.title.y.left = element_blank(),#axis.ticks.y.left = element_blank(),#axis.text.y.left = element_blank(),legend.position = "none",panel.spacing.y = unit(0, "cm"),strip.text.y = element_text(angle=0,size = 14,hjust = 0),strip.background.y = element_blank())
p1

在这里插入图片描述

4.气泡图

g = allmarkers %>% group_by(cluster) %>% top_n(5,wt = avg_log2FC) %>% pull(gene) %>% unique()
DotPlot(seu.obj,features = g,cols = "RdYlBu")+RotatedAxis()

在这里插入图片描述

5.GC基因韦恩图

f = read.delim("gcgene.txt",header = F)
k = allmarkers$p_val_adj<0.05 & allmarkers$avg_log2FC>2
table(k)
g = intersect(allmarkers$gene[k],f$V1)
save(g,file = "g.Rdata")
library(tinyarray)
draw_venn(list(pyroptosis = f$V1,marker = unique(allmarkers$gene[k])),"")
ggsave("venn.png")

在这里插入图片描述

m = as.matrix(seu.obj@assays$RNA@layers$data)
rownames(m) = Features(seu.obj)
colnames(m) = Cells(seu.obj)
m = m[g,]
ac = data.frame(row.names = colnames(m),celltype = Idents(seu.obj))
library(dplyr)
ac = arrange(ac,celltype)
m = m[,rownames(ac)]
pheatmap::pheatmap(m,show_colnames = F,cluster_cols = F,cluster_rows = F,scale = "row",breaks = seq(-1.6,3,length.out = 100),annotation_col = ac)

在这里插入图片描述

6.差异焦亡基因富集分析

e = quick_enrich(g,destdir = tempdir())
e[[4]]+e[[3]]

在这里插入图片描述


http://www.ppmy.cn/news/1568367.html

相关文章

基于微信小程序的助农扶贫系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Matlab实现TCN-BiLSTM时间卷积神经网络结合双向长短期记忆神经网络多特征分类预测(附模型研究报告)

Matlab实现TCN-BiLSTM时间卷积神经网络结合双向长短期记忆神经网络多特征分类预测&#xff08;附模型研究报告&#xff09; 目录 Matlab实现TCN-BiLSTM时间卷积神经网络结合双向长短期记忆神经网络多特征分类预测&#xff08;附模型研究报告&#xff09;分类效果基本描述程序设…

Angular 2 表单深度解析

Angular 2 表单深度解析 引言 Angular 2作为现代前端开发的框架之一,以其灵活性和强大的功能赢得了众多开发者的青睐。在Angular 2中,表单处理是其中一个重要且复杂的部分。本文将深入解析Angular 2的表单,从基础知识到高级应用,旨在帮助开发者更好地理解和运用Angular 2…

愿景:做机器视觉行业的颠覆者

一个愿景&#xff1a;做机器视觉行业的颠覆者。 我给自己创业&#xff0c;立一个大的愿景&#xff1a;做机器视觉行业的颠覆者。 两个阶段&#xff1a;无监督-大模型 分两个阶段实现愿景&#xff1a; 第一个阶段&#xff0c;无监督阶段。2025-2030&#xff0c;共五年。 用无…

python flask 使用 redis写一个例子

下面是一个使用Flask和Redis的简单例子&#xff1a; from flask import Flask from redis import Redisapp Flask(__name__) redis Redis(hostlocalhost, port6379)app.route(/) def hello():# 写入到Redisredis.set(name, Flask Redis Example)# 从Redis中读取数据name re…

CTFSHOW-WEB入门-命令执行39-53

题目&#xff1a;web 39 题目&#xff1a;解题思路&#xff1a;分析代码可以知道题目要求get一个c的参数&#xff0c;并且过滤了flag&#xff0c;大小写均过滤&#xff0c;于是可以想到使用&#xff1f;或者*通配符绕过。这里有include函数&#xff0c;由于include是个漏洞函数…

4、PyTorch 第一个神经网络,手写神经网络的基本部分组成

假设有一个二维数据集&#xff0c;目标是根据点的位置将它们分类到两个类别中&#xff08;例如&#xff0c;红色和蓝色点&#xff09;。 以下实例展示了如何使用神经网络完成简单的二分类任务&#xff0c;为更复杂的任务奠定了基础&#xff0c;通过 PyTorch 的模块化接口&#…

【Java高并发】CompletableFuture基础(1):创建不同线程的子任务、子任务链式调用与异常处理

文章目录 1. 三种实现接口2. 链式调用&#xff1a;保证链的顺序性与异步性3. CompletableFuture创建CompletionStage子任务4. 处理异常a. 创建回调钩子b. 调用handle()方法统一处理异常和结果 5. 如何选择线程池&#xff1a;不同的业务选择不同的线程池 CompletableFuture是JDK…