泛癌的基因表達(dá)量一般可以用TCGA和GTEx實(shí)現(xiàn)理肺,但是腫瘤細(xì)胞系一般用CCLE
臨床生信之家是一個很好的在線工具乃摹,目前上架了CCLE的功能免糕,出的圖見下赢乓,可以實(shí)現(xiàn)單基因在泛癌和單病種的可視化,但是這個網(wǎng)址什么都好石窑,就是有次數(shù)限制牌芋,后面使用要加錢
,而且價錢不菲松逊,學(xué)生黨望而卻步躺屁。。经宏。
會R語言犀暑,當(dāng)然可以省掉這筆巨款,而且可以DIY烁兰,樂趣無窮
首先去CCLE官網(wǎng)下載數(shù)據(jù)耐亏,目前網(wǎng)頁更新了,功能也多了
比如TP53
沪斟,訪問這個網(wǎng)址TP53 DepMap Gene Summary就行广辰,在Characterization
里Expression 21Q2 Public
右邊有個下載標(biāo)志,基因單位是Log2(TPM+1)
主之,很科學(xué)
下載后的數(shù)據(jù)是: TP53 Expression 21Q2 Public.csv
把數(shù)據(jù)讀進(jìn)R里面
TP53_Expression_21Q2_Public <- read.csv("~/Desktop/TP53 Expression 21Q2 Public.csv")
可以看到很多有用信息择吊,包括基因表達(dá)量、細(xì)胞系名槽奕、原發(fā)病几睛、器官和亞型,這樣我們就可以跑代碼了
- 第一步粤攒,畫個泛癌的boxplot所森,可以用ggplot2,也可以用ggpubr的ggboxplot函數(shù)琼讽,但是最好還是ggplot2必峰,可以按中位數(shù)排序,標(biāo)上均數(shù)標(biāo)準(zhǔn)差钻蹬,還可以標(biāo)一下所有數(shù)值的均值
library(ggplot2)
library(ggpubr)
ggplot(TP53_Expression_21Q2_Public,
aes(x = reorder(`Primary Disease`,`Expression 21Q2 Public`, FUN = median), #按中位數(shù)自動排序
y =`Expression 21Q2 Public`,color=`Primary Disease`)) + #y也可以是Lineage
geom_boxplot()+ #添加boxplot
geom_point() + #添加點(diǎn)
theme_classic(base_size = 12)+ #主題和字體大小
rotate_x_text(45)+ #X軸45度傾斜一下
theme(legend.position="none")+ #不需要顯示標(biāo)簽
xlab(NULL)+ylab("TP53 expression \nLog2(TPM+1)")+ #改下坐標(biāo)名稱
stat_summary(fun.data = 'mean_sd', geom = "errorbar", width = 0.5,position = position_dodge(0.9))+ #自動計算均數(shù)標(biāo)準(zhǔn)差,加個誤差棒
geom_hline(yintercept = mean(TP53_Expression_21Q2_Public$`Expression 21Q2 Public`), lty = 2)
#自動計算均值凭需,標(biāo)個虛線
當(dāng)然也可以統(tǒng)計一下差異问欠,再加一句+stat_compare_means(method = "anova")
就行肝匆。
- 第二步,提取單個癌癥的數(shù)據(jù)畫個棒棒糖圖顺献,可以用ggplot2旗国,也可以用ggpubr的ggdotchart,不過最好還是ggplot2
比如注整,你想提取腎癌的數(shù)據(jù)
data<-TP53_Expression_21Q2_Public[TP53_Expression_21Q2_Public$`Primary Disease` == 'Kidney Cancer',]
我是這樣設(shè)計圖片的能曾,以點(diǎn)的大小代表基因表達(dá)量,按顏色表達(dá)程度肿轨,顏色從藍(lán)到紅寿冕,可以從大到小排序,也可以從小到大排列椒袍,然后用均數(shù)隔開
ggplot(data, aes(x=reorder(`Cell Line Name`,`Expression 21Q2 Public`), y=`Expression 21Q2 Public`)) +
geom_point(aes(size=`Expression 21Q2 Public`,color=`Expression 21Q2 Public`),stat='identity') +scale_color_continuous(low='blue' ,high='red') +
geom_segment(aes(y = mean(data$`Expression 21Q2 Public`),
x = `Cell Line Name`,
yend = `Expression 21Q2 Public`,
xend = `Cell Line Name`),
color = "black") +
theme_classic(base_size = 12) +
coord_flip() +
xlab(NULL)+ylab("TP53 expression")+
geom_hline(yintercept = mean(data$`Expression 21Q2 Public`), lty = 2)
從小到大再來一次驼唱,reorder里加個-就行
ggplot(data, aes(x=reorder(`Cell Line Name`,-`Expression 21Q2 Public`), y=`Expression 21Q2 Public`)) +
geom_point(aes(size=`Expression 21Q2 Public`,color=`Expression 21Q2 Public`),stat='identity') +scale_color_continuous(low='blue' ,high='red') +
geom_segment(aes(y = mean(data$`Expression 21Q2 Public`),
x = `Cell Line Name`,
yend = `Expression 21Q2 Public`,
xend = `Cell Line Name`),
color = "black") +
theme_classic(base_size = 12) +
coord_flip() +
xlab(NULL)+ylab("TP53 expression")+
geom_hline(yintercept = mean(data$`Expression 21Q2 Public`), lty = 2)
不要錢的,不香嗎驹暑?