karyoploteR: 基因组数据可视化 R 包
karyoploteR,是一个适用于所有基因组数据(any data on any genome)非圆环布局(non-circular layouts)的可视化 R/Bioconductor 包。开发该包的团队的目标是致力于打造一款能够像 Circos 那样灵活多变,但又可以满足用户更方便地使用直线(straight lines)而不是圆环(circles)展示基因组数据的工具。
karyoploteR 相关链接:
Bioconductor:
http://bioconductor.org/packages/karyoploteR/
Github:
https://github.com/bernatgel/karyoploter
Tutorial and Examples:
https://bernatgel.github.io/karyoploter_tutorial/
Paper:
https://doi.org/10.1093/bioinformatics/btx346
一
示例
下图是 karyoploteR 的一些示例图,更多的绘图示例请参考:https://bernatgel.github.io/karyoploter_tutorial/。

二
哲学
karyoploteR 包背后的原理是尽量模仿 R 基本图形的理念:创建一个基础图层(可能是空的),然后使用简单的图形基元迭代地添加数据。它会首先调用 plotKaryotype 函数创建一张图,然后循序地调用其他的绘图函数(kpLines, kpPoints, kpBars ...)将数据添加到基因组图中。
简单的图形基元(simple graphical primitives)是 karyoploteR 非常重要的部分。以 kpPoints 为例,它是一个与 points 类似的 karyoploteR 函数,它可以与你的数据、需要特殊考虑的因素,甚至任何数据无关,它只绘制用户指定的点。这有利于使 karyoploteR 在原始数据方面非常灵活。同样的,类似于(col, border, pch, lwd, lty ...)这些标准绘图参数也都是可用的。
三
核心
在 karyoploteR 的核心中,有一个坐标变换函数(coordinates change fucntion)会将基因组坐标映射到绘图坐标。karyoploteR 的所有绘图函数都是围绕在该函数的周围实现的,并最终用变换后的坐标调用基本的 R 图形函数(lines, points, rect ...)。这些功能都是用户可以使用的,当然用户也可以应用其他的绘图函数,但是,大多数用户将永远不需要看到或关心这一点。
四
数据
karyoploteR 只是一个绘图工具,它无法下载或检索任何数据。其带来的缺点是用户需要将数据存入 R 中,而好处是它不受任何数据提供者的束缚,因此可用于绘制来自任何地方的基因组数据。唯一例外的是 ideograms cytobands,默认情况下是使用来自 UCSC 预先下载好的数据绘制的。
karyoploteR 适用于任何需要全基因组数据视图的情况。它可用于绘制从外显子组,CGH 或者 SNP 阵列数据获得的癌症基因组中的体细胞拷贝数变化(SCNA);可以绘制从 WGS 实验中得到的整个 BAM 文件覆盖率(global BAM coverage);可以创建来源于 GWAS 研究的曼哈顿图(manhattan);可以创建雨量图(rainfall plots)以检测 kataegis。由于 karyoploteR 不受任何数据类型或来源的约束,因此它可以在全基因组范围内用来绘制几乎任何东西。
五
使用
1. 基本使用
我们需要使用 plotKaryotype 这个主函数,它会绘制一张基因组图并返回一个可以被其他函数调用的 karyoplot 对象。
library(karyoploteR)
#karyoplot 默认绘制的是 human genome hg19
kp <- plotKaryotype()
#果蝇(Drosophila)
#kp <- plotKaryotype(genome = "dm6")
#选择特定的染色体
#kp <- plotKaryotype(genome = "hg19", chromosomes=c("chr10", "chr12", "chr2"))
【左右滑动查看完整信息】

选择特定的染色体,重新排序绘图:
kp <- plotKaryotype(genome = "hg19", chromosomes=rev(paste0("chr", c(1:22, "X", "Y"))))
【左右滑动查看完整信息】

使用类似于 kpPoints, kpLines, kpRect, kpSegments, kpText, kpAbline, kpPolygon ... 参数,我们可以将数据添加到图形中:
library(karyoploteR)
x <- 1:23*10e6
y <- rnorm(23, 0.5, 0.1)
kp <- plotKaryotype(chromosomes="chr1")
kpPoints(kp, chr = "chr1", x=x, y=y)
kpText(kp, chr="chr1", x=x, y=y, labels=c(1:23), pos=3)
kpLines(kp, chr="chr1", x=x, y=y, col="#FFAADD")
kpArrows(kp, chr="chr1", x0=x, x1=x, y0=0, y1=y, col="#DDDDDD")
【左右滑动查看完整信息】

karyoploteR 在执行画图前,还会涉及一些计算:
kpPlotDensity,执行计算基因组上特征的密度计算并画图;
kpPlotBAMDensity,绘制 BAM 文件中的 reads 密度;
kpPlotMarkers,将文本标签(text labels)在基因组(基因或任何其他特征)上进行定位,避免标签重叠;
kpPlotLinks,绘制基因组区域之间的链接,以表示易位(translocations)或涉及两个基因组区域的任何其他数据类型(any other data type involving two genomic regions);
kpPlotRainfall,创建表示连续基因组特征(通常是体细胞突变)之间距离的雨量图(rainfall plots),以显示其区域聚类。
2. 基因表达结果
以来源于 Drosophila 的 RNA-seq 数据为例,经过 DESeq2 处理得到基因表达数据 karyoploteR 绘图结果如下。具体分析与绘图参考:https://bernatgel.github.io/karyoploter_tutorial//Examples/GeneExpression/GeneExpression.html。

关于 karyoploteR 更详细说明与使用教程,请参考:https://bernatgel.github.io/karyoploter_tutorial/。
·end·
—如果喜欢,快分享给你的朋友们吧—
我们一起愉快的玩
本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
karyoploteR: 基因组数据可视化 R 包的更多相关文章
- 查询、下载GWAS目录数据的R包(gwasrapidd)
目前GWAS方向发了很多文献,但是并没有一个很完善的R包对这些文献的数据进行汇总. 接下来推荐的这个是最新发表的GWAS数据汇总R包.看了一下功能齐全,但是数据不是收录的很齐全. 下面具体讲一下. ...
- 多组学分析及可视化R包
最近打算开始写一个多组学(包括宏基因组/16S/转录组/蛋白组/代谢组)关联分析的R包,避免重复造轮子,在开始之前随便在网上调研了下目前已有的R包工具,部分罗列如下: 1. mixOmics 应该是在 ...
- 数据可视化-matplotlib包
pyplot官网教程https://matplotlib.org/users/pyplot_tutorial.html #导入matplotlib的pyplot模块 import matplotlib ...
- R语言Apriori关联规则、kmeans聚类、决策树挖掘研究京东商城网络购物用户行为数据可视化|附代码数据
全文链接:http://tecdat.cn/?p=30360 最近我们被客户要求撰写关于网络购物用户行为的研究报告,包括一些图形和统计输出. 随着网络的迅速发展,依托于网络的购物作为一种新型的消费方式 ...
- R 包
[下面列出每个步骤最有用的一些R包] .数据导入 以下R包主要用于数据导入和保存数据: feather:一种快速,轻量级的文件格式:在R和python上都可使用 readr:实现表格数据的快速导入 r ...
- 第一篇:R语言数据可视化概述(基于ggplot2)
前言 ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发 ...
- 利用R语言进行交互数据可视化(转)
上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化.现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享. rCharts包 说起R语言的交互包,第一个 ...
- 推荐《R数据可视化手册》高清英文版PDF+中文版PDF+源代码
绝大多数的绘图案例都是以强大.灵活制图而著称的R包ggplot2实现的,充分展现了ggplot2生动.翔实的一面.从如何画点图.线图.柱状图,到如何添加注解.修改坐标轴和图例,再到分面的使用和颜色的选 ...
- 利用R语言制作出漂亮的交互数据可视化
利用R语言制作出漂亮的交互数据可视化 利用R语言也可以制作出漂亮的交互数据可视化,下面和大家分享一些常用的交互可视化的R包. rCharts包 说起R语言的交互包,第一个想到的应该就是rCharts包 ...
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...
随机推荐
- Mysql 事务隔离级别和锁的关系
我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式.同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力.所以对于 ...
- 面试突击:MVCC 和间隙锁有什么区别?
MVCC 和间隙锁是两种完全不同的机制,但它们的目的都是相同的,都是用来保证数据库并发访问的,我们先来看二者的定义. MVCC 定义 MVCC 是多版本并发控制(Multi-Version Concu ...
- 机器学习系列入门系列[七]:基于英雄联盟数据集的LightGBM的分类预测
1. 机器学习系列入门系列[七]:基于英雄联盟数据集的LightGBM的分类预测 1.1 LightGBM原理简介 LightGBM是2017年由微软推出的可扩展机器学习系统,是微软旗下DMKT的一个 ...
- IOC创建对象方式
IOC创建对象方式 User 类 public class User { private String name; public User(String name) { ...
- 细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现
1. 前文回顾 在之前的几篇内存管理系列文章中,笔者带大家从宏观角度完整地梳理了一遍 Linux 内存分配的整个链路,本文的主题依然是内存分配,这一次我们会从微观的角度来探秘一下 Linux 内核中用 ...
- python入门教程之十四面向对象
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的 ...
- [Linux]CentOS7 安装指定版本软件包
以安装openssl-libs为例. 查看当前服务器中YUM源可安装的软件包版本 [root@iz2vc84t88x94kno0u49zwz ~]# yum list | grep openssl-l ...
- ChatGPT,我彻彻底底沦陷了!
当谈到人工智能技术的时候,我们会经常听到GPT这个术语.它代表"Generative Pre-trained Transformer",是一种机器学习模型,采用了神经网络来模拟人类 ...
- Vue3中无法为el-tree-select设置反选问题分析
好久没有写博客了,刚好上周遇到一个难缠问题,这里记录一下. 环境:Vue3.2.Element Plus 问题:子组件 setting.vue => 弹窗组件 Dialog => 树选择组 ...
- Uber SRE 实践:运维大型分布式系统的一些心得
本文是 Uber 的工程师 Gergely Orosz 的文章,原文地址在:https://blog.pragmaticengineer.com/operating-a-high-scale-dist ...