TCGA数据分析R

教程拓展:手上在研究的基因在各种组织,癌症,细胞系中的表达量。

2019-10-10  本文已影响0人  9d760c7ce737

昨天的教程我很喜欢,以后再配上个基因启动子转录调控因子筛选的技能,就是神技中的神技。
跟Nature一起学习TCGA,GTEx和CCLE数据库的使用

目前已经100人订阅。感谢这部分人的信任。有一位朋友问的很好,我也答的很好。



帖子已经足够详细,核心代码全部给出,高手就自己做,如果看了还不懂,那就乖乖买课程。我们真心实意,学员心服口服。

但是还是有很多既往的学员支持了这个小课程,我的心情很复杂。


=

表面上看,这个小教程就是实现了任意两个基因,在三个数据多个组织中的相关性,骨子里,我用了同样的代码和思维处理了三个数据库的数据。
我说,R语言初学者应该把精力放在数据调整上,而把数据调整为清洁数据(行为观察,列是变量)就是三步,基因注释,行列转置,添加分组。只要成为了清洁数据,大部分R包都可以用起来了。这个小教程,作为data wrangling的练习题,是真真极好的。

我们今天来看看,基于当前的这个数据,我们还能做什么操作呢。如题,看手上研究的基因的表达量,稳妥的很。

以TCGA为例

看GATA3这个基因在多个肿瘤组织中的表达量
先加载数据

rm(list=ls())
load(file = "pancancer_mRNA_exprSet.Rdata")
data <- mRNA_exprSet
test <- data[1:10,1:10]

直接用ggplot2画图

library(ggplot2)
ggplot(data,aes(x=type,y=GATA3,color=type))+
  geom_boxplot()+
  geom_jitter()+
  theme_bw()+
  theme(legend.position='none')

因为这个ggplot2画的,改颜色,改形状都没有任何问题,大提琴,小提琴图随便画。
如果嫌癌症多了,还可以自己筛选需要呈现的癌种,告诉人家我这个基因在某个癌种中就是特异表达。
如果你用这个里面的技能,还可以任选几组比较,加p值
乱花渐欲迷人眼,偷得浮生半日闲

在GTEx数据中看GATA3在多个正常组织的表达量

加载数据

rm(list=ls())
load(file = "panGTEX_mRNA_exprSet.Rdata")
data <- mRNA_exprSet
test <- data[1:10,1:10]

画图代码,一点没变

library(ggplot2)
ggplot(data,aes(x=type,y=GATA3,color=type))+
  geom_boxplot()+
  geom_jitter()+
  theme_bw()+
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position='none')

现在可以在CCLE里面看看多个细胞系的情况

加载数据

rm(list=ls())
load(file = "panCCLE_mRNA_exprSet.Rdata")
data <- mRNA_exprSet
test <- data[1:10,1:10]

这里的数据比教程内多了一列,只要在数据处理的时候多选择一列就可以实现。

作图代码还是没有变

library(ggplot2)
ggplot(data,aes(x=type,y=GATA3,color=type))+
  geom_boxplot()+
  geom_jitter()+
  theme_bw()+
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position='none')

这个是GATA3在多个不同癌症细胞系中的综合结果,如果想看在单个癌症中多个细胞系的结果,也是可以的。
比如,我们看到GATA3在乳腺癌细胞系中相对高一点,我就可以看看乳腺癌细胞系中的表达
筛选是乳腺的行,以及选择这个基因所在的列

library(dplyr)
plot_data <- data %>% 
  filter(type=="breast") %>% 
  select(name,GATA3) 

直接画图

names(plot_data)[2] <- "gene"
library(ggplot2)
ggplot(data = plot_data,aes(x=forcats::fct_reorder(name,desc(gene)),y=gene))+
  geom_bar(stat='identity', aes(fill=name))+
  ylab("expression (log2(TPM))")+
  xlab(NULL)+
  theme_bw()+
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position='none')

这样如果要做实验,选择细胞系也有个参考了。

当然换个癌症,换个基因,代码也几乎一样
比如胰腺癌种PRSS1基因

## 数据
library(dplyr)
plot_data <- data %>% 
  filter(type=="pancreas") %>% 
  select(name,PRSS1) 
names(plot_data)[2] <- "gene"
## 作图
library(ggplot2)
ggplot(data = plot_data,aes(x=forcats::fct_reorder(name,desc(gene)),y=gene))+
  geom_bar(stat='identity', aes(fill=name))+
  ylab("expression (log2(TPM))")+
  xlab(NULL)+
  theme_bw()+
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position='none')

为什么纵坐标还有负的,因为被log2了啊。

关于这个数据,还有更多拓展,也可以说,TCGA文章中只要是基于表达量数据的分析,都可以用这个数据来实现。
因为这是我们的第一个线上教程,会影响后面所有教程的基调、水准以及作者的创作积极性,我得安利一下。
教程还在打折中,放马过来。


上一篇下一篇

猜你喜欢

热点阅读