一种ceRNA关系网络的新颖画法,R语言绘制冲击图(桑基图)教程

在ceRNA相关的研究中,例如circRNA-miRNA-mRNA,或者lncRNA-miRNA-mRNA的靶向关系图谱,一般通过网络图呈现。首先可以肯定的是,网络图是一种清晰展示ceRNA网络结构的有效方法。

文献中的ceRNA网络图示例

不过同一种类型的图见多了,多少会产生一些审美疲劳。那么,有没有其它的可替代方案呢?本篇则给大家带来一种别致的画风,使用冲击图(或桑基图)代替网络图描述ceRNA网络

例如文献“Construction and comprehensive analysis of a ceRNA network to reveal potential prognostic biomarkers for hepatocellular carcinoma”中描述lncRNA-miRNA-mRNA关系的ceRNA冲击图。

文献中的ceRNA冲击图

冲击图(alluvial)、桑基图(sankey),名称傻傻分不清倒也没关系,很多情况下可以当作一类来看待。如何,上图中3者间的结构是不是也很清晰?如果您也心动了,下面就让我们重现该文献的样式,绘制冲击图展示ceRNA关系。

在原文献附录中,作者提供了上图lncRNA-miRNA-mRNA靶向关系的原始数据,可以直接在原文中获取。为了方便大家操作,我们已经下载了数据做了本地整理,并和R代码等一起打包,可点击这里获取

示例文件

示例文件一共两个,“lncRNA_miRNA.txt”记录了lncRNA和miRNA的靶向关系,“miRNA_mRNA.txt”记录了miRNA和mRNA的靶向关系。

文献中的数据,lncRNA-miRNA和miRNA-mRNA靶向关系表

对应靶向关系

首先将示例数据读入到R中,由于lncRNA-miRNA-mRNA的关系是分两张表记录的,需要将它们整合到一起,做个关系对应。

#读取数据,两个靶向关系表
lncRNA_miRNA <- read.delim('lncRNA_miRNA.txt', sep = '\t', stringsAsFactors = FALSE)
miRNA_mRNA <- read.delim('miRNA_mRNA.txt', sep = '\t', stringsAsFactors = FALSE)

#整合靶向关系
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)  #查看整理后的数据结构
整理后的lncRNA-miRNA-mRNA靶向关系表

整理后的结构中:

variable指明为lncRNA、miRNA还是mRNA;

value为具体的分子名称;

flow为关系流,如果某lncRNA、miRNA和mRNA位于同一条靶向路径中,则flow中的数值是一样的。

R包ggalluvial的冲击图(桑基图)绘制

文件结构整理完毕后,绘制冲击图。

R语言中,绘制冲击图的R包其实有很多可以选择。考虑到ggalluvial包是示例文献中使用的作图R包,并且它延伸自ggplot2,语法结构和ggplot2是一致的比较简单易学,因此我们也以ggalluvial包的方法绘制冲击图。

#预指定颜色,lncRNA、miRNA 和 mRNA 总计 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 标签
scale_x_discrete(limits = c('lncRNA', 'miRNA', 'mRNA')) +  #定义 lncRNA、miRNA 和 mRNA 列的展示顺序
labs(x = '', y = '') +  #去除 x 轴和 y 轴标题
theme(legend.position = 'none', panel.background = element_blank(),
    line = element_blank(), axis.text.y = element_blank())  #去除背景和图例

p
R语言仿制的原文章中的冲击图

这样,文献中描述lncRNA-miRNA-mRNA关系的ceRNA冲击图就重现出来了,样式是不是也很漂亮呢?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 寻找ceRNA机制 构建关系网络 ceRNA机制是lnc/circRNA研究中最常见的机制之一,研究思路比较清晰,...
    纪伟讲测序阅读 1,139评论 0 2
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,700评论 0 5
  • 昨天,在回家的路上,坐在车里悠哉悠哉地看着三毛的《撒哈拉沙漠的故事》,我被里面的内容深深吸引住了,尽管上学时...
    夜阑晓语阅读 3,777评论 2 9
  • 一月四号的大沙有个想法。从昨晚到现在就一直围绕在脑子里。或许深受那些小说的影响,或许真的就是我自己脑子或者精神么有...
    一個人的大沙阅读 4,007评论 3 4
  • 记梦 前记 他回国了,而事实上他其实从未来过。我不知道我们是如何交流的,但在梦里没有语言障碍。我时而是第三视角看着...
    江挽心阅读 675评论 0 0