手把手教你画漂亮的和弦图(下)

小伙伴们,大家好,今天我们开启R语言绘制弦图的第二章,还记得我们上节课的弦图长什么样吗?原贴?手把手教你画漂亮的和弦图(一)

当然不能忘记弦图绘制神包—circlize

安装circlize包,安装包直接用install函数即可,安装好之后,需要加载,利用library函数即可,这里就不在重复叙述。

1

数据生成

这里我们同样使用上期的数据集,如下:

2

画出关系边界框

什么是边界框?我们看下面一张图就明白了。

便出现下图:

从上图我们可以看出,就是给相互关系在外层描边,将形成相互关系的强弱,描出来。画出这种描边效果的,需要增加一个link的参数。

link.lwd 控制描边的宽度

link.lty 控制描边的样式

link.border 控制描边的颜色

3

选择性绘制边界框

当我们想要只给某一个对象进行展示相互作用的区域绘制边界框时,我们该怎么做呢?

首先,我们自定义一个颜色矩阵,很明显,这里我们定义了一个一行的颜色为黑色的矩阵。接着我们对矩阵进行行名和列名重命名,使得他们名字保持一致。最后,把颜色矩阵赋值到link.border参数上面去。结果如下:

4

关系强度排序

针对同一个对象,其他对象与之关联的强度有高有低,如何对作用强度,进行排序呢?当然,默认情况下,是针对行名的对象进行排序,在此处便是E1-E6,即对每一个E中的对象,按照S1-S3相结合的强弱排序。这个时候是加入了link.sort和 link.decreasing 参数。

当为link.sort = TRUE, link.decreasing = TRUE,可以看到为降序排列,图中E4即是从左到右降序(强度)。

当为link.sort = TRUE, link.decreasing = F,可以看到为升序排列,图中E4即是从左到右升序(强度)。

图如下:,另外title函数为加标题。

5

有向关系矩阵,添加箭头

当我们的关系网络为有向矩阵是,我们需要添加箭头。

先上代码:

图长什么样呢?

就会生成如下的结果

我们首先定义了一个arr.col的数据框:

这个数据框每一行,代表一种指向关系,比如第一行代表S1和E5之间用黑色箭头链接,但是具体的谁指向谁,则是由direction参数来确定,当direction为1时,代表,由行指向列,即从S到E,当direction为-1,代表由列指向行,即从E到S。

当direction为-1时,如下:

好了,今天关于弦图的绘制先讲到这,祝大家在R绘图的道路上越走越远~

生物信息学

GEO数据挖掘的结果与TCGA的结果相反怎么办?

2019-5-11 10:16:02

生物信息学

手把手教你画漂亮的和弦图(上)

2019-5-11 14:02:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索