在ceRNA相關(guān)的研究中甫贯,例如circRNA-miRNA-mRNA,或者lncRNA-miRNA-mRNA的靶向關(guān)系圖譜看蚜,一般通過(guò)網(wǎng)絡(luò)圖呈現(xiàn)叫搁。首先可以肯定的是,網(wǎng)絡(luò)圖是一種清晰展示ceRNA網(wǎng)絡(luò)結(jié)構(gòu)的有效方法供炎。
不過(guò)同一種類型的圖見(jiàn)多了渴逻,多少會(huì)產(chǎn)生一些審美疲勞。那么音诫,有沒(méi)有其它的可替代方案呢惨奕?本篇?jiǎng)t給大家?guī)?lái)一種別致的畫(huà)風(fēng),使用沖擊圖(或膳ⅲ基圖)代替網(wǎng)絡(luò)圖描述ceRNA網(wǎng)絡(luò)墓贿。
例如文獻(xiàn)“Construction and comprehensive analysis of a ceRNA network to reveal potential prognostic biomarkers for hepatocellular carcinoma”中描述lncRNA-miRNA-mRNA關(guān)系的ceRNA沖擊圖。
沖擊圖(alluvial)蜓氨、闪基圖(sankey),名稱傻傻分不清倒也沒(méi)關(guān)系穴吹,很多情況下可以當(dāng)作一類來(lái)看待幽勒。如何,上圖中3者間的結(jié)構(gòu)是不是也很清晰港令?如果您也心動(dòng)了啥容,下面就讓我們重現(xiàn)該文獻(xiàn)的樣式,繪制沖擊圖展示ceRNA關(guān)系顷霹。
在原文獻(xiàn)附錄中咪惠,作者提供了上圖lncRNA-miRNA-mRNA靶向關(guān)系的原始數(shù)據(jù),可以直接在原文中獲取淋淀。為了方便大家操作遥昧,我們已經(jīng)下載了數(shù)據(jù)做了本地整理,并和R代碼等一起打包,可點(diǎn)擊這里獲取炭臭。
示例文件
示例文件一共兩個(gè)永脓,“l(fā)ncRNA_miRNA.txt”記錄了lncRNA和miRNA的靶向關(guān)系,“miRNA_mRNA.txt”記錄了miRNA和mRNA的靶向關(guān)系鞋仍。
對(duì)應(yīng)靶向關(guān)系
首先將示例數(shù)據(jù)讀入到R中,由于lncRNA-miRNA-mRNA的關(guān)系是分兩張表記錄的威创,需要將它們整合到一起落午,做個(gè)關(guān)系對(duì)應(yīng)。
#讀取數(shù)據(jù)肚豺,兩個(gè)靶向關(guān)系表
lncRNA_miRNA <- read.delim('lncRNA_miRNA.txt', sep = '\t', stringsAsFactors = FALSE)
miRNA_mRNA <- read.delim('miRNA_mRNA.txt', sep = '\t', stringsAsFactors = FALSE)
#整合靶向關(guān)系
ceRNA <- merge(lncRNA_miRNA, miRNA_mRNA, by = 'miRNA')
ceRNA$link <- 1
ceRNA <- reshape::melt(ceRNA, id = 'link')
variable <- summary(ceRNA$variable)
ceRNA$flow <- rep(1:variable[1], length(variable))
head(ceRNA) #查看整理后的數(shù)據(jù)結(jié)構(gòu)
整理后的結(jié)構(gòu)中:
variable指明為lncRNA板甘、miRNA還是mRNA;
value為具體的分子名稱详炬;
flow為關(guān)系流,如果某lncRNA寞奸、miRNA和mRNA位于同一條靶向路徑中呛谜,則flow中的數(shù)值是一樣的。
R包ggalluvial的沖擊圖(汕固眩基圖)繪制
文件結(jié)構(gòu)整理完畢后隐岛,繪制沖擊圖。
R語(yǔ)言中瓷翻,繪制沖擊圖的R包其實(shí)有很多可以選擇聚凹。考慮到ggalluvial包是示例文獻(xiàn)中使用的作圖R包齐帚,并且它延伸自ggplot2妒牙,語(yǔ)法結(jié)構(gòu)和ggplot2是一致的比較簡(jiǎn)單易學(xué),因此我們也以ggalluvial包的方法繪制沖擊圖对妄。
#預(yù)指定顏色湘今,lncRNA、miRNA 和 mRNA 總計(jì) 36 種剪菱,需指定 36 種顏色
mycol <- c('#8DD3C7', '#FFFFB3', '#BEBADA', '#FB8072', '#80B1D3', '#FDB462',
'#B3DE69', '#FCCDE5', '#BC80BD', '#CCEBC5', '#FFED6F', '#E41A1C', '#377EB8',
'#4DAF4A', '#984EA3', '#FF7F00', '#FFFF33', '#A65628', '#F781BF', '#66C2A5',
'#6181BD', '#F34800', '#64A10E', '#FF00FF', '#c7475b', '#049a0b', '#BEAED4',
'#FDC086', '#FFFF99', '#386CB0', '#F0027F', '#4253ff', '#ff4308', '#D8D155',
'#64495D', '#7CC767')
#ggalluvial 的沖擊圖
library(ggalluvial)
p <- ggplot(ceRNA, aes(x = variable, y = link,
stratum = value, alluvium = flow, fill = value)) +
geom_stratum() + #沖擊圖中的堆疊柱形圖
geom_flow(aes.flow = 'forward') + #沖擊圖連線繪制
scale_fill_manual(values = mycol) + #顏色賦值
geom_text(stat = 'stratum', infer.label = TRUE, size = 2.5) + #添加 lncRNA摩瞎、miRNA 和 mRNA 標(biāo)簽
scale_x_discrete(limits = c('lncRNA', 'miRNA', 'mRNA')) + #定義 lncRNA、miRNA 和 mRNA 列的展示順序
labs(x = '', y = '') + #去除 x 軸和 y 軸標(biāo)題
theme(legend.position = 'none', panel.background = element_blank(),
line = element_blank(), axis.text.y = element_blank()) #去除背景和圖例
p
這樣孝常,文獻(xiàn)中描述lncRNA-miRNA-mRNA關(guān)系的ceRNA沖擊圖就重現(xiàn)出來(lái)了旗们,樣式是不是也很漂亮呢?