利用ggbio对生物数据进行可视化

简介: 利用ggbio对生物数据进行可视化ggbio是图形语法(graphic grammar)在生物数据领域上的拓展,任何ggbio得到的结果都能与ggplot2进行互动,而不是简单封装。

利用ggbio对生物数据进行可视化

ggbio是图形语法(graphic grammar)在生物数据领域上的拓展,任何ggbio得到的结果都能与ggplot2进行互动,而不是简单封装。

tracks

ggbio对ggplot2的一个拓展是其提供了tracks用于以不同轨的方式比较数据,比如说比较两个不同的时间序列。

library(ggbio)
df1 <- data.frame(time = 1:100, score = sin((1:100)/20) * 10)
p1 <- qplot(data = df1, x = time, y = score, geom = "line")
df2 <- data.frame(time = 30:120, score = sin((30:120)/20) * 10, value = rnorm(120 -
30 + 1))
p2 <- ggplot(data = df2, aes(x = time, y = score)) + geom_line() + geom_point(size = 4,
aes(color = value))
lst <- list(time1 = p1, time2 = p2)
tracks(lst)
img_90a92aeb0cf6c66e45638bc3d3f3433c.png
tracks

tracks支持多种方式定制

  • height: 定义某个track的高度
  • bcColor: 定义某个轨道背景颜色
  • labeled: 对某个轨道的标签进行命名
  • fixed: 控制标度的固定还是不固定
  • mutable: 控制作图结果能否使用+更改tracks

此外tracks还拓展了ggplot2的主题,以theme_tracks_*方式命名.

最后这些修改方式都可以通过reset一键还原到之前backup的地方。

mold

ggbio支持Bioconductor的几个核心数据结构的可视化, 如IRange和GenomicRange, 而ggplot2则是主要处理data.frame.为了方便衔接,作者开发了mold将Biconductor的核心数据结构转换成data.frame. mold相对于as.data.frame这种简单粗暴的转换,保留了原来数据结构的更多信息,创建了更多变量统计值。目前支持eSet, GRanges, IRanges, GRangesList, Seqinfo, matrix, Views, ExpressionSet SummarizedExperiment, Rle, RleList。

PS: mold函数在biovizBase包中。

ggbio拓展的图形语法

判断一个人是否懂ggplot2,只要问他"什么是图形语法"即可

一张统计图形就是从数据到几何对象(geometric object, 点、线、大小等)的图形属性(aesthetic attribute, 颜色、形状、大小)的一个映射。此外,图形中还可能包括数据的统计变换(statistical transformation), 最后绘制在某个特性的坐标轴(coordinate system)中,而分面(facet)则可以用来生成数据不同子集的图形。

因此真正理解图形语法的人,看了下面这张图就会用ggbio了。

[图片上传失败...(image-154052-1516168383746)]

有些细节不懂,就可以翻翻http://www.bioconductor.org/packages/release/bioc/manuals/ggbio/man/ggbio.pdf

几个案例

基因结构图

这部分操作涉及到AnnotationHubGenomicFeatures两个R包,这些在我的用Bioconductor对基因组注释有过比较详细的介绍。如果理解了那两个R包的使用,那么起始用起来也就很简单,无非就是构建一个ggbio能用的GRanges对象而已,步骤如下:

  1. 使用select根据基因ID找到CDS ID
  2. 使用cds根据CDS ID筛选区域
  3. 对区域使用geom_arrowrect作图
# 加载拟南芥TxDb
library(AnnotationHub)
ah <- AnnotationHub()
TAIR_tx <- ah[['AH52247']]

# 1. 根据基因ID找到CDS ID
keys <- c('AT3G27920')
cds_region <- select(TAIR_tx, keys =keys, columns = 'CDSID', keytype = 'GENEID')
# 2. 根据CDS ID创建GenomicRanges
cds_gr <- cds(TAIR_tx, filter = list(cds_id = cds_region$CDSID))
# 3. 作图
library(ggplot2)
ggplot(cds_gr) + geom_arrowrect(fill='black') + theme_clear() + theme_alignment()
img_fa95a77b726f3ee07503b3a404564dd9.png
有点丑
目录
相关文章
|
14天前
|
机器学习/深度学习 算法框架/工具 数据库
使用Python实现深度学习模型:智能城市噪音监测与控制
使用Python实现深度学习模型:智能城市噪音监测与控制
46 1
|
5天前
|
数据可视化 搜索推荐
单细胞分析 | 基因组区域的可视化 (2)
单细胞分析 | 基因组区域的可视化 (2)
12 0
单细胞分析 | 基因组区域的可视化 (2)
|
13天前
|
存储 数据可视化 搜索推荐
单细胞分析 | 基因组区域的可视化 (1)
单细胞分析 | 基因组区域的可视化 (1)
26 0
单细胞分析 | 基因组区域的可视化 (1)
|
3月前
|
算法 前端开发 数据挖掘
【类脑智能】脑网络通信模型分类及量化指标(附思维导图)
本文概述了脑网络通信模型的分类、算法原理及量化指标,介绍了扩散过程、路由协议和参数模型三种通信模型,并详细讨论了它们的性能指标、优缺点以及在脑网络研究中的应用,同时提供了思维导图以帮助理解这些概念。
45 3
【类脑智能】脑网络通信模型分类及量化指标(附思维导图)
|
3月前
|
机器学习/深度学习 数据采集 传感器
使用Python实现深度学习模型:智能水质监测与管理
使用Python实现深度学习模型:智能水质监测与管理
92 1
|
6月前
|
数据可视化 定位技术
R语言贝叶斯INLA空间自相关、混合效应、季节空间模型、SPDE、时空分析野生动物数据可视化
R语言贝叶斯INLA空间自相关、混合效应、季节空间模型、SPDE、时空分析野生动物数据可视化
|
6月前
|
机器学习/深度学习 数据采集 算法
机器学习赋能乳腺癌预测:如何使用贝叶斯分级进行精确诊断?
机器学习赋能乳腺癌预测:如何使用贝叶斯分级进行精确诊断?
107 0
|
6月前
|
机器学习/深度学习 编解码 算法
基于遥感影像的分类技术(监督/非监督和面向对象的分类技术)
基于遥感影像的分类技术(监督/非监督和面向对象的分类技术)
119 0
|
数据可视化
比较基因组:点图介绍与可视化
比较基因组:点图介绍与可视化
169 0
|
机器学习/深度学习 编解码 算法
影像组学技术的基础和应用
影像组学技术的基础和应用
299 0