专栏名称: Freescience联盟
Freescience联盟是由高校、医院FS公众号和科研技能公众号等百家单位联合创建的科研交流分享平台;联盟的宗旨:“公正至上,自由分享,平等共赢”。欢迎您的关注,让我们共同学习进步!
目录
相关文章推荐
21世纪经济报道  ·  #雀巢再度收购徐福记股权#【雀巢再度出手,拟 ... ·  昨天  
第一财经  ·  金价跳水,有人买金饰“入手即亏” ·  昨天  
CommodityInsight  ·  CFTC大豆/豆油截止到2月25日一周持仓数据 ·  2 天前  
CommodityInsight  ·  CFTC大豆/豆油截止到2月25日一周持仓数据 ·  2 天前  
51好读  ›  专栏  ›  Freescience联盟

为什么要学习作图、R语言可视化?

Freescience联盟  · 公众号  ·  · 2017-10-04 09:50

正文

发送 生信 到本公众号后台, 学习各种作图技能


好的分析和图形化展示,可以提供大量的信息,同时兼顾简洁优雅。我们以Ravel以在PNAS(2010)发表的研究为例,该研究分析了396个生育期女性的生殖道细菌群落。这是其中的一张热图:



乍一眼看上去眼花缭乱,其实我们可以把这个图分成一个个的模块,并分别解释。


  1. 对样品进行聚类,菌群组成接近的样品会聚在一起。对得到的聚类进行命名。

  2. 标记每个样品的PH值和Nugent Score,值越高,代表“越不健康”。

  3. 对所有的物种进行聚类,丰度接近的物种会聚在一起。

  4. 标记PH,NugentScore和菌群相关系数的颜色。颜色越红,代表菌群对PH/NugentScore的“贡献越大”。

  5. 计算菌群的菌群多样性,用的是shannon index,菌群多样性越高,代表杂菌越多“越不健康”。

  6. 每类菌的丰度,注意用的是log值换算。


这是我看到的最好的热图之一(缺点是颜色搭配略老气)。如何把这个图做出来?


再复杂的分析,再好看的图,其实都可以拆解为一个个简单的模块,再组合起来。


我们现在拆解一下,为了做出这个热图,需要哪些数据?需要哪些计算?用哪个工具?


模块

说明

需要什么数据?

需要做什么计算?

R 语言的什么工具实现?

A

样品聚类

菌群组成

计算样品距离

hclust

B

PH/N score 用颜色标记

每个病人的 PH N score 数据

不需要计算

RColorBrewer

C

物种聚类

菌群组成

计算物种距离

hclust

D

PH/N 和菌群相关性

每个病人的 PH N score 数据,菌群组成

计算 PH/Nscore 和菌群的两两相关系数(有几个菌,就有几个系数)

cor.test

E

barplot 展示每个样品的物种多样性

菌群组成

计算 shannon 指数

diversity

F

菌群丰度展示

菌群组成

不需要计算

heatmap.2 / superheat


实际上,R语言的工具太多了,我只是罗列出了基本的几种。有一些工具是集成的,比heatmap.2 和 superheat 实际上整合了hclust,可以直接计算聚类。


还有一些所谓的“高大上”的图,比如Liu等发表的糖尿病人的肠道菌群和代谢组(Nature Medicine 2017)。 这张图怎么做出来的?



肥胖人群富集的菌群在右边,健康人群富集的菌群在左边,红色连线代表负相关,蓝色为正相关,点的颜色代表物种种类,点的大小代表菌群的平均丰度。


看起来复杂,实际需要的数据比刚才的热图简单多了,只有一张表而已,用R语言3行代码就可以做出来:


抬头

名称

解释

Source node

Bacteria1

源点的名称

Target node

Bacteria2

目标点的名称

Interaction

positve/negative

连线的属性

Source node atrribute

GenusA

源点的特征(比如来自哪个菌群)

Target node atrribute

GenusB

目标点的特征(比如来自哪个菌群)

Source node atrribute 1

mean(Bacteria1)

源点的特征(比如其平均丰度)

Target node atrribute 1

mean(Bacteria2)

目标点的特征(比如其平均丰度)







请到「今天看啥」查看全文