Scillus | 来吧!它可以大大简化你的Seurat分析流程哦!~(二)(高级可视化)

news2024/11/24 5:37:54

1写在前面

不知道大家那里天气热了没有,苦逼的我虽然“享受”着医院的恒温,但也并没有什么卵用,毕竟我只是个不可以生锈的“小螺丝”。🥲

上期介绍了Scillus包的基本功能,如何进行数据的预处理及其可视化。🤨

本期我们继续吧,介绍其主要的一些高级功能吧,包括降维,统计,热图和富集分析等等。🤩

2用到的包

rm(list = ls())
library(tidyverse)
library(Scillus)
library(Seurat)
library(magrittr)
library(purrr)

3示例数据

我们用一下上次经过标准化处理后的scRNA_int,具体的可以回顾上一篇教程:👇

📍🧐 Scillus | 来吧!它可以大大简化你的Seurat分析流程哦!~(一)(数据预处理)


load("./scRNA_scillus.Rdata")

scRNA_int
alt

4降维及其可视化

4.1 初步绘图

先来简单画一下吧。🥳

plot_scdata(scRNA_int, pal_setup = pal)
alt

4.2 换个主题配色

换个配色试试。🥰

plot_scdata(scRNA_int, pal_setup = "Dark2")
alt

4.3 分组可视化

我们试试分组降维吧。🤒

plot_scdata(scRNA_int, color_by = "group", pal_setup = pal)
alt

4.4 分面可视化

我们试一下按sample分面降维吧。🤒

plot_scdata(scRNA_int, split_by = "sample", pal_setup = pal)
alt

4.5 手动配色

我们再试着手动配色一下吧。🧐

plot_scdata(scRNA_int, color_by = "sample", 
pal_setup = c("red","orange","yellow","green","blue","purple"))
alt

5统计及其可视化

5.1 按sample统计

plot_stat(scRNA_int, 
plot_type = "group_count"
## 三种,"group_count", "prop_fill", and "prop_multi"
)
alt

5.2 按cluster统计

plot_stat(scRNA_int, "group_count", group_by = "seurat_clusters", pal_setup = pal)
alt

5.3 堆叠柱形图

plot_stat(scRNA_int, 
plot_type = "prop_fill",
pal_setup = c("grey90","grey80","grey70","grey60","grey50","grey40","grey30","grey20"))
alt

5.4 按cluster和sample统计

plot_stat(scRNA_int, plot_type = "prop_multi", pal_setup = "Set3")
alt

5.5 按cluster和group统计

plot_stat(scRNA_int, plot_type = "prop_fill", group_by = "group")
alt

5.6 换个配色

plot_stat(scRNA_int, plot_type = "prop_multi", 
group_by = "group", pal_setup = c("sienna","bisque3"))
alt

6热图及其可视化

6.1 寻找marker

我们首先要用Seurat包的FindAllMarkers确定一下marker,分析方法也比较多,包括wilcox, roc, t, poisson, DESeq2等。😷

markers <- FindAllMarkers(scRNA_int, logfc.threshold = 0.25, min.pct = 0.1, only.pos = F)
alt

6.2 热图可视化

在热图中,每一行代表一个基因,每一列代表一种细胞,默认绘制每种细胞的前8个基因。🤓

细胞可以通过sort_var进行排序,默认设置为c("seurat_clusters"),即细胞按cluster进行排序。🙃

当然你也可以在sort_var中指定多个变量,然后按多个变量进行排序。🥳

anno_var用来指定注释数据或者metadata中的相关数据。🥰

plot_heatmap(dataset = scRNA_int, 
markers = markers,
sort_var = c("seurat_clusters","sample"),
anno_var = c("seurat_clusters","sample","percent.mt","S.Score","G2M.Score"),
anno_colors = list("Set2",
# RColorBrewer palette
c("red","orange","yellow","purple","blue","green"),
# color vector
"Reds",
c("blue","white","red"),
# Three-color gradient
"Greens"))
alt

6.3 调整热图

我们调一下limit和渐变的配色, 显示前6个基因。😂

plot_heatmap(dataset = scRNA_int,
n = 6,
markers = markers,
sort_var = c("seurat_clusters","sample"),
anno_var = c("seurat_clusters","sample","percent.mt"),
anno_colors = list("Set2",
c("red","orange","yellow","purple","blue","green"),
"Reds"),
hm_limit = c(-1,0,1),
hm_colors = c("purple","black","yellow"))
alt

7富集分析

7.1 制定cluster的GO分析

我们指定cluster 1GO分析试试。🐵

plot_cluster_go(markers, cluster_name = "1", org = "human", ont = "CC")
alt

7.2 所有cluster的GO分析

再试试绘制所有clusterGO分析。🐵

plot_all_cluster_go(markers, org = "human", ont = "BP")
alt

8GSEA分析

8.1 差异分析

首先我们要用find_diff_genes做一下差异分析,寻找差异基因。😜

然后使用test_GSEA()进行GSEA分析。

de <- find_diff_genes(dataset = scRNA_int, 
clusters = as.character(0:7),
comparison = c("group", "CTCL", "Normal"),
logfc.threshold = 0, # threshold of 0 is used for GSEA
min.cells.group = 1) # To include clusters with only 1 cell

gsea_res <- test_GSEA(de,
pathway = pathways.hallmark)
alt

8.2 GSEA结果可视化

plot_GSEA(gsea_res, p_cutoff = 0.1, colors = c("#0570b0", "grey", "#d7301f"))
alt

9补充一下

Scillus包中有一个非常好用的功能叫Plotting Measures,在这里补充一下。😜

在设置的参数中measures = 你需要的基因或指标就可以啦。🧐

9.1 小试牛刀

plot_measure(dataset = scRNA_int, 
measures = c("KRT14","percent.mt"),
group_by = "seurat_clusters",
pal_setup = pal)
alt

9.2 更进一步

plot_measure_dim(dataset = scRNA_int, 
measures = c("nFeature_RNA","nCount_RNA","percent.mt","KRT14"),
split_by = "sample")
alt

alt
最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

📍 往期精彩

📍 🤩 WGCNA | 值得你深入学习的生信分析方法!~
📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享github上比较热门的ChatGPT项目,值得收藏

&#x1f517; 运行环境&#xff1a;chatGPT &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f9…

Elasticsearch painless脚本教程(包含Java API和SpringDataElasticsearch调用脚本)

Elasticsearch painless脚本 1.什么是painless2.painless的特性3.使用kibana进行准备操作3.1 使用kibana创建索引和映射3.2 使用kibana添加测试数据 4.使用painless执行查询操作关于脚本查询须知4.1 字段查询脚本4.1 排序查询脚本 5.如何使用painless执行更新操作关于脚本查询须…

Spring Security 04 自定义认证

登录⽤户数据获取 SecurityContextHolder Spring Security 会将登录⽤户数据保存在 Session 中。但是&#xff0c;为了使⽤⽅便, Spring Security 在此基础上还做了⼀些改进&#xff0c;其中最主要的⼀个变化就是线程绑定。当⽤户登录成功后,Spring Security 会将登录成功的⽤户…

Node内置模块 【crypto加密模块】

文章目录 &#x1f31f;前言&#x1f31f;crypto加密模块&#x1f31f;Crypto模块介绍&#x1f31f;Hash算法&#x1f31f;Hash算法介绍&#x1f31f;Hash算法之MD5&#x1f31f;算法简介&#x1f31f;MD5加密使用 &#x1f31f;Hash算法之SHA1&#x1f31f;算法简介&#x1f3…

二叉树经典题题解

目录 &#x1f345;1.单值二叉树&#x1f345; &#x1f349; 2.相同的树&#x1f349; &#x1f34a;3.对称二叉树&#x1f34a; &#x1f34e;4.另一颗树的子树&#x1f34e; &#x1f34f;5.翻转二叉树&#x1f34f; &#x1f351;6.平衡二叉树&#x1f351; &#x1f3…

【LeetCode: 1027. 最长等差数列 | 暴力递归=>记忆化搜索=>动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

SHELL的脚本编辑与运行

目录 1.编写脚本for1.sh,使用for循环创建20账户&#xff0c;账户名前缀由用户从键盘输入&#xff0c;账户初始密码由用户输入&#xff0c;例如&#xff1a;test1、test2、test3、、test10 a.编辑脚本 b.运行脚本 c.进行检验 2.编写脚本for2.sh,使用for循环&#xff0c;通过…

如何把aac转化为mp3,4个处理方法教给你

一般情况下&#xff0c;将 AAC 文件转换为 MP3 文件有以下几种情况&#xff1a;设备不兼容&#xff1a;AAC 格式通常用于苹果设备上。如果您想在其他设备上播放音频文件&#xff0c;如 Android 手机、MP3 播放器等&#xff0c;就需要将其转换为 MP3 格式。需要更好的兼容性&…

机器学习(七):基于多项式贝叶斯对蘑菇毒性分类预测分析

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;关注…

第六章 原型模式

文章目录 前言一、克隆羊问题sheep类clint 调用方 二、引入原型模式动态克隆对象sheep类clint 类 三、原型模式在Spring框架中源码分析四、深拷贝与浅拷贝完整代码DeepCloneableTargetDeepProtoTypeClient2 五、原型模式的注意事项和细节 前言 一、克隆羊问题 sheep类 package…

mysql查询字段未加引号问题及隐式转换

1. 问题重现 最近线上出了个问题&#xff0c;用户明明没有投票&#xff0c;却提示已投票&#xff0c;我查询数据&#xff0c;刚开始没有查出数据&#xff0c;后来却查出数据了&#xff0c;以为没有问题&#xff0c;后来以为是插入的时候通过int类型插入&#xff0c;导致varcha…

美国最大公共养老基金之一Strs Ohio不断增持IonQ股票

​ &#xff08;图片来源&#xff1a;网络&#xff09; 截至2022年12月31日第四季度末&#xff0c;美国最大的公共养老基金之一Strs Ohio发布报告称&#xff0c;其一直在增持IonQ&#xff0c;Inc.&#xff08;纽约证券交易所代码&#xff1a;IONQ&#xff09;的股份。资产管理公…

如何在云服务器/云主机上部署最新版本的Hadoop3.3.5(Ubuntu20.0.4)

在云服务器上部署Hadoop 步骤1&#xff1a;更新系统 sudo apt-get update sudo apt-get upgrade步骤2&#xff1a;安装Java Hadoop需要Java运行环境。首先&#xff0c;安装OpenJDK 8&#xff1a; sudo apt-get install openjdk-8-jdk检查Java版本&#xff1a; java -versi…

上海车展:比亚迪宋L概念车全球首发,这是要硬扛特斯拉?

纵观2023年的新能源汽车市场&#xff0c;特斯拉可以说当仁不让地成为了全球最为“吸睛”的车企之一。凭借一系列令无数人瞠目结舌的降价举措&#xff0c;特斯拉给全球汽车市场带来了强烈冲击。虽然特斯拉上海工厂已经接近满负荷运转&#xff0c;但是面对雪片般飞来的订单依然供…

SpringBoot设置动态定时任务

SpringBoot设置动态定时任务 1.准备工作 搭建SpringBoot工程 引入相关依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><depende…

ROS学习第八节——话题通信自定义msg

1.介绍 在 ROS 通信协议中&#xff0c;数据载体是一个较为重要组成部分&#xff0c;ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty.... 但是&#xff0c;这些数据一般只包含一个 data 字段&#xff0c;结构的单一意味着功能上的…

Java基础(九)多线程

我们之前学习的程序在没有跳转语句的情况下&#xff0c;都是由上至下沿着一条路径依次执行。现在想要设计一个程序&#xff0c;可以同时有多条执行路径同时执行。比如&#xff0c;一边游戏&#xff0c;一边qq聊天&#xff0c;一边听歌&#xff0c;怎么设计&#xff1f; 要解决…

每日一个小技巧:今天告诉你拍照识别文字的软件有哪些

在现代社会里&#xff0c;手机已经成为了人们生活中必不可少的工具。它的功能众多&#xff0c;比如通讯、上网、拍照以及导航等&#xff0c;为我们的生活带来了许多便利。除此之外&#xff0c;手机还能帮助我们解决一些实际的问题&#xff0c;例如&#xff0c;当你需要识别图片…

Spring Aop详解汇总

文章目录 近期想法什么是AOPSpringAOP与AspectjSpringAOP体系概述概念详解连接点- Jointpoint切入点- Pointcut通知- Advice切面- Aspect织入- Weaving 实现原理—动态代理JDK动态代理描述原理代码示例注意执行结果 优点缺点 CGLib动态代理描述原理代码示例注意执行结果 优点缺…

ChatGPT会凉吗?巴菲特、马斯克呼吁暂停

ChatGPT 迅速“风靡”全球&#xff0c;无疑成为了人工智能领域备受瞩目的“明星产品”&#xff0c;然而随着 ChatGPT 应用越来越广泛&#xff0c;陆续爆出被用于学术造假、制作黑客武器以及泄露用户敏感聊天信息等一系列负面新闻。至此&#xff0c;社会开始重新审视类似 ChatGP…