多組差異箱線圖(Multiple Group Comparison Boxplot)是一種統(tǒng)計圖形,用于展示并比較兩個或更多不同組別或分類變量在數(shù)值分布上的差異。這種圖形特別適合于展示中位數(shù)、四分位數(shù)和異常值,同時可以通過顏色、分組或不同的填充樣式區(qū)分不同的組別。箱線圖對于檢測和比較不同數(shù)據(jù)集的分散情況和中心位置非常有用。
箱線圖的組成部分
- 中位線(Median Line):箱子中間的線,表示數(shù)據(jù)的中位數(shù)。
- 箱體(Box):箱體的上邊界和下邊界分別是數(shù)據(jù)的上四分位數(shù)(Q3)和下四分位數(shù)(Q1)。箱體的高度(IQR,四分位距)是這兩個四分位數(shù)的差值,用來衡量數(shù)據(jù)的集中趨勢。
- 須(Whiskers):從箱體延伸出的線段,通常延伸到Q1 - 1.5IQR和Q3 + 1.5IQR的位置。它們表示數(shù)據(jù)中的正常變異范圍。
- 異常值(Outliers):通常用小點表示,這些是落在須之外的數(shù)據(jù)點。
多組差異箱線圖的用途
多組差異箱線圖可以用于比較如下方面:
- 不同條件或時間點下的數(shù)據(jù)分布:比如,可以用來比較不同時間點或不同實驗條件下的生物樣本數(shù)據(jù)。
- 組間差異的直觀展示:可以清楚地看到不同組在中位數(shù)、四分位數(shù)和異常值方面的差異。
- 發(fā)現(xiàn)潛在的異常值和數(shù)據(jù)分布特征:幫助研究人員識別數(shù)據(jù)中可能的異常點或分布的偏態(tài)。
統(tǒng)計檢驗
在多組差異箱線圖中,常常配合統(tǒng)計檢驗來評估組間差異的顯著性,如ANOVA、t-test、Wilcoxon秩和檢驗等。這些檢驗結果可以通過在箱線圖上添加注釋(例如星號或P值)來直觀表示。
示例
# 加載必要的庫
library(reshape2)
library(ggpubr)
# 設置文件路徑和工作目錄
inputFile <- "input.txt"
outFile <- "boxplot.pdf"
# 讀取數(shù)據(jù)
rt <- read.table(inputFile, sep="\t", header=TRUE, check.names=FALSE, row.names=1)
colnames(rt)[1] <- "Type"
# 數(shù)據(jù)轉換為ggplot2的長格式
data <- melt(rt, id.vars="Type")
colnames(data) <- c("Type", "Gene", "Expression")
# 繪制帶有統(tǒng)計檢驗的箱線圖
p <- ggboxplot(data, x="Gene", y="Expression", color="Type",
ylab="Gene expression", xlab="", legend.title="Type",
palette=c("blue", "red"), width=0.6) +
rotate_x_text(60) +
stat_compare_means(aes(group=Type), method="wilcox.test",
symnum.args=list(cutpoints=c(0, 0.001, 0.01, 0.05, 1), symbols=c("***", "**", "*", " ")))
# 輸出圖片
ggsave(outFile, plot=p, width=6, height=5)
reshape2:用于數(shù)據(jù)的重塑,尤其是將數(shù)據(jù)從寬格式轉換為長格式,適用于ggplot2進行作圖。ggpubr:是基于ggplot2的擴展,提供了更為簡便的方式來生成統(tǒng)計圖形,并且支持添加統(tǒng)計檢驗結果。inputFile和outFile分別設置了輸入和輸出文件的路徑。read.table()從指定的輸入文件中讀取數(shù)據(jù)。這里假設數(shù)據(jù)是用制表符分隔的,并且第一行包含列標題,第一列被設置為行名(通常代表樣本或實驗條件)。數(shù)據(jù)的第一列被重新命名為"Type",這通常表示數(shù)據(jù)中的分類變量,例如實驗的不同處理組。
melt()函數(shù)將數(shù)據(jù)從寬格式轉換為長格式,這是為了使數(shù)據(jù)格式適應ggplot2的作圖要求。id.vars="Type"指定了"Type"列作為保持不變的標識變量,其他變量則被視為測量變量。修改后的數(shù)據(jù)框
data的列名被設為"Type"、"Gene"和"Expression",以明確表示每列數(shù)據(jù)的含義,其中"Gene"可能代表不同的基因,"Expression"表示基因表達量。ggboxplot()函數(shù)用于生成箱線圖,其中x="Gene"和y="Expression"指定了x軸和y軸的數(shù)據(jù),color="Type"根據(jù)類型給不同的箱體上色。rotate_x_text(60)將x軸的文本標簽旋轉60度,使之更容易閱讀。stat_compare_means()添加統(tǒng)計檢驗結果到圖形上,這里使用的是Wilcoxon檢驗,符號表示的是不同顯著性水平。ggsave()函數(shù)用于保存生成的圖形到指定的文件,這里是PDF格式。通過指定width和height參數(shù),可以控制輸出文件的尺寸。
