TCGA中配对样本的可视化—科研工具箱

请关注公众号【叨客学习资料】 在使用网站的过程中有疑问,请来公众号进行反馈哦

0.需求

TCGA里的数据tumor多normal少,想要挑选出配对样本进行差异分析。(并不是说必须挑配对样本才能做哦,直接做也是可以的),筛选配对样本解决方案很多种,这边只是一种,本文主要记录配对数据的ggplot2实现。

1.数据

这里使用的数据是本人Xena broower 下载的TCGA-LUAD表达矩阵。

library(ggplot2)

rm(list = ls())

exp<- read.table(\"G:/TCGA/tcga/LUAD/HiSeqV2\",row.names = 1,header = T)

dim(exp)

## [1] 20530 576

exp[1:4,1:4]

##TCGA.69.7978.01 TCGA.62.8399.01 TCGA.78.7539.01 TCGA.50.5931.11

##ARHGEF10L 9.9898 10.4257 9.6264 8.6835

##HIF3A 4.2598 11.6239 9.1362 9.4824

##RNF17 0.4181 0.0000 1.1231 0.8221

##RNF10 10.3657 11.5489 11.6692 11.7341

head(colnames(exp))

## [1] \"TCGA.69.7978.01\" \"TCGA.62.8399.01\" \"TCGA.78.7539.01\" \"TCGA.50.5931.11\" \"TCGA.73.4658.01\" \"TCGA.44.6775.01\"

从TCGA ID里可以找到tumor和normal的分组,统计它们的数量:

table(stringr::str_sub(colnames(exp),14,15)<10)

##

## FALSE TRUE

## 59 517

2.代码实现

配对样本的共同点是病人ID(前12位)一致,根据这个来匹配即可。

先拆分成tumor和normal两个矩阵,根据ID的14和15位来拆

library(stringr)

exp_nor = exp[,str_sub(colnames(exp),14,15) > 10]

exp_tum = exp[,str_sub(colnames(exp),14,15)<=10]

有normal样本的病人的ID,是normal组样本ID的前12位,也是exp_nor的行名。

patient = str_sub(colnames(exp_nor),1,12)

然后将tumor矩阵中与patient相匹配的样本名选出来,能匹配到的就会被挑出来。

k = str_sub(colnames(exp_tum),1,12) %in% patient;table(k)

## k

## FALSE TRUE

## 459 58

exp_tum = exp_tum[,k]

可以把表达矩阵拼回去咯:

exp2 = cbind(exp_tum,exp_nor)

dim(exp2)

## [1] 20530 117

就相当于把表达矩阵按列取子集了,tumor和normal各九个样本,后面可以拿来做配对样本的差异分析

3.特定基因配对T检验即可视化

data<-data.frame( t(exp2[which(rownames(exp2)==\"TP53\"),]))

data$group<-ifelse(str_sub(rownames(data),14,15) < 10,\"Tumor\",\"Normal\")

data$patient<-str_sub(rownames(data),1,12)

自定义ggplot2主题,可修改参数

if(T){mytheme <- theme(plot.title = element_text(size = 15,color=\"black\",hjust = 0.5),
                       axis.title = element_text(size = 15,color =\"black\"), 
                       axis.text = element_text(size = 15,color = \"black\"),
                       panel.grid.minor.y = element_blank(),
                       panel.grid.minor.x = element_blank(),
                       panel.grid=element_blank(),
                       legend.position = \"none\",
                       legend.text = element_text(size = 15),
                       legend.title= element_text(size = 15)
)} 
box_paired <- ggplot(data, aes(x = group,y = TP53,fill= group)) +
  geom_boxplot(aes(fill = group),width= 0.5) +
  geom_point(shape=1, size= 3, alpha=1) +
  geom_line(aes(group = patient), colour=\"grey20\", linetype=\"solid\",size=1, alpha=0.5)+ 
  scale_fill_manual(values = c(\"#1CB4B8\", \"#EB7369\"))+
  scale_y_continuous(limits=c(6, 15),breaks =seq(6,14,2),expand = c(0, 0) )+
  labs(y=\"TP53 expression\",x=NULL,title = \"\")+
  theme_bw()+ mytheme 

当然还可以添加paired ttest,使用t.test把结果添加到图中,或者使用ggggpubr包的stat_compare_means函数直接添加。

图片[1]-TCGA中配对样本的可视化—科研工具箱-叨客学习资料网
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
请输入有效评论哦,肆意灌水或者乱打评论是不会通过的,会影响您评论后获得资源哦~~
提交
头像

昵称

取消
昵称表情

    暂无评论内容