前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >两分组差异分析的上下调基因跟PCA分析的主成分基因的交集如何

两分组差异分析的上下调基因跟PCA分析的主成分基因的交集如何

作者头像
生信技能树
发布2023-09-04 16:27:49
2840
发布2023-09-04 16:27:49
举报
文章被收录于专栏:生信技能树生信技能树

最近授课转录组数据分析实战的时候, 到了下游分析环节,主要是表达量矩阵质量控制,差异分析,以及后续的生物学功能数据库注释。

学员提出来了一个很有意思的问题, 就是表达量矩阵质量控制环节里面的PCA分析,可以看出来不同样品在二维图里面的距离,其中PC1是可以区分两个分组,如下所示:

PC1是可以区分两个分组

而我们做这两个分组的完差异分析后,我们的基因也是根据它在两个分组的差异程度排序的,如下所示:

基因也是根据它在两个分组的差异程度排序的

这两个分析看起来是“风马牛不相及”,但是学员还是感兴趣两分组差异分析的上下调基因跟PCA分析的主成分基因的交集如何呢?

我们还是以代码来说明这个问题:

首先是表达量矩阵的PCA分析

如下所示的代码:

代码语言:javascript
复制
rm(list = ls()) 
options(stringsAsFactors = F)
library(ggplot2)
library(ggstatsplot)
library(ggsci)
library(RColorBrewer)
library(patchwork)
library(ggplotify)
library("FactoMineR")#画主成分分析图需要加载这两个包
library("factoextra")  
library(airway,quietly = T) 
data(airway)
mat <- assay(airway)  
mat[1:4,1:4]
keep_feature <- rowSums (mat > 1) > 1 
mat <- mat[keep_feature, ] 

dat = log2(edgeR::cpm(mat)+1)
dat[1:4,1:4]
dat.pca <- PCA(as.data.frame(t(dat)) , graph = FALSE) 
dim(dat.pca$var$coord)
head(dat.pca$var$coord) 

然后是默认的差异分析代码:

这里使用DESeq2包即可:

代码语言:javascript
复制
library(DESeq2)
exprSet = mat
group_list = airway@colData$dex
(colData <- data.frame(row.names=colnames(exprSet), 
                       group_list=group_list) )
dds <- DESeqDataSetFromMatrix(countData = exprSet,
                              colData = colData,
                              design = ~ group_list)
dds <- DESeq(dds) 
res <- results(dds )
resOrdered <- res[order(res$padj),]  
DEG_deseq2 = na.omit(as.data.frame(resOrdered))

最后是比较两分组差异分析的上下调基因跟PCA分析的主成分基因,已经可视化

代码如下所示:

代码语言:javascript
复制
tmp = dat.pca$var$coord
colnames(tmp)
ids=intersect(rownames(DEG_deseq2),
              rownames(tmp)) 
df = data.frame(logFC = DEG_deseq2[ids,'log2FoldChange'],
                pca = tmp [ids, "Dim.1"]) 
ggplot(data = df, 
       aes(x = logFC, 
           y =  pca)) +
  geom_point(alpha=0.6, size=1.5 ) +
  geom_point(size = 3, shape = 1 ) + 
  geom_vline(xintercept= 0 ,lty=4,col="grey",lwd=0.8) +
  #geom_vline(xintercept=c(-logFC_t,logFC_t),lty=4,col="black",lwd=0.8) +
  geom_hline(yintercept = 0 ,lty=4,col="black",lwd=0.8) +
  #coord_flip()+ 
  theme_bw() + 
  ggpubr::stat_cor(method = "pearson")+ 
  theme(  text = element_text(size=18))  

可以看到两分组差异分析的上下调基因跟PCA分析的主成分基因相关性还挺好的 :

相关性还挺好的

这背后的 统计学原理?

看到了一本有意思的书籍:《现代生物学所需要的现代统计学》,名字是我自己翻译的。

主要是因为太多小伙伴在咱们《生信技能树》后台咨询过想不错生物学知识和统计学知识,恰好这个《Modern Statistics for Modern Biology》把二者涵盖了,在线阅读链接:https://www.huber.embl.de/msmb/index.html

全书还配套代码哦:

代码语言:javascript
复制
source("https://www.huber.embl.de/msmb/install_packages.R")

Data

  • Zipped data directory,压缩包自己下载,https://www.huber.embl.de/msmb/data.tar.gz

Code

  • Rfiles folder,链接是:https://www.huber.embl.de/msmb/code/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先是表达量矩阵的PCA分析
  • 然后是默认的差异分析代码:
  • 最后是比较两分组差异分析的上下调基因跟PCA分析的主成分基因,已经可视化
  • Data
  • Code
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档