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 hg19kp <- 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*10e6y <- 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 包相关推荐

  1. 数据可视化——R语言ggplot2包绘制相关矩阵为热图

    数据可视化--R语言ggplot2包绘制相关矩阵为热图 概述:R语言软件和数据可视化--ggplot2快速绘制相关矩阵为热图.本文翻译了一篇英文博客,博客原文链接:http://www.sthda.c ...

  2. 数据可视化——R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合)

    数据可视化--R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合) 概述:R语言使用ggplot2工具包绘制小提琴图.为了使数据表达更加丰富,同时将小提琴图与箱线图和误差条图相结合.另外 ...

  3. 数据可视化——R语言wordcloud2包绘制字云图

    数据可视化--R语言wordcloud2包绘制字云图 概述:使用R语言的wordcloud2工具包绘制字云图,并保存为图片格式或网页格式 字云图,也称为标签云图或语言云图.通过使每个字的大小与其出现频 ...

  4. Cicero:一个单细胞染色质可及性实验可视化R包

    本文可在http://xuzhougeng.top/免费阅读原文 Cicero是一个单细胞染色质可及性实验可视化R包.Cicero的主要功能就是使用单细胞染色质可及性数据通过分析共开放去预测基因组上顺 ...

  5. 一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D

    一个震撼的交互型3D可视化R包 - rayshader 虽然3D的plot见得比较多了,但是看见这样的R包,我的心还是砰了一下,这个简直不能再好看了! 关键是!!!敲黑板,这个R包超简单!!!对于刚学 ...

  6. 数据可视化——R语言绘制散点相关图并自动添加相关系数和拟合方程

    数据可视化--R语言绘制散点相关图并自动添加相关系数和拟合方程 加载所需的包并设置主题样式 示例数据 基本的散点相关图 添加相关系数和显著性水平(P值) 存在多个组别的散点相关图 自动添加回归曲线的拟 ...

  7. 数据可视化——R语言为ggplot图形添加P值和显著性水平

    数据可视化--R语言为ggplot图形添加P值和显著性水平 准备 安装和加载R包 示例数据 均值比较的方法 用于添加P值的R函数 compare_means() stat_compare_means( ...

  8. 【R语言】Splatter,一个用于简单模拟单细胞RNA测序数据的R包

    Splatter是一个用于模拟单细胞RNA测序数据的R包,本文概述并介绍Splatter的功能 一.参数功能 名称 功能 说明 可以通过splatEstimate函数估计 备注 nGenes -> ...

  9. 原创 | R的基础及进阶数据可视化功能包介绍

    R 作为入门级编程语言,被经常运用在数据整理.数据可视化.以及机器学习中. 本篇文章将主要介绍在R中如何可视化数据 (基础+进阶). R绘图的原理 使用R绘图,我们需要在脑海中明确几个必要元素.首先, ...

最新文章

  1. Blender从头到尾创建低多边形角色学习教程 Low Poly Characters – Blender Bitesize Course
  2. android timer弹出窗口,android – 如何在服务类中的Timer内显示AlertDialog?
  3. Nature子刊:Salmon不比对快速宏基因组基因定量
  4. 13.7.深入理解jstack日志
  5. hive 元数据 自定义_Hive中的用户自定义函数
  6. 通信调制体制设计之64QAM性能分析MATLAB仿真及代码
  7. eve可以在linux运行吗,ubuntu下为eve游戏搭载 wine环境
  8. android.net是哪个jar,【Android Clock Synchronization】Android时钟同步:基于NTP协议的第三方库Apache Commons Net......
  9. Caffe框架详细梳理
  10. 北京小哥在日本召唤出机器飞龙,拿下ICRA 2018最佳无人机论文
  11. 东芝宣布时域神经网络技术:要让低功率物联网设备也能深度学习
  12. 关于ubuntu下无线网卡经常连不上网络的问题
  13. cef调用本地html,在CefSharp中使用本地构建的网页(Working with locally built web page in CefSharp)...
  14. 小米6刷Android10以及Xposed
  15. kinect for windows - 初认识
  16. c语言排序常用问题,【更新中】【排序详解】解决排序问题(以C语言为例)
  17. 用vue实现动态组织结构图
  18. InfoPath,你不需要吗?
  19. android 视频转表情,视频怎么转gif?好用软件分享,自己也能制作出搞笑表情包...
  20. java tika pdf_TIKA提取PDF

热门文章

  1. 某程序员吐槽:媳妇要给孩子报少儿编程班,将来继续做程序员!以后要看到穿着纸尿裤的P7!...
  2. 关于多线程中抛异常的这个面试题我再说最后一次!
  3. 为啥不能用uuid做MySQL的主键?
  4. 芯片是怎么制造的?为什么那么难?
  5. 互联网高薪的原因、现状、未来,还值不值得进来?
  6. OKR与Scrum如何强强联手
  7. OKR案例:德勤如何引入OKR
  8. js 对象转json,json转对象
  9. python俄罗斯方块算法详解_用 Python 写一个俄罗斯方块游戏 (
  10. ICCV 2021 Oral | 无需法向的大场景点云表面重建