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 包的更多相关文章

  1. 查询、下载GWAS目录数据的R包(gwasrapidd)

    目前GWAS方向发了很多文献,但是并没有一个很完善的R包对这些文献的数据进行汇总. 接下来推荐的这个是最新发表的GWAS数据汇总R包​.看了一下功能齐全,但是数据不是收录的很齐全​. 下面具体讲一下. ...

  2. 多组学分析及可视化R包

    最近打算开始写一个多组学(包括宏基因组/16S/转录组/蛋白组/代谢组)关联分析的R包,避免重复造轮子,在开始之前随便在网上调研了下目前已有的R包工具,部分罗列如下: 1. mixOmics 应该是在 ...

  3. 数据可视化-matplotlib包

    pyplot官网教程https://matplotlib.org/users/pyplot_tutorial.html #导入matplotlib的pyplot模块 import matplotlib ...

  4. R语言Apriori关联规则、kmeans聚类、决策树挖掘研究京东商城网络购物用户行为数据可视化|附代码数据

    全文链接:http://tecdat.cn/?p=30360 最近我们被客户要求撰写关于网络购物用户行为的研究报告,包括一些图形和统计输出. 随着网络的迅速发展,依托于网络的购物作为一种新型的消费方式 ...

  5. R 包

    [下面列出每个步骤最有用的一些R包] .数据导入 以下R包主要用于数据导入和保存数据: feather:一种快速,轻量级的文件格式:在R和python上都可使用 readr:实现表格数据的快速导入 r ...

  6. 第一篇:R语言数据可视化概述(基于ggplot2)

    前言 ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发 ...

  7. 利用R语言进行交互数据可视化(转)

    上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化.现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享. rCharts包 说起R语言的交互包,第一个 ...

  8. 推荐《R数据可视化手册》高清英文版PDF+中文版PDF+源代码

    绝大多数的绘图案例都是以强大.灵活制图而著称的R包ggplot2实现的,充分展现了ggplot2生动.翔实的一面.从如何画点图.线图.柱状图,到如何添加注解.修改坐标轴和图例,再到分面的使用和颜色的选 ...

  9. 利用R语言制作出漂亮的交互数据可视化

    利用R语言制作出漂亮的交互数据可视化 利用R语言也可以制作出漂亮的交互数据可视化,下面和大家分享一些常用的交互可视化的R包. rCharts包 说起R语言的交互包,第一个想到的应该就是rCharts包 ...

  10. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)

    数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...

随机推荐

  1. 全网最详细中英文ChatGPT-GPT-4示例文档-官网推荐的48种最佳应用场景——从0到1快速入门AI智能问答应用场景(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...

  2. 设计模式(二十八)----综合应用-自定义Spring框架-Spring简单回顾

    1 spring使用回顾 自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟. 数据访问层.定义UserDao接口及其子实现类 public ...

  3. SaaS、PaaS、IaaS区别

    SaaS SaaS 越久,觉得它个庞大的领域 SaaS 收入的"长江流域". 传统软件像买房:什么都得自己买,价格昂贵,一般人用不起.SaaS模式就像是租赁预先装修好的共享公寓,拎 ...

  4. [VMware]虚拟网络编辑器

    虚拟网络编辑器 Vmware > 编辑 > 虚拟网络编辑器 VMnet0 VMnet0:用于虚拟桥接模式网络下的虚拟交换机 vmnet0: 实际上就是一个虚拟的网桥 这个网桥有很若干个端口 ...

  5. 机器学习(四):4层BP神经网络(只用numpy不调包)用于训练鸢尾花数据集|准确率96%

    题目: 设计四层BP网络,以g(x)=sigmoid(x)为激活函数, 神经网络结构为:[4,10,6, 3],其中,输入层为4个节点,第一个隐含层神经元个数为10个节点:第二个隐含层神经元个数为6个 ...

  6. day93:flask:Cookie&Session&请求钩子&捕获错误&上下文&Flask-Script

    目录 1.HTTP的会话控制 2.Cookie 3.Session 4.请求钩子 5.捕获错误 6.上下文:context 7.Flask-Script 1.HTTP的会话控制 1.什么是会话控制? ...

  7. Spring中Bean的实例化详细流程

    还是举个例子,我有一个朋友小汪他远赴南方某城市打工.然后安定下来后他的朋友很想来家里玩,但是呢我这个朋友家里搞的很乱,所以他不好意思请朋友来家里玩.这时我的另一个朋友说那请一个保姆把家里好好整理一下就 ...

  8. 【Mybatis】(一)

    Mybatis简介 提供持久层框架包括SQL Maps和Data Access Objects(DAO). SQL Maps提供数据库数据和java数据的映射关系,换句话说即是封装JDBC的过程. D ...

  9. 以SQLserver为例的Dapper详细讲解

    Dapper是一种轻量级的ORM(对象关系映射)工具,它提供了高效且易于使用的方式来执行数据库操作.Dapper是由Stack Overflow团队开发并维护的,它的主要目标是提供比EF更快.更直接的 ...

  10. OpenAI-GPT

    操作系统:CentOS 7.6 安装依赖软件 进入 root 账号: sudo -i 安装部署 ChatGPT 必备的软件,并且启动 nginx : yum install git nginx -y ...