半年前我做了一個課程:0元,10小時教學視頻直播《跟著百度李彥宏學習腫瘤基因組測序數據分析》 ,有意思的是沒有一個人提交課程筆記,讓我非常傷心,計劃國慶節就解散釘釘群,刪除釘釘群裡面的錄屏啦。但是昨晚逛朋友圈看到該課程的一個學生在他的公眾號:《 醫學僧的科研日記》,寫了一個筆記:突變特徵(Mutational signatures),讓我很感動,就翻了翻 他的朋友圈,發現一個超級有意思的圖及配文《朋友圈選美大賽》:
4位美女我覺得好好玩,就轉發到了自己的朋友圈,果然感興趣的小夥伴超級多,太多人詢問如何繪製這張圖,我就委託公眾號:《 醫學僧的科研日記》寫一個筆記,如下:
我們經常會碰到連續變量的多組比較,比如比較基因在不同分組(如分期、分級和亞型等)的表達差異。兩個分組之間的比較可以使用T檢驗或Wilcox秩和檢驗,三個及三個以上分組的比較可以使用方差檢驗和kruskal檢驗。同樣的,我們可以將不同分組的差異結果進行可視化,比如這裡我們模擬一個基因在腫瘤四種AJCC分期的表達情況。同樣的,我們可以將不同分組的差異結果進行可視化。這裡,可以想像有一個選美比賽,一共有4個lady參加這個比賽,有30個評委需要對這4個lady進行評價,打分(Beauty值)在(-5,5)分區間內,我們這裡比較以下30個評委的打分分布來判斷4個lady誰能獲得冠軍。
# 生成隨機數
set.seed(39)
data <- data.frame(Beauty=c(rnorm(30,0,1.3),rnorm(30,0.5,1.6),
rnorm(30,1,1.9),rnorm(30,1.5,1.9)),
Lady=c(rep(paste0('Lady-',1:4),each=30)))
# 開始可視化+統計分析:
library(ggplot2)
library(ggsci)
library(ggpubr)
ggplot(data,aes(Lady,Beauty,fill=Lady))+
geom_boxplot(outlier.colour = NA,notch = T,size = 0.4)+
geom_jitter(shape = 21,size=2,width = 0.2)+
geom_violin(position = position_dodge(width = .75),
size = 0.4,alpha = 0.4,trim = T)+
theme_classic()+
theme(legend.position = 'none',
axis.title.y = element_text(size=12),
axis.text = element_text(size=12),
axis.title.x = element_blank())+
scale_fill_npg()+
stat_compare_means(comparisons = list(c('Lady-1','Lady-2'),c('Lady-1','Lady-3'),
c('Lady-1','Lady-4'),c('Lady-2','Lady-3'),
c('Lady-2','Lady-4'),c('Lady-3','Lady-4')),
label = 'p.signif')+
stat_compare_means(label.y = max(data$Beauty)+5.5)
ggsave('LadyFirst.pdf',width = 4,height = 4)從統計結果來看,這4位選手的Beauty值是有差異的(Kruskal−Wallis, p = 0.00061),但是Lady2與Lady3,Lady2與Lady4以及Lady3與Lady4兩兩之間是沒有統計學差異的。Of note!Lady1的Beauty值要顯著低於其他三個Lady,那如果有一個選醜比賽,then we have a winner!但既然是比賽嘛,總得有個勝負,所以我們比較以下她們Beauty value的中位值,發現,Lady-4的Beauty值最高,followed by Lady-3 and Lady-2. 所以我們的冠軍是Lady-4,亞軍是Lady-3,季軍是Lady-2,Lady-1也得到了一張參與卡片,上面寫的是「謝謝惠顧」。
寫在後面親愛的讀者是不是瞬間覺得編程其實很好玩啊,如果大家沒有時間自行慢慢摸索著學習,可以考慮我們生信技能樹官方舉辦的學習班(馬上10月12日就開課):
如果你課題涉及到轉錄組,歡迎添加一對一客服:詳見:你還在花三五萬做一個單細胞轉錄組嗎?
號外:生信技能樹知識整理實習生招募,長期招募,也可以簡單參與軟體測評筆記撰寫,開啟你的分享人生!