利用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
有点丑
目录
相关文章
XP-CLR分析笔记丨检测不同种群之间由于选择引起的差异信息,群体遗传学经典方法
XP-CLR分析笔记丨检测不同种群之间由于选择引起的差异信息,群体遗传学经典方法
|
Web App开发 Linux 测试技术
Linux下批量修改文件名(rename)
原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的在本目录下只需要# rename 'cdb1' 'cdb' * 以前都是写个for循环来做.
6526 0
|
数据可视化
R语言自定义图形:ggplot2中的主题与标签设置
【8月更文挑战第30天】`ggplot2`作为R语言中功能强大的绘图包,其自定义能力让数据可视化变得更加灵活和多样。通过合理使用`theme()`函数和`labs()`函数,以及`geom_text()`和`geom_label()`等几何对象,我们可以轻松创建出既美观又富有表达力的图形。希望本文的介绍能够帮助你更好地掌握`ggplot2`中的主题与标签设置技巧。
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
Ubuntu Linux 开发工具
linux离线安装docker与compose
linux离线安装docker与compose
523 0
|
关系型数据库 MySQL Linux
Docker中运行一个mysql
尽管不希望在docker中运行mysql,但是自己玩确实方便~~~
4484 2
Docker中运行一个mysql
|
Ubuntu Java Linux
利用snpEff对基因型vcf文件进行变异注释,软件安装、数据库配置、结果解读详细方法
利用snpEff对基因型vcf文件进行变异注释,软件安装、数据库配置、结果解读详细方法
|
应用服务中间件 nginx
Nginx启动时提示nginx: [emerg] still could not bind()
Nginx启动时提示nginx: [emerg] still could not bind()
1082 0
|
数据挖掘 Go
文献丨转录组分析流程和常用软件
文献丨转录组分析流程和常用软件
|
存储 数据可视化 数据挖掘
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍