TCGA_联合GTEx分析2_查看批次效应

news/2024/11/28 21:59:09/

在 TCGA_联合GTEx分析1_得到表达矩阵.tpm_老实人谢耳朵的博客-CSDN博客 中,获取了TCGA和GTEx中样本的表达矩阵数据,数据格式均为tpm。本文对二者进行合并后,通过PCA分析、绘制内参箱线图等方法,查看是否存在批次效应。

关于批次效应的说明,可参看 批次效应(Batch effect)解读

一、数据准备

1 合并后的表达矩阵 

exp_tcga.tpm <- read.csv(file = "exp_tcga.tpm.csv", header=T, row.names=1,check.names=FALSE)
exp_gtex.tpm <- read.csv(file = "exp_gtex.tpm.csv", header=T, row.names=1,check.names=FALSE)t_index=intersect(rownames(exp_gtex.tpm),rownames(exp_tcga.tpm))
exp_m = cbind(exp_tcga.tpm[t_index,],exp_gtex.tpm[t_index,])
rm(exp_tcga.tpm,exp_gtex.tpm)

View(exp_tcga.tpm) 

包括500个TP,52个NT

View(exp_gtex.tpm)

包括100个NT

View(exp_m)

2 分组信息

group = ifelse(colnames(exp_m[,1:552]) %in% t_dataSmTP,'tcgaTP','tcgaNT')
group = c(group,rep('gtexNT',ncol(exp_m)-length(group)))
barcode=colnames(exp_m)design = data.frame('Barcode'=barcode,'Group'=group)

View(design)

 

二、 主成分分析(Principal Component Analysis)查看批次效应

R语言如何绘制PCA图(四)_心有灵犀啦的博客-CSDN博客_r语言绘制pca图

PCA分析是查看批次效应的最佳方式,如果样本明显按照批次聚类,说明存在批次效应。 

library(ggplot2)
library(ggbiplot)

1 数据准备——转置矩阵

exp_m_t=as.data.frame(t(exp_m))

主成分分析,绘制的总是“行变量”的聚类图,因为想看的是barcode的聚类而不是基因的聚类,所以进行转置,使barcode转成行变量。

View(exp_m_t)

 2 PCA分析

pca_result <- prcomp(exp_m_t,scale=T)  # 一个逻辑值,指示在进行分析之前是否应该将变量缩放到具有单位方差ggbiplot(pca_result, var.axes=F,            # 是否为变量画箭头obs.scale = 1,         # 横纵比例 groups = design$Group, # 添加分组信息,将按指定的分组信息上色ellipse = T,           # 是否围绕分组画椭圆circle = F) +
ggtitle('PCAplot_tcga&gtex') +
xlim(-100, 200) + ylim(-200, 100) #限制横纵轴范围

PCA图中,tcgaNT 和 gtexNT 明显分为两个亚群,表明存在较强的批次效应。

 

三、 内参表达箱线图查看批次效应

library(ggplot2)
library(reshape2)

1 数据准备——构造 exp_Reshape 用于绘制箱线图

exp_R = melt(as.matrix(log2(exp_m+1)))     #melt()的输入必须为matrix,得到的exp_R为dataframe
colnames(exp_R) = c('Gene','Barcode','Value')
exp_R$Group = rep(group,each=nrow(exp_m))

View(exp_R)

 

2 ggplot2绘图

gene='All_gene'p_allgene = ggplot(exp_R,aes(x=Group, y=Value,fill=Group)) + #fill进行颜色填充geom_boxplot() +stat_summary(fun="mean",geom="point",shape=23, size=4,fill="white") + #添加均值点ggtitle(paste0('Expression of ',gene)) +xlab('Group') + ylab('log2(tpm+1)') + #x轴y轴标签ylim(0, 5)
p_allgene

 所有样本 All_genes 表达量的平均值

 

 

gene='ACTB'p_actb = ggplot(exp_R[exp_R$Gene==gene,],aes(x=Group, y=Value,fill=Group)) + #fill进行颜色填充geom_boxplot() +stat_summary(fun="mean",geom="point",shape=23, size=4,fill="white") + #添加均值点ggtitle(paste0('Expression of ',gene)) +xlab('Group') + ylab('log2(tpm+1)') + #x轴y轴标签ylim(10, 15)
p_actb

 所有样本 ACTB 表达量的平均值  

 

 

gene='RPLP0'p_rplp0 = ggplot(exp_R[exp_R$Gene==gene,],aes(x=Group, y=Value,fill=Group)) + #fill进行颜色填充geom_boxplot() +stat_summary(fun="mean",geom="point",shape=23, size=4,fill="white") + #添加均值点ggtitle(paste0('Expression of ',gene)) +xlab('Group') + ylab('log2(tpm+1)') + #x轴y轴标签ylim(7, 12)
p_rplp0

 所有样本 RPLP0 表达量的平均值   

 

从内参表达箱线图中,不太容易看出批次效应。 All_genes图中批次效应明显一些。

 


http://www.ppmy.cn/news/966961.html

相关文章

TCGA 亚型突变负荷代码

#1、准备文件/数据并加载相应的包 #1.1下载并加载相应的包&#xff0c;有就直接加载&#xff0c;没有就下载后再加载。 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::install("TCGAbiolinks") library(t…

基因组变异检测SNPcalling(GATK)

基因组变异检测SNPcalling&#xff08;GATK&#xff09; 第一步&#xff0c;将数据软连接到自己的工作路径下第二步&#xff0c;用BWA index功能为ref文件做index&#xff0c;用Samtools软件为ref做index第三步&#xff0c;用BWA软件做序列比对&#xff0c;得到序列比对的sam文…

提取TCGA 中体细胞突变数据的表达矩阵

#因为之前的命令调用GDCquery_Maf 发现用不了 #故找到了一些其他的方法&#xff0c;并且自己试着将其弄成了一个表达矩阵。 #代码如下 #1、下载加载相应的包 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::insta…

maftools|TCGA肿瘤突变数据的汇总,分析和可视化

之前介绍了使用maftools | 从头开始绘制发表级oncoplot&#xff08;瀑布图&#xff09; R-maftools包绘制组学突变结果&#xff08;MAF&#xff09;的oncoplot或者叫“瀑布图”&#xff0c;以及一些细节的更改和注释。 本文继续介绍maftools对于MAF文件的其他应用&#xff0c;为…

新版TCGA的突变SNP数据添加临床信息

文章目录 加载数据和R包读取数据 今天给大家演示下如何用自己的数据完成maftools的分析&#xff0c;主要是snp文件和临床信息的制作&#xff0c;其实很简单&#xff0c;但是网络上的教程都说的不清楚。 这次我们直接用之前TCGA-COAD和TCGA-READ合并后的数据演示&#xff0c;合…

ChatGPT 增长逐渐放缓,不再能吞噬整个网络?

整理 | 陈静琳 责编 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; ChatGPT 的爆火&#xff0c;是昙花一现&#xff0c;还是未来可期&#xff1f; 近日&#xff0c;网站流量分析工具 Similarweb 针对 ChatGPT 目前的数据流量现状进行了一次深度的调研…

【饭谈-缓解焦虑】浅谈下目前AI【ChatGpt】现状和测试行业未来预测

最近关于chatgpt的新闻和功能真的是满天飞&#xff0c;比之前元宇宙还火爆&#xff0c;各种大佬纷纷发表了看法。你看着这些东西是不是变得越来越焦虑了&#xff1f;感觉自己马上就要失业了&#xff1f;感觉人类都要灭绝了&#xff1f;硅基生命真的要取代碳基了&#xff1f;但是…

ChatGPT资深提示工程师需要具备技能

ChatGPT是一种基于深度学习的生成式AI工具&#xff0c;可以根据给定的提示生成各种类型的文本&#xff0c;如对话、故事、文章、代码等。ChatGPT提示工程师是一种新兴的职业&#xff0c;他们负责设计和优化ChatGPT的输入和输出&#xff0c;以实现特定的目标和效果。 ChatGPT资…