【工具】ReConPlot一个可视化和解释基因组重排的R包

news2025/3/15 18:00:31

在这里插入图片描述

文章目录

    • 介绍
    • 代码
    • 案例
      • 加载R包
      • 导入数据
    • 参考

介绍

人类肿瘤的全基因组测序研究表明,复杂形式的结构变异,统称为复杂基因组重排(cgr),在不同类型的癌症中普遍存在。cgr的检测、分类和机制解释需要对体细胞拷贝数畸变(SCNAs)和结构变异(SVs)的复杂模式进行可视化。然而,缺乏专门设计的工具来促进cgr的可视化和研究。

我们提出了ReConPlot(重排和拷贝数图),这是一个R包,提供了跨一条或多条染色体的scna和sv的联合可视化功能。ReConPlot是基于流行的ggplot2包,从而允许定制的情节和生成出版质量的数字以最小的努力。总的来说,ReConPlot促进了CGR模式的探索、解释和报告。

Abstract
Motivation
Whole-genome sequencing studies of human tumours have revealed that complex forms of structural variation, collectively known as complex genome rearrangements (CGRs), are pervasive across diverse cancer types. Detection, classification, and mechanistic interpretation of CGRs requires the visualization of complex patterns of somatic copy number aberrations (SCNAs) and structural variants (SVs). However, there is a lack of tools specifically designed to facilitate the visualization and study of CGRs.

Results
We present ReConPlot (REarrangement and COpy Number PLOT), an R package that provides functionalities for the joint visualization of SCNAs and SVs across one or multiple chromosomes. ReConPlot is based on the popular ggplot2 package, thus allowing customization of plots and the generation of publication-quality figures with minimal effort. Overall, ReConPlot facilitates the exploration, interpretation, and reporting of CGR patterns.

代码

https://github.com/cortes-ciriano-lab/ReConPlot/tree/main

在这里插入图片描述

案例

devtools::install_github("cortes-ciriano-lab/ReConPlot")

复杂的基因组畸变在不同类型的癌症中普遍存在,并且通常与肿瘤的发展和治疗耐药性有关。
下一代测序的出现促进了癌症基因组畸变的研究。
体细胞拷贝数谱和结构变异(SVs)的存在表明染色体结构和数量的变化。

通常需要可视化sv和拷贝数畸变来识别支持观察到的模式的基因组不稳定机制,并解释基因组改变的功能后果,例如肿瘤抑制因子的缺失或癌基因的扩增。
目前,有几种类型的可视化来研究基因组重排。
其中包括Circos图,基因组显示为圆形,体细胞改变显示为同心圆轨迹,以及二维基因组重排图,其中拷贝数谱和SVs映射到一条或多条染色体并排显示。
虽然没有单一的可视化可以包含在癌症中观察到的复杂基因组畸变的复杂性,但基因组重排谱对于解释癌症基因组学数据和在出版物中报告基因组学分析结果非常有用。
然而,用于可视化基因组重排图谱的文库缺乏,这阻碍了研究和科学结果的可重复性。

在这里,我们介绍R包ReConPlot,它提供了副本数配置文件和sv的可视化功能。
该软件包依赖于公共软件包,包括流行的ggplot2,因此允许进一步定制绘图。

为了可视化基因组重排谱,ReConPlot需要常用床格式的结构变异和拷贝数数据。
对于SV, ReConPlot使用断点符号来促进与符合以vcf格式报告SV的最佳实践的任何SV调用者的兼容性。
虽然ReConPlot的主要焦点是癌症背景下复杂体细胞拷贝数和SVs的可视化,但提供的功能可用于非癌症样本的基因组数据可视化,例如正常组织中检测到的体细胞畸变,单细胞全基因组数据或其他。
目前ReConPlot支持构建人类参考基因组GRCh37、GRCh38和T2T-CHM13,小鼠参考基因组mm10和mm39。

加载R包

library(tidyverse)
library(ReConPlot)

导入数据

data(test_data)

在这里插入图片描述

包的主要功能是ReConPlot
该函数为上面在chr_selection data.frame中定义的基因组区域生成重排图。
除了SV和拷贝数信息外,有必要指出要显示哪些基因组区域。
这是使用指示染色体的数据框架以及每个染色体的起始和结束位置来定义的。
请参见下面的示例。
如果要显示整个染色体,起始位置需要设置为0,结束位置可以设置为大于人类染色体长度的值,例如250Mbp(1号染色体的大小为~249Mbp)。

chrs=c("chr10")
chr_selection = data.frame(
  chr=chrs,
  start=rep(0 ,length(chrs)),
  end=rep (250000000, length(chrs))
)

一旦定义了感兴趣的区域,我们就可以生成图了。
例如,我们可以绘制10号染色体的基因组重排图谱:

plot = ReConPlot(sv_data,
cn_data,
chr_selection=chr_selection,
legend_SV_types=T,
pos_SVtype_description=115000000,
scale_separation_SV_type_labels=1/23,
title="Example")

print(plot)

在这里插入图片描述

在本例中,总拷贝数和次要拷贝数数据分别以黑色和红色显示,位于UCSC基因组浏览器中报告的Giemsa染色注释表示的顶部。
根据全基因组泛癌症分析计划(PCAWG)建立的符号,sv以弧线表示。
任意分配给每种SV类型的颜色显示在左侧的图例中(参见下面修改图形参数的选项)。
根据断点处的读取方向,将sv分为4类:类删除sv(±)、类重复sv(-+)和反转sv(++和——)。

根据我们的经验,每条染色体的宽度为6厘米,每条染色体的高度为5厘米,足以显示重排图,并将其保存在出版物中。

如果我们想可视化10号染色体的焦点区域,我们可以通过指定感兴趣的区域然后应用函数来实现:

chrs=c("chr10")
chr_selection = data.frame(
  chr=chrs,
  start=rep(40000000 ,length(chrs)),
  end=rep (55000000, length(chrs))
)

plot = ReConPlot( sv_data,
cn_data,
chr_selection=chr_selection,
scale_ticks=1000000,
color_minor_cn="steelblue2",
size_title = 7,
legend_SV_types=T,
pos_SVtype_description=1000000,
scale_separation_SV_type_labels=1/18,
max.cn = 4,
curvature_intrachr_SVs = -0.12,
title="Example of a focal region in chr10")

print(plot)

在这里插入图片描述

我们还可以使用参数scaling_cn_SVs来改变SV和拷贝数图的相对跨度,默认值为1/6。
吉姆萨染色轨道的尺寸可以使用参数upper_limit_karyotypekaryotype_rel_size进行修改。

chrs=c("chr10")
chr_selection = data.frame(
  chr=chrs,
  start=rep(40000000 ,length(chrs)),
  end=rep (55000000, length(chrs))
)

plot = ReConPlot( sv_data,
cn_data,
chr_selection=chr_selection,
scale_ticks=1000000,
color_minor_cn="steelblue2",
size_title = 7,
legend_SV_types=T,
scaling_cn_SVs = 1/18,
upper_limit_karyotype = -0.1, 
karyotype_rel_size = 0.3,
pos_SVtype_description=1000000,
scale_separation_SV_type_labels=1/23,
curvature_intrachr_SVs = -0.1,
max.cn = 4,
title="Example of a focal region in chr10")

print(plot)

在这里插入图片描述

染色体间易位或有一个断点落在chr_selection视点之外的sv可以用参数label_interchr_SV=TRUE标记目的染色体。
这种设置对简单的SVs有用,但不建议用于涉及小区域内多个易位的复杂基因组重排的基因组区域。

chrs=c("chr10")
chr_selection = data.frame(
  chr=chrs,
  start=rep(40000000 ,length(chrs)),
  end=rep (55000000, length(chrs))
)

plot = ReConPlot( sv_data,
cn_data,
chr_selection=chr_selection,
scale_ticks=1000000,
color_minor_cn="steelblue2",
size_title = 7,
legend_SV_types=T,
scaling_cn_SVs = 1/18,
pos_SVtype_description=1000000,
scale_separation_SV_type_labels=1/23,
curvature_intrachr_SVs = -0.1,
max.cn = 4,
title="Example of a focal region in chr10 with TRA labels",
label_interchr_SV=TRUE)

print(plot)

在这里插入图片描述

我们也可以画出几条染色体。
在这种情况下,还显示涉及所选染色体集的染色体间SVs。
根据我们的经验,多染色体图的宽度为19cm会得到很好的结果。
请注意,这是大多数发布组中图形的最大宽度。

上面的图是使用默认参数值生成的。
但是,可以修改一些图形参数。
例如,我们可以使用“color_minor_cn”参数改变次要拷贝号段的颜色。
我们可以使用参数“genes”输入一个基因列表,以显示相关基因的基因组位置,例如下面的TP53。
其他可用选项如下所示,并在包文档中进行了描述。
以上翻译结果来自有道神经网络翻译(YNMT)· 通用场景

chrs=c('chr1',"chr9","chr10","chr17")
chr_selection = data.frame(
  chr=chrs, #factor(chrs,levels=chrs),
  start=rep(0 ,length(chrs)),
  end=rep (250000000, length(chrs))
)
plot = ReConPlot( sv_data,
cn_data,
chr_selection=chr_selection,
genes=c("MDM2","MYC","TP53","CDK4","EGFR","PTEN"),
title="Multichromosomal example with gene names",
size_gene_label = 2,
pos_SVtype_description=1000000,
color_minor_cn="steelblue2",
size_title = 7,
size_chr_labels=5,
legend_SV_types=T,
scale_separation_SV_type_labels=1/23,
max.cn = 4,
scale_ticks=20000000)

print(plot)

在这里插入图片描述

We can focus on specific regions of interest across multiple chromosomes:

chrs=c("chr9","chr10","chr17")
chr_selection = data.frame(
  chr=chrs,
  start=c(30, 40, 0) * 1000000,
  end=c(40, 60, 15) * 1000000
)
plot = ReConPlot( sv_data,
cn_data,
chr_selection=chr_selection,
genes=c("MDM2","MYC","TP53","CDK4","EGFR"),
title="Multichromosomal example with gene names",
size_gene_label = 2,
pos_SVtype_description=1000000,
color_minor_cn="steelblue2",
scale_separation_SV_type_labels=1/23,
size_title = 7,
size_chr_labels=7,
legend_SV_types=T,
curvature_interchr_SVs = -0.08,
max.cn = 8,
scale_ticks=5000000)

print(plot)

在这里插入图片描述

上面的例子显示了具有相对较少数量的sv的染色体。
然而,可视化更复杂的模式是可能的,比如在这个样本中的12号染色体中检测到的那些:

chrs=c('chr1',"chr9","chr12")
chr_selection = data.frame(
  chr=chrs,
  start=rep(0 ,length(chrs)),
  end=rep (250000000, length(chrs))
)
plot = ReConPlot( sv_data,
cn_data,
chr_selection=chr_selection,
genes=c("MDM2","MDM4","MYC","CDK4","EGFR","CDKN2A","CCND2"),
title="Multichromosomal example with gene names showing highly rearranged chromosomes",
size_gene_label = 2,
pos_SVtype_description=1000000,
color_minor_cn="steelblue2",
size_title = 7,
size_chr_labels=7,
legend_SV_types=T,
scale_separation_SV_type_labels=1/23,
max.cn = 10,
scale_ticks=20000000)

print(plot)

在这里插入图片描述

最后,通过提供包含列“chr”、“pos”和“y”的数据框以及参数custom_annotation,可以在ReCon图下面添加注释图。
只显示chr_selection视图中的点。
“y”可以表示用户定义的尺度。
在下面的例子中,我们用snv对图进行注释,其中“y”表示等位基因频率。
请注意控制注释图的不同视觉方面的其他参数。

head(snv_data)
chrs=c("chr10")
chr_selection = data.frame(
  chr=chrs,
  start=rep(0 ,length(chrs)),
  end=rep (250000000, length(chrs))
)

plot = ReConPlot(sv_data,
cn_data,
chr_selection=chr_selection,
legend_SV_types=T,
pos_SVtype_description=115000000,
scale_separation_SV_type_labels=1/23,
title="Example with annotation",
curvature_intrachr_SVs=-.05,
custom_annotation=snv_data,
ann_dot_col="darkred",
ann_dot_size=.5,
ann_y_title="SNV-VAF", 
#Label for y-axis
ann_rel_size=.4
#Relative size to main plot
)

print(plot + theme(plot.margin=margin(t=1, unit = "cm")))

在这里插入图片描述

ReCon图是ggplot对象,可以在生成后进行修改。
它们可以很容易地保存为PDF文件。
根据我们的经验,以下维度对出版质量的数据和书面报告很有效。
如果将注释图与ReCon图结合使用,则可能需要增加高度。

ggsave(filename = "example_ReConPlot.pdf", plot = p, width = 19, height = 5, units = "cm")

参考

  • ReConPlot: an R package for the visualization and interpretation of genomic rearrangements

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2315583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OSPF-2 邻接建立关系

上一期我们说了OSPF的邻居建立关系以及OSPF邻居关系建立中建立失败的因素以及相关实验案例 这一期我们来说说OSPF的邻接关系建立时需要交互哪些报文以及失败因素及原因和相关实验案例 一、概述 在运行了OSPF的网络当中为了交互链路状态信息和路由信息,互相之间需要建立邻接关…

最完美的WPF无边框设计!

常规的无边框方法设计 常规的WPF无边框设计方法都是通过AllowsTransparency="True"和WindowStyle=“None”,并且使用WindowChrome样式来实现,但是这样会有问题就是,窗体最大化的时候将底部任务栏给挡住了,另外最大化的时候不能拖动窗体。参考这个大佬的设计@ 若…

工作记录 2017-01-12

序号 工作 相关人员 1 协助BPO进行Billing的工作。 处理Amazing Charts的数据查询。 修改BillingJobPoster,处理CCDA 的自动导入,预计还需一天才能完成。 修改录入Code的界面(code 移动到指定位置),预计明天更新。…

【Linux】从互斥原理到C++ RAII封装实践

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

爬虫案例十三js逆向模拟登录中大网校

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、网站分析二、代码 前言 提示:这里可以添加本文要记录的大概内容: js 逆向模拟登录中大网校 提示:以下是本篇文章正文内…

WPF窗口读取、显示、修改、另存excel文件——CAD c#二次开发

效果如下: using System.Data; using System.IO; using System.Windows; using Microsoft.Win32; using ExcelDataReader; using System.Text; using ClosedXML.Excel;namespace IfoxDemo {public partial class SimpleWindow : Window{public SimpleWindow(){Initi…

01 | Go 项目开发极速入门课介绍

提示: 所有体系课见专栏:Go 项目开发极速入门实战课。 你好,欢迎学习本课程。本课程是一个 Go 项目开发极速入门课程。旨在帮助刚学习完 Go 基础语法的 Go 开发者,快速掌握如何开发一个功能相对全面的 Go 项目。 根据课程设计目标…

Spring Cloud LoadBalancer 原理与实践

背景 当前我们的微服务架构基于Spring Cloud Alibaba体系,通过定制NacosRule实现了跨集群访问和灰度发布功能。但随着Spring Cloud与Nacos版本升级,官方已弃用Ribbon转向LoadBalancer,这要求我们完成以下技术升级: 负载均衡机制…

Vmware下的openEuler

1.下载openEuler操作系统镜像 https://repo.openeuler.org/openEuler-20.03-LTS/ISO/ 2.在VM新建虚拟机 3.虚拟机联网 我是出现了没有网络,ping不通的问题 参考:https://blog.csdn.net/FHY26828/article/details/140941234 修改文件: 在…

【瞎折腾/Dify】使用docker离线部署Dify

文章目录 说在前面安装Docker(外网)获取Dify源码(外网)拉取docker镜像(外网)导出镜像(内网)导入镜像(内网)运行问题 说在前面 外网操作系统:windows内网操作系统:ubuntu外网docker desktop版本:4.29.0外网docker版本:version 26.0…

Java EE Web环境安装

Java EE Web环境安装 一、JDK安装与测试(Windows环境) 1. 安装JDK 官网下载:Oracle JDK(选择Windows x64 Installer)双击安装包,按向导完成安装 ​ 2. 环境变量配置 右键【此电脑】→【属性】→【高级…

大语言模型基础之‘显存优化‘

上一篇可扩展的训练技术(二)中,我们介绍了零冗余优化器(Zero Redundancy Optimizer, Zero),该技术由DeepSpeed代码库提出,主要用于解决数据并行中的模型冗余技术,即在数据并行训练中,每个GPU上都…

【Nexus】Maven 私服搭建以及上传自己的Jar包

Nexus 安装 docker run -d -uroot --name nexus3 --restartalways -p 8081:8081 -v /data/nexus-data/blobs:/nexus-data/blobs -v /etc/localtime:/etc/localtime sonatype/nexus3这里也提供一下docker-composer的方法 .env 文件 VERSIONlatest CONTAINER_NAMECONTAINER_N…

冠珠瓷砖×郭培“惟质致美”品质主题片上映,讲述高定艺术背后的致美品质故事

168年前,一位英国服装设计师,开创了「高级定制」的先河。时至今日,从服装到各行各业「高级定制」始终代表着对完美的极致追求,成为了行业至高境界的象征。 被誉为“中国高定第一人”,高级定制服装设计师郭培&#xff0…

3DS模拟器使用(pc+安卓)+金手指+存档互传

1、引言 3ds模拟器已经能够在手机端近乎完美模拟了,那么多的3ds游戏,比玩手机游戏舒服多了。 本人是精灵宝可梦的老玩家,从第一世代就一直在玩,刚耍完NDS的第五世代,黑白系列。现在到宝可梦XY了,需要在3d…

从以太网 II 到 VLAN 和 Jumbo Frame:数据帧格式解读

以太网数据帧是计算机网络通信的基本单位,在不同的应用场景中,它的格式有所不同。根据协议标准和用途,以太网数据帧主要包括以太网 II 帧、IEEE 802.3 帧、IEEE 802.1Q VLAN 帧等七种主要类型。为了更好地理解以太网的通信机制,我…

X86 RouterOS 7.18 设置笔记六:端口映射(IPv4、IPv6)及回流问题

X86 j4125 4网口小主机折腾笔记五:PVE安装ROS RouterOS X86 RouterOS 7.18 设置笔记一:基础设置 X86 RouterOS 7.18 设置笔记二:网络基础设置(IPV4) X86 RouterOS 7.18 设置笔记三:防火墙设置(IPV4) X86 RouterOS 7.18 设置笔记四…

69.Harmonyos NEXT图片预览组件应用实践(二):电商、内容与办公场景

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! Harmonyos NEXT图片预览组件应用实践(二):电商、内容与办公场景 文章目录 Harmonyos NEXT图片预览组件应用实践…

31.Harmonyos Next仿uv-ui 组件NumberBox 步进器组件异步操作处理

Harmonyos Next仿uv-ui 组件NumberBox 步进器组件异步操作处理 文章目录 Harmonyos Next仿uv-ui 组件NumberBox 步进器组件异步操作处理1. 组件介绍2. 效果展示3. 异步操作处理3.1 异步初始化3.2 异步值更新 4. 完整示例代码5. 知识点讲解5.1 异步操作基础5.2 异步操作中的状态…

mac安装python没有环境变量怎么办?zsh: command not found: python

在mac电脑上,下载Python安装包进行安装之后,在终端中,输入python提示: zsh: command not found: python 一、原因分析 首先,这个问题不是因为python没有安装成功的原因,是因为python安装的时候,没有为我们添加环境变量导致的,所以我们只需要,在.zshrc配置文件中加上环…