scDEA一键汇总12种单细胞差异分析方法 DESeq2、edgeR、MAST、monocle、scDD、Wilcoxon

问题来源

单细胞可以做差异分析,但是究竟选择哪种差异分析方法最靠谱呢?

解决办法

于是我去检索文献,是否有相关研究呢?

https://academic.oup.com/bib/article/23/1/bbab402/6375516

文章指出,现有的差异分析方法(包括用于 bulk RNA-seq 和 scRNA-seq 的方法),它们都对样本量和批次效应敏感。

于是本研究没有执着于寻找现有技术中的最佳方法,也没有执着于开发一种新的高精度和稳健的方法,而是借鉴了现有算法的优势,开发了一种基于集成学习的 scRNA-seq 数据差异表达分析方法,名为 scDEAscDEA 利用 Lancaster 组合概率测试方法,整合了来自 12 种独立方法( 既涵盖 bulk RNA-seq 也涵盖 scRNA-seq 数据) 的分析结果,从而得出一个准确且稳健的共识结果。

scDEA 在控制 I 型错误率、富集特定生物功能的差异表达基因检测、以及对不同样本量和不同实验批次的数据集识别出的一致性差异表达基因方面,都优于单个的差异表达分析方法。为了提供用户友好的工具,作者还开发了一个 R 软件包来实现集成分析过程 (https://github.com/Zhangxf-ccnu/scDEA)。此外,还开发了一个 Shiny 应用,以方便用户更轻松地实施和可视化分析结果 (https://github.com/Zhangxf-ccnu/scDEA-shiny)

.scDEA 的工作原理

scDEA 主要包含以下四个步骤:

  1. 对原始计数矩阵进行归一化,以满足各个差异表达分析方法的要求

  2. 运行 12 种差异表达分析方法,并为每个基因生成 p 值

  3. 整合各个方法生成的 p 值,以获得一致的结果

  4. 对整合后的 p 值进行调整,以解决多重检验问题

注意,对于scDEA,我们需要使用counts矩阵哦:

由于一些差异表达分析框架只接受原始计数矩阵,而其他方法则需要归一化表达矩阵作为输入,为了给所有 12 种独立的差异表达分析方法构建统一的输入,scDEA 首先将原始计数矩阵转换为每百万 (CPM) 比对 reads,然后将原始计数矩阵、CPM 归一化表达矩阵和细胞类型标签一起集成,并使用 R 软件包 SingleCellExperiment [20] 保存为一个 SingleCellExperiment 对象。

scDEA R包安装

.scDEA 软件包的依赖

scDEA 软件包依赖以下 R 软件包:BPSC、DEsingle、DESeq2、edgeR、MAST、monocle、scDD、limma、Seurat、zingeR、SingleCellExperiment、scater 和 aggregation。安装 scDEA 时,它可以加载大部分的依赖包。但是,如果依赖项没有正确安装,则需要您自己手动安装。

.Windows 系统上的注意事项

根据经验,scDEA 在 Windows 系统上无法自动安装 BPSC、DEsingle 和 zingeR 软件包,但是在 Ubuntu 16.04 系统上可以加载所有依赖包。因此,如果您在 Windows 系统上使用 scDEA,建议 首先先安装 BPSC、DEsingle 和 zingeR 软件包。

devtools::install_github("nghiavtr/BPSC")BiocManager::install("DEsingle")devtools::install_github("statOmics/zingeR")devtools::install_github("Zhangxf-ccnu/scDEA")

成功安装:

但是,官方教程太简陋了

data("Grun.counts.hvg")data("Grun.group.information")Pvals <- scDEA_individual_methods(raw.count = Grun.counts.hvg, cell.label = Grun.group.information)combination.Pvals <- lancaster.combination(Pvals, weight = TRUE, trimmed = 0.2)adjusted.Pvals <- scDEA.p.adjust(combination.Pvals, adjusted.method = "bonferroni")

还好,示例数据是可以运行的,激动!

最后每个基因都能得到一个p值,但是奇怪的是,作者并没有给出差异基因的表格(我已经问了作者,静候回复)。但是我们可以退而求其次,把findmarker得到的结果和这个p值取交集,进而得到差异基因。

作者说scDEA这种方法可以减少一类错误,减少细胞数目的影响,减少批次效应的影响......

.下面,我使用自己的pbmc数据测试一下.

如果你对示例数据不熟悉,可以参考我之前的推文与直播

1 20231126单细胞直播一理解pbmc处理流程与常用R技巧   

2 单细胞直播一理解seurat数据结构与pbmc处理流程  

3 单细胞数据pbmc数据下载,标准处理流程获取seurat对象

scDEA 主要包含以下四个步骤:

  1. 对原始计数矩阵进行归一化,以满足各个差异表达分析方法的要求

  2. 运行 12 种差异表达分析方法,并为每个基因生成 p 值

  3. 整合各个方法生成的 p 值,以获得一致的结果

  4. 对整合后的 p 值进行调整,以解决多重检验问题

library(scDEA)load("~/gzh/pbmc3k_final_v4.rds")head(pbmc@meta.data)as.matrix(pbmc@assays$RNA@counts)[1:4,1:4]Pvals <- scDEA_individual_methods(raw.count =as.matrix(pbmc@assays$RNA@counts), #此处必须把稀疏矩阵转为常见的矩阵才可以运行----                                  cell.label = pbmc@meta.data$group )combination.Pvals <- lancaster.combination(Pvals, weight = TRUE, trimmed = 0.2)adjusted.Pvals <- scDEA.p.adjust(combination.Pvals, adjusted.method = "bonferroni")

在我自己的数据种,这段代码也是可以运行的哦

后记

1 作者说scDEA这种方法可以减少一类错误,减少细胞数目的影响,减少批次效应的影响......但是,我跑完了他的整个流程,感觉就是真的这么厉害吗

2 另外,为啥实例教程使用hvg呢,而不是使用整个counts?

3 最后,运行的时间有点长啊....

看完记得顺手点个“在看”哦!

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

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

相关文章

brew命令

//查看brew的版本 brew -v//更新homebrew自己&#xff0c;把所有的Formula目录更新&#xff0c;并且会对本机已经安装并有更新的软件用*标明 brew update//查看命令帮助&#xff1a; brew -help//查看那些已安装的程序需要更新 brew outdated//更新单个软件&#xff1a; brew u…

LLM预测训练集数据重复、长度超出label

遇到一个场景&#xff0c; 拿几条数据用LORA微调了LLM&#xff0c; 根据Loss看已经接近了0&#xff0c; 但是拿训练集里的数据预测时 &#xff0c;不管怎么调节generate的参数&#xff0c; 预测结果总是不对&#xff0c; 有整段话重复生成的结果&#xff0c; 有不重复生成&…

Vmware虚拟机强制退出Ubuntu后无法开启,报错【开机时出错: VMware Player 无法连接到虚拟机。】

1. 现象 虚拟机强制退出Ubuntu后无法开机&#xff0c;报错如下&#xff1a; 2. 解决方法 任务管理器结束VMware相关的任务

LeetCode hot100-17

41. 缺失的第一个正数给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 这题要求空间复杂度为O(1)&#xff0c;要么定义单个变量&#xff0c;要么原地操作。定义长度为n的数…

JS加密解密之字符编码知识

在前端开发中&#xff0c;字符编码是一个至关重要的概念&#xff0c;特别是在数据传输、加密和解密等方面。JavaScript作为一种常用的脚本语言&#xff0c;在处理字符编码时也有其独特之处。本文将详细介绍JavaScript中的字符编码知识&#xff0c;包括字符编码的分类和相关案例…

SpringCloud从入门到精通速成(二)

文章目录 1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取配置 1.2.配置热更新1.2.1.方式一1.2.2.方式二 1.3.配置共享1&#xff09;添加一个环境共享配置2&#xff09;在user-service中读取共享配置3&#xff09;运行两个UserApplication&…

【算法】数论——蓝桥杯笔记、最大公约数、欧拉函数模版、线性筛法求欧拉函数、快速幂 a^k%p、扩展欧几里得算法

文章目录 蓝桥杯* 最大公约数欧拉函数模版* 线性筛法 求欧拉函数* 快速幂 a^k%p扩展欧几里得算法 蓝桥杯 * 最大公约数 两个整数的最大公约数等于其中较小的那个数和两数的差的最大公约数。通过不断地用较小的数替换较大的数&#xff0c;并用两数的差替换较小的数&#xff0c;…

ElasticSearch文档操作[ES系列] - 第502篇

历史文章&#xff08;文章累计500&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

阿里云OSS存储的视频如何加水印

OSS是不能进行视频添加水印的&#xff0c;可以图片添加水印。 您可以在视频点播中进行配置&#xff1a; https://help.aliyun.com/zh/vod/user-guide/video-watermarks?spma2c4g.11186623.0.i2 原来的业务代码都是使用python 对oss的 视频进行上传 的,上传的视频路径已经保存到…

qt5-入门-国际化

参考&#xff1a; Qt 国际化(上)_w3cschool https://www.w3cschool.cn/learnroadqt/fwkx1j4j.html QT5实现语言国际化&#xff08;中英文界面动态切换&#xff0c;超详细&#xff09;_qt qevent::languagechange-CSDN博客 https://blog.csdn.net/m0_49047167/article/details/…

【随手记】MySQL窗口函数计算累加和

SELECT id, month, salary,SUM(salary) OVER (ORDER BY month ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS rolling_total FROM employee;1.当前行及其前2行累加求和 SUM(salary) OVER (ORDER BY month ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) 是一个窗口函数&#xff…

鸿蒙Harmony应用开发—ArkTS(stateStyles:多态样式)

Styles和Extend仅仅应用于静态页面的样式复用&#xff0c;stateStyles可以依据组件的内部状态的不同&#xff0c;快速设置不同样式。这就是我们本章要介绍的内容stateStyles&#xff08;又称为&#xff1a;多态样式&#xff09;。 概述 stateStyles是属性方法&#xff0c;可以…

uniapp app端跳转到应用商店

uniapp app端跳转到应用商店 安卓是指定包名跳转&#xff0c;iOS需要指定id: if (plus.os.name "Android") {// 跳转安卓应用市场let appurl "market://details?idcom.tencent.mm" //这个是通用应用市场&#xff0c;如果想指定某个应用商店&#xff0…

基于springboot的4S店车辆管理系统

基于springboot的4S店车辆管理系统 的设计和实现 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开…

c语言食堂就餐排队问题290行

定制魏&#xff1a;QTWZPW&#xff0c;获取更多源码等 目录 题目 数据结构 函数设计 结构设计 总结 效果截图 ​ 主函数代码 题目 设计一个程序来模拟食堂就餐排队问题&#xff0c;通过输入学生人数和面包数量&#xff0c;计算有多少学生能够吃到午餐。 数据结构 该…

【Docker】在 Ubuntu 上安装 Docker 的步骤

在 Ubuntu 上安装 Docker 的步骤如下&#xff1a; 更新包索引并安装必要的软件包以允许 apt 使用 HTTPS&#xff1a; sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common注意&#xff01;网上另有一个命令声称最简洁&am…

25.2 微服务Dubbo

25.2 微服务Dubbo 1. Dubbo简介2. RPC3. Dubbo工作原理4. 代码实操4.1 父项目1. 依赖4.2 服务提供者1. 依赖2. 配置文件3. 启动类4. 业务类4.3 服务消费者1. 依赖2. 配置文件3. 消费者启动类4. 业务:实现远程调用

GPS授时器(NTP校时服务器)助力电子政务系统建设

GPS授时器&#xff08;NTP校时服务器&#xff09;助力电子政务系统建设 GPS授时器&#xff08;NTP校时服务器&#xff09;助力电子政务系统建设 摘要&#xff1a;随着电子政务的不断发展&#xff0c;许多省份都建立了自己的政务网络&#xff0c;使用的网络设备和服务器日益增多…

Tomcat部署war包

1.首先将咱们的web项目进行打包,打成一个war包&#xff1b; 2.将war包放置在webapps目录下&#xff0c;当tomcat启动运行时会将war包自动解压在当前文件夹&#xff0c;war包名称即为访问路径&#xff1b; 3.在conf目录下server.xml里可以设置tomcat访问端口&#xff0c;如果端口…

数字资产管理系统、企业数字资产管理软件

数字资产管理系统&#xff08;DAMS&#xff09;是一系列软件&#xff0c;它提供了一个开放平台&#xff0c;支持对多媒体数据的采集、创建、管理、存储、归档、检索、传输和显示。这些多媒体数据包括图像、视频、声音、文本和电影剪辑等。这些基础软件不仅是内容创作&#xff0…