教程拓展:手上在研究的基因在各种组织,癌症,细胞系中的表达量。
昨天的教程我很喜欢,以后再配上个基因启动子转录调控因子筛选的技能,就是神技中的神技。
跟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文章中只要是基于表达量数据的分析,都可以用这个数据来实现。
因为这是我们的第一个线上教程,会影响后面所有教程的基调、水准以及作者的创作积极性,我得安利一下。
教程还在打折中,放马过来。