【DimPlot】【FeaturePlot】使用小tips

 

目录

DimPlot函数参数解析

栅格化点图

放大 ggplot2 图例的点,修改图例的标题

FeaturePlot函数参数解析

调整FeaturePlot颜色

 分组绘制featureplot

随手笔记,持续更新中。。。

Reference


DimPlot函数参数解析

  • object: 一个Seurat对象,包含要进行可视化的数据集。

  • dims: 一个长度为2的数字向量,指定要绘制的维度,通常是c(1, 2)来表示降维结果的前两个维度。

  • cells: 一个可选的向量,指定要在图中显示的细胞。默认为所有细胞。

  • cols: 用于指定点的颜色的向量或预定义的颜色方案。默认情况下,使用ggplot2的颜色方案。

  • pt.size: 用于调整点的大小。

  • reduction: 指定要使用的降维方法,例如"umap"、"tsne"或"pca"。如果未指定,DimPlot会依次查找"umap"、"tsne"、"pca"中可用的结果。

  • group.by: 一个字符串,指定用于颜色编码的元数据变量,如细胞标识或任何其他分类变量。

  • split.by: 一个可选的字符串,指定一个元数据变量名,按此变量的值拆分数据并单独绘制每个组的图。

  • shape.by: 一个字符串,允许根据指定的元数据变量改变点的形状。默认情况下,所有点都绘制为圆形。

  • order: 一个向量,指定不同标识(如细胞类型)的绘制顺序。有助于在图中凸显某些细胞群。

  • shuffle: 一个逻辑值,指定是否在绘制前随机打乱点的顺序。有助于避免绘图中的遮挡问题。

  • seed: 当shuffle = TRUE时,用于随机数生成的种子,确保结果可复现。

  • label: 一个逻辑值,指定是否在图上标记每个群组(如细胞类型)。

  • label.size: 标签文字的大小。

  • label.color: 标签文字的颜色。

  • label.box: 一个逻辑值,指定是否在标签周围添加边框。

  • repel: 一个逻辑值,指定是否使用标签排斥机制,以避免标签相互遮盖

  • cells.highlight: 指定要突出显示的细胞向量,这些细胞将以不同的颜色或大小突出显示。

  • cols.highlight: 用于突出显示的颜色向量。

  • sizes.highlight: 突出显示的细胞的大小向量。

  • na.value: 在使用自定义颜色比例时,为缺失数据(NA)点指定的颜色值。

  • ncol: 当绘图组合时,指定列的数量。

  • combine: 一个逻辑值,指定是否将多个图合并为一个图对象。如果为FALSE,则返回一个包含多个ggplot对象的列表。

  • raster:是否栅格化(图像中的点是拼合后的位图,不再是矢量图)。如果点超过10万个,自动栅格化。

  • raster.dpi:栅格化后的分辨率,传递给 geom_scattermore(),默认 c(512, 512)

  • ...: 其他传递给DimPlot的额外参数,这些参数会进一步自定义绘图的外观和行为。

group.by 参数 tip:默认是 ident 分组,通过修改 Idents(rds) <- rds$annotation 来设置按照什么组别绘图。

order 参数 tip:可以设置为TRUE或者FALSE,当设置WieTRUE时,会突出要显示的那群细胞。

shuffle参数tips: 默认是F,当点被被遮挡时可以设置为T

#或者所有细胞类型的list
list_celltye = levels(celltype)#获取当先细胞类型type所在的index
index_celltye  = which(list_celltye == type)#新建一个全为灰色的颜色板
colors <- rep("#f0f0f0", length(celltype)) #单独复制一个cluster的颜色#根据type的index设置颜色版对应的位置为红色
colors[index_celltye] = "#fb6a4a"#绘图,选择order=TRUE
p = DimPlot(combined, cols = colors,repel = T,group.by = "annotation", order = TRUE)#置顶该群细胞#保存图像
ggsave(p,file=paste0(ch_dir,"single_celltyep/",type,"_DimPlot.pdf"), width = 6, height = 5)

栅格化点图

scattermore::geom_scattermore()函数

library(ggplot2)
library(scattermore)
set.seed(2022)
ggplot(data.frame(x=rnorm(100000), y=rexp(100000))) +geom_scattermore(aes(x,y,color=x),pointsize=3,alpha=0.1,pixels=c(1000,1000),interpolate=TRUE) +scale_color_viridis_c()

放大 ggplot2 图例的点,修改图例的标题

library(ggplot2)
g1=ggplot(mtcars, aes(mpg, disp, color= factor(gear) ))+geom_point()+theme_bw()+ggtitle("Fig1")
g1 #原图
g2=g1+guides(color = guide_legend(override.aes = list(size = 3)))+ #图例放大ggtitle("Fig2"); g2
g3=g2+labs(color = NULL, title = "Fig3") #修改图例的标题
g3
g1+g2+g3

FeaturePlot函数参数解析

  • object: Seurat对象,包含要进行可视化的数据集。

  • features: 字符向量,指定要在图中展示的特征(例如基因或元数据列名)。

  • dims: 数字向量,长度为2,指定要用于绘图的降维空间的维度(例如c(1, 2)表示第一和第二维度)。

  • cells: 可选的,指定要在图中展示的细胞的向量。默认是所有细胞。

  • cols: 字符向量或颜色向量,用于定义绘图中使用的颜色渐变。

  • pt.size: 点的大小。

  • order: 逻辑值,指定是否根据特征表达量的顺序绘制细胞,可以帮助突出表达某特征的细胞。

  • min.cutoff, max.cutoff: 用于指定每个特征的表达值截止的向量。可以使用百分位数来指定截止点(例如,'q1', 'q99'表示1%和99%分位数)。

  • reduction: 指定要使用的降维技术,例如"umap"、"tsne"或"pca"。如果未指定,FeaturePlot会依次查找"umap"、"tsne"、"pca"中可用的结果。

  • split.by: 字符串,指定元数据中的一个变量,用于按该变量的不同类别拆分并分别绘制图形。

  • shape.by: 可选的,允许根据某个细胞属性改变点的形状。

  • slot: 指定从哪个Seurat对象的槽中提取表达数据进行可视化。

  • blend: 逻辑值,指定是否混合两个特征的表达值来同时可视化它们。

  • blend.threshold: 设置用于混合特征表达的阈值,范围从0到1。

  • label: 是否在图上标记群组。

  • label.size: 标签文字的大小。

  • repel: 逻辑值,指定是否使用标签排斥机制,以避免标签之间的重叠。

  • ncol: 数字,指定在使用split.by时,合并到一个图中的列数。

  • coord.fixed: 逻辑值,指定是否使用固定的纵横比绘制坐标系。

  • by.col: 逻辑值,指定在分列展示时是否按列而非按行展示特征图。

  • interactive: 逻辑值,指定是否启用交互式FeaturePlot

  • combine: 逻辑值,指定是否将多个特征图合并为单个绘图对象。如果为FALSE,则返回一个包含多个ggplot对象的列表。

调整FeaturePlot颜色

cols :cols = if (blend) { c("lightgrey", "#ff0000", "#00ff00") } else {
c("lightgrey", "blue") },两种颜色形成渐变。

以字符串向量的形式提供,第一种颜色对应于低值,第二种颜色对应于高值。也接受色阶或颜色向量。注意:这将把数据分为若干种颜色提供。什么时候混合是真的,从1到3的任何地方颜色:1种颜色:被视为双底片的颜色,将为每个功能表达式2使用默认颜色2和3颜色:视为每个特征表达式的颜色,将使用默认颜色1作为双底片3+颜色:第一种颜色用于双底片,颜色2和颜色3用于每个特征表达式,所有其他都忽略

p1 <- FeaturePlot(object = sce2, features = "CD3D") p2 <- FeaturePlot(sce2, "CD3D", cols = c("#F0F921FF", "#7301A8FF"))p3 <- FeaturePlot(sce2, "CD3D", cols = brewer.pal(10, name = "RdBu"))p4 <- FeaturePlot(object = sce2, features = "CD3D") + scale_colour_gradientn(colours = rev(brewer.pal(n = 10, name = "RdBu")))

scCustomize 修改大小

p11 <- FeaturePlot_scCustom(seurat_object = sce2, features = "CD3D")p22 <- FeaturePlot_scCustom(seurat_object = sce2, features = "CD3D", colors_use = brewer.pal(11, name = "RdBu"),order = T)p11 + p22

 分组绘制featureplot

FeaturePlot_scCustom(seurat_object = sce2, features = "CD3D", split.by = "orig.ident",num_columns = 4)

随手笔记,持续更新中。。。

Reference

【1】https://zhuanlan.zhihu.com/p/652376083

【2】http://www.idata8.com/rpackage/Seurat/FeaturePlot.h

【3】http://www.idata8.com/rpackage/Seurat/DimPlot.html

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

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

相关文章

工作纪实46-关于微服务的上线发布姿势

蓝绿部署 在部署时&#xff0c;不需要将旧版本的服务停掉&#xff0c;而是将新版本与旧版本同时运行&#xff0c;新版本测试无误之后再将旧版本停掉。这样可以避免再升级的过程中如果失败服务不可用的问题&#xff0c;因为同时部署了两个版本的程序&#xff0c;使得硬件资源是…

【项目笔记】java微服务:黑马头条(day01)

文章目录 环境搭建、SpringCloud微服务(注册发现、服务调用、网关)1)课程对比2)项目概述2.1)能让你收获什么2.2)项目课程大纲2.3)项目概述2.4)项目术语2.5)业务说明 3)技术栈4)nacos环境搭建4.1)虚拟机镜像准备4.2)nacos安装 5)初始工程搭建5.1)环境准备5.2)主体结构 6)登录6.1…

Ubuntu用扩展分区加载home目录步骤

如果你想要将新的磁盘挂载到默认的 /home 目录下&#xff0c;可以按照以下步骤进行操作&#xff1a; 创建挂载点&#xff1a; 首先&#xff0c;确保新磁盘已连接并识别。然后&#xff0c;创建一个临时挂载点&#xff0c;以便将新磁盘挂载到该点。sudo mkdir /mnt/new_home挂载磁…

JavaScript中的Set和Map:理解与使用

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C++:类和对象(三)——拷贝构造函数和运算符重载

目录 一、拷贝构造函数 1.概念 2.特性 二、赋值运算符重载 1.运算符重载 2.赋值运算符重载 &#xff08;1&#xff09;注意的点&#xff1a; &#xff08;2&#xff09;赋值运算符不允许被重载为全局函数&#xff0c;只能重载为类的成员函数 &#xff08;3&#xff09;…

代码随想录算法训练营day32

题目&#xff1a;122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II 参考链接&#xff1a;代码随想录 122.买卖股票的最佳时机II 思路&#xff1a;本题我一开始想到的是参考前面的摆动序列&#xff0c;先用坡度图思考&#xff0c;我们要返回最大利润&#xff0c;即要做…

C++ 字符串OJ

目录 1、14. 最长公共前缀 2、 5. 最长回文子串 3、 67. 二进制求和 4、43. 字符串相乘 1、14. 最长公共前缀 思路一&#xff1a;两两字符串进行比较&#xff0c;每次比较过程相同&#xff0c;可以添加一个函数辅助比较&#xff0c;查找最长公共前缀。 class Solution { pu…

【C++】函数模板和类模板

目录 1.泛型编程 2.函数模板 2.1函数模板的定义格式 2.2函数模板的实例化 2.3函数模板参数的匹配原则 3.类模板 3.1类模板的定义格式 3.2类模板的实例化 3.3模板的分离编译 1.泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段…

php开发100问?

什么是 PHP&#xff1f;PHP 是一种什么类型的语言&#xff1f;PHP 的优缺点是什么&#xff1f;如何在服务器上配置 PHP&#xff1f;PHP 中的变量是如何声明和使用的&#xff1f;如何在 PHP 中输出文本和变量&#xff1f;什么是 PHP 的数据类型&#xff1f;如何在 PHP 中实现条件…

【前端CSS】CSS的3种基本选择器和5种高级选择器使用方式

目录 前言 基本选择器 1.1 标签选择器 1.2 ID选择器 1.3 类选择器 高级选择器 2.1 并集选择器 2.2 交集选择器 2.3 后代选择器 2.4 子元素选择器 2.5 属性选择器 前言 1W&#xff1a;什么是CSS选择器&#xff1f; CSS选择器由HTML元素的id、class属性或元素名本身以及…

SpringBoot中定时任务、corn表达式

SpringBoot中定时任务、corn表达式 corn表达式网站&#xff1a;https://cron.qqe2.com/ 方法上加上Scheduled(cron表达式) 启动类上加上EnableScheduling 示例 启动类上 启动类加上EnableScheduling开启定时任务。 SpringBootApplication EnableScheduling public class…

vue 在什么情况下在数据发生改变的时候不会触发视图更新

在 Vue 中&#xff0c;通常数据发生变化时&#xff0c;视图会自动更新。但是&#xff0c;有几种情况可能导致数据变化不会触发视图更新&#xff1a; 1.对象属性的添加或删除&#xff1a; Vue 无法检测到对象属性的添加或删除。因为 Vue 在初始化实例时对属性执行了 getter/se…

VUE3 使用axios网络请求

1.新建工程 参考&#xff0c;VUE3 环境搭建&#xff1a;https://blog.csdn.net/LQ_001/article/details/136293795&#xff0c;运行命令 vue create vue-demo 2.引入axios 不管何种引用&#xff0c;都要在工程中安装 axios 包。安装命令&#xff1a;npm install --save axio…

C语言——函数指针——函数指针变量(详解)

函数指针变量 函数指针变量的作用 函数指针变量是指向函数的指针&#xff0c;它可以用来存储函数的地址&#xff0c;并且可以通过该指针调用相应的函数。函数指针变量的作用主要有以下几个方面&#xff1a; 回调函数&#xff1a;函数指针变量可以作为参数传递给其他函数&…

高性能JSON框架之FastJson的简单使用

高性能JSON框架之FastJson的简单使用、 1.前言 1.1.FastJson的介绍: JSON协议使用方便&#xff0c;越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson 1.2.FastJson的特点: 1.F…

C/C++蓝桥杯之日期问题

问题描述&#xff1a;小明正在整理一批文献&#xff0c;这些文献中出现了很多日期&#xff0c;小明知道这些日期都在1960年1月1日至2059年12月31日之间&#xff0c;令小明头疼的是&#xff0c;这些日期采用的格式非常不统一&#xff0c;有采用年/月/日的&#xff0c;有采用月/日…

蓝桥杯刷题--python-20-多路归并,贡献法

1262. 鱼塘钓鱼 - AcWing题库 nint(input()) a[0]list(map(int,input().split())) b[0]list(map(int,input().split())) l[0]list(map(int,input().split())) spend[0 for i in range(n1)] for i in range (1,n): l[i]l[i-1] tint(input()) def get(k): return max(0,a…

拿捏算法的复杂度

目录 前言 一&#xff1a;算法的时间复杂度 1.定义 2.简单的算法可以数循环的次数&#xff0c;其余需要经过计算得出表达式 3.记法&#xff1a;大O的渐近表示法 表示规则&#xff1a;对得出的时间复杂度的函数表达式&#xff0c;只关注最高阶&#xff0c;其余项和最高阶…

【音视频开发好书推荐2】《FFmpeg 音视频开发基础与实战》

1、多媒体处理开源库FFmpeg概述 享有盛名的音视频多媒体处理开源库FFmpeg&#xff0c;做过音视频编解码开发的同学基本都用过&#xff0c;即便没做过这方面开发&#xff0c;也会听说过这个开源库。 FFmpeg是目前最全面的开源音视频编解码库&#xff0c;包括常用的音视频编码协议…

JavaScript原型和原型链

JavaScript每个对象拥有一个原型对象 需要注意的是&#xff0c;只有函数对象才有 prototype 属性 当试图访问一个对象的属性时&#xff0c;它不仅仅在该对象上搜寻&#xff0c;还会搜寻该对象的原型&#xff0c;以及该对象的原型的原型&#xff0c;依次层层向上搜索&#xff…