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

news2024/11/20 2:20:50

1写在前面

太久没更了,真是累到极致,每天回到家都只想睡觉。😭

今天介绍一下Scillus包,是一个基于Seuratggplot2R包,用于增强scRNA-seq数据的处理和可视化。🧐

它可以对Seurat对象进行多种类型的图形展示,如热图、聚类图、基因表达图等。🤩

2用到的包

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

3示例数据

今天我们用到的是GEO上的公开数据,GSE128531,研究的是皮肤T细胞淋巴瘤CTCL)的异质性,包含了5名晚期CTCL患者和4名健康捐赠者皮肤活检的14,056CD3+淋巴细胞(448个细胞来自正常细胞,13,608个细胞来自CTCL皮肤样本)。🥳

原作者也是靠这个scRNA-seq发表了Clin Cancer Res:👇

alt

🔗Data链接在这里:👇

https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE128531

4环境配置

4.1 文件路径

a <- list.files("./GSE128531_RAW", full.names = TRUE)
m <- tibble(file = a,
sample = stringr::str_remove(basename(a), ".csv.gz"),
group = rep(c("CTCL", "Normal"), each = 3))

DT::datatable(m)
alt

4.2 配色

pal <- tibble(var = c("sample", "group","seurat_clusters"),
pal = c("Set2","Set1","Paired"))

4.3 读入数据

这里我们只做3 vs 3的数据处理和可视化哦。🥳

Scillus将为每个样本创建Seurat对象,并自动调用PercentageFeatureSet() 函数来计算线粒体基因的含量。😘

这里,scRNA是一个由多个Seurat对象组成的list。🤓

scRNA <- load_scfile(m)

map(scRNA, print)
alt

4.4 数据长度

这里的长度等于metadata的行数,即m的行数。🤨

length(scRNA)
alt

5QC可视化

5.1 线粒体基因可视化

plot_qc(scRNA, metrics = "percent.mt")
alt

只画boxplot试试。😘

plot_qc(scRNA, 
metrics = "percent.mt",
plot_type = "box" # "combined", "box" or "violin"
)
alt

分组比较试试。🐵

默认以sample进行分组,你也可以挑选metadata中的其他列做为分组条件。🍐

plot_qc(scRNA, 
metrics = "percent.mt",
group_by = "group" # "sample", 其他在metadata中的列
)
alt

5.2 nFeature可视化

plot_qc(scRNA, metrics = "nFeature_RNA")
alt

换个配色试试。😘

plot_qc(scRNA, 
metrics = "nFeature_RNA",
group_by = "group",
pal_setup = "Accent"
)
alt

5.3 nCount可视化

plot_qc(scRNA, metrics = "nCount_RNA")
alt

换成density plot试试。😉

plot_qc(scRNA,
metrics = "nCount_RNA",
plot_type = "density") +
scale_x_log10()
alt

6过滤与整合

6.1 过滤

subset参数的语法与Seurat对象的subset()函数是一样的。🤒

用的时候,会自动绘制barplot以显示过滤前后的细胞数。😉

scRNA_f <- filter_scdata(scRNA, subset = nFeature_RNA > 500 & percent.mt < 10)
alt

6.2 标准化处理

接着就是做一下NormalizeFindVariableFeaturesCellCycleScoring等标准化处理了。🧐

scRNA_f %<>% 
purrr::map(.f = NormalizeData) %>%
purrr::map(.f = FindVariableFeatures) %>%
purrr::map(.f = CellCycleScoring,
s.features = cc.genes$s.genes,
g2m.features = cc.genes$g2m.genes)
alt

6.3 整合数据

scRNA_int <- IntegrateData(anchorset = FindIntegrationAnchors(object.list = scRNA_f, 
dims = 1:30, k.filter = 50),
dims = 1:30)
alt

scRNA_int %<>%
ScaleData(vars.to.regress = c("nCount_RNA", "percent.mt", "S.Score", "G2M.Score"))

scRNA_int %<>%
RunPCA(npcs = 50, verbose = T)

scRNA_int %<>%
RunUMAP(reduction = "pca", dims = 1:20, n.neighbors = 30) %>%
FindNeighbors(reduction = "pca", dims = 1:20) %>%
FindClusters(resolution = 0.3)

scRNA_int
alt

7因子化处理(可选步骤)

主要是处理一下metadata的数据,这样作图会更好看一些,如果你没有metadata,可以不做这一步。😘

m %<>%
mutate(group = factor(group, levels = c("Normal", "CTCL")))

scRNA_int %<>%
refactor_seurat(metadata = m)

scRNA_int
alt

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

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

📍 往期精彩

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

本文由 mdnice 多平台发布

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

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

相关文章

多重背包问题的三种解法(转化为01背包、二进制拆分、单调队列优化)

多重背包问题的三种解法 转化为01背包二进制拆分优化单调队列优化 转化为01背包 题目链接:acwing4. 多重背包问题 I 题目描述 数据范围 思路&#xff1a; 可以转化为01背包问题求解&#xff0c;将s个物品都看作单独的一个物品&#xff0c;时间复杂度为 O ( N ∗ V ∗ S ) O(…

【一】MATLAB基础知识

【一】MATLAB基础知识 1 数值数据类型的分类 整型 无符号整数&#xff1a;无符号8位整数、无符号16位整数、无符号32位整数、 无符号64位整数。 带符号整数&#xff1a;带符号8位整数、带符号16位整数、带符号32位整数、 带符号64位整数。 无符号8位整数数据范围&#xff…

树和二叉树(概念及其结构)

1.树概念及结构&#xff08;了解&#xff09;‘ 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它 叫做树是因为它看起来像一颗倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶…

php+vue+mysql校园大学生兼职信息网站系统

商家功能模块 商家通过点击后台管理&#xff0c;进入页面可以进行首页、个人中心、热门兼职管理、兼职接单管理、学生咨询管理、兼职任务管理、完成评价管理等功能模块&#xff0c;进行相对应操作 兼职接单管理&#xff1a;通过兼职接单管理可以进行获取兼职名称、专业、分类、…

佳电股份:智能互联 绿色驱动 拥抱未来

4月 13—15 日&#xff0c;2023年易派客工业品展览会、石油石化工业展览会、第七届中国石油和化工行业采购年会&#xff0c;在苏州国际博览中心举行。在本次展会上&#xff0c;佳电股份展出了超高速永磁电机、超高效高压三相异步电动机、智慧电机以及配套服务等主要产品。 哈尔…

linux 下 mysql 平滑升级,不暴力

只适合版本跨越较小的&#xff0c;如果从5到8这种不支持 查看当前版本5.6.40,升级到5.6.50&#xff08;因为一些漏洞的原因&#xff09; 1&#xff1a;下载需要升级的版本 2&#xff1a;解压 3&#xff1a;停止当前的mysql服务 service mysql stop 4&#xff1a;备份原先系…

Spring Boot的基础使用和< artifactId>spring-boot-maven-plugin</ artifactId>爆红的处理

Spring Boot的基础使用和< artifactId>spring-boot-maven-plugin</ artifactId>爆红的处理 Spring Boot概述 微服务概述 微服务Microservices是一种软件架构风格&#xff0c;他是以专注于单一责任与功能的小型功能区块Small Building Blocks 为基础&#xff0c;…

FL Studio21安装体验试用下载fl水果支持最新中文语言功能

FL Studio是什么&#xff1f;如果你打算将来朝着艺术和音乐方向发展&#xff0c;那么学习音乐理论和音乐制作就是一门基础了。FL Studio 21还提供了几十个内置的音乐和声音样本库&#xff0c;以及多种音频效果处理器和虚拟乐器&#xff0c;包括合成器、鼓机、效果器等。这些插件…

【C++初阶】:类与对象(上)

类与对象 一.面向对象的初步认识二.初步认识类三.类的权限四.类的声明和定义五.封装六.类的实例化七.类的大小 一.面向对象的初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 例如洗衣服 而C是基于…

GFD233A 3BHE022294R0103

GFD233A 3BHE022294R0103 ABB KUC321AE PLC模块 HIEE300698R0001 KU C321 AE01 ABB KUC711 3BHB004661R0001 高压变频模块 KUC711AE ABB KUC755AE105 3BHB005243R0105 驱动控制系统模块 KUC755 ABB KUC755AE106 3BH005243R006 控制系统模块 KU C755 AE 106 ABB LDGRB-01 3BSE01…

react-10 函数式写法rsf,配合HOOKS钩子函数

函数式跨组件通信&#xff1a; useContext 实现跨组件传值&#xff0c;内层组件获取context中的值 用来解决同一个父组件的后代组件之间的数据共享问题, 同一个父组件的所有后代组件都可以用 useContext() 从最近的 context 中获取. 性能优化&#xff1a;useMemo &#xff1a…

cv2 五边形矫正,python ,多边形透视变换

#图像透视变换--矫正 #根据最大的5边形进行透视变换 #获取最大和最次长 周长对应的轮廓 #该轮廓进行5边形拟合逼近 #进行透视变换&#xff1a;应用两线交点 import numpy as np import cv2#大津阈值法 OSTU def myApprox(con,pointnum5):# con为预先得到的最大轮廓num 0.001…

2023年CDGA/CDGP数据治理工程师认证报名需要什么条件?

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

mybatis01-Lombok、mybatis原理、参数处理、模糊查询、结果封装

mybatis01 Lombok 一、Lombok的使用 Lombok 是一个Java库&#xff0c;能自动插入编辑器并构建工具&#xff0c;简化Java开发。通过加注解的方式&#xff0c;不需要为类编写getter、setter、constructor或equals&#xff0c;同时可以自动化日志变量。 第一步、在pom.xml中加…

基于动态车辆模型的百度Apollo LQR和MPC横向控制算法分析(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 Apollo 是由百度发起的一个高效、灵活的基于自动驾驶的测试和研发的平台。Apollo 的主要逻辑为局部规划 轨道跟踪。在局部规划…

4.1 插值概念与基础理论

学习目标&#xff1a; 学习插值的基础理论可以从以下几个方面入手&#xff1a; 理解插值的概念&#xff1a;插值是指根据已知数据点的函数值&#xff0c;构造出经过这些点的函数&#xff0c;用于在已知数据点之间估计函数值。可以将其看做是一种函数逼近的方法。 掌握插值多项…

【Linux】MySQL高可用之Mysql读写分离实践

一、MySQL读写分离原理 读写分离就是在主服务器上修改&#xff0c;数据会同步到从服务器&#xff0c;从服务器只能提供读取数据&#xff0c;不能写入&#xff0c;实现备份的同时也实现了数据库性能的优化&#xff0c;以及提升了服务器安全。 二、读写分离实践 绝大多数的企业的…

居家办公远程控制电脑怎么操作

居家办公或者混合办公&#xff0c;正成为一种新的流行趋势。如何更好地居家办公&#xff0c;实现更高的工作效率和更舒适办公体验&#xff0c;我们总结出如下建议。 无论您是每周远程工作几天还是全职工作&#xff0c;无论是出于选择还是因为健康状况或天气事件&#xff0c;都…

部署YUM仓库及NFS共享服务

一、YUM仓库服务 1&#xff09;YUM概述 YUM&#xff08;Yellow dog Updater Modified&#xff09; 基于RPM包构建的软件更新机制 可以自动解决依赖关系 所有软件包由集中的YUM软件仓库提供 linux本身就是以系统简洁为自身优势&#xff0c;所以在安装操作系统的时候并没有将…

Kaggle往期赛 | 多目标推荐系统大赛baseline

来源&#xff1a;深度之眼 作者&#xff1a;比赛教研部 编辑&#xff1a;学姐 Kaggle OTTO – Multi-Objective Recommender System多目标推荐系统大赛 赛题分析baseline 1、赛题链接 https://www.kaggle.com/competitions/otto-recommender-system/overview 2、赛题描述 本…