还不会染色体可视化?快用chromoMap吧!

2022-03-28 14:46:57 浏览数 (1)

导语

GUIDE ╲

chromoMap可以进行染色体或染色体区域的可视化。

背景介绍

chromoMap可以进行染色体或染色体区域的可视化,允许用户将染色体特征(如基因、SNP等)映射到染色体上并可视化与特征相关的数据(如多组学数据)。每个染色体都由基因组窗口(代表基于染色体长度确定的特定范围)组成,并且可以交互式查看,在悬停时,可以展示有关该基因座范围内注释的详细信息。

R包安装

代码语言:javascript复制
install.packages("chromoMap")

可视化分析

01

输入的数据格式

chromoMap 根据作为输入提供的坐标信息来构建染色体。

输入数据是制表符分隔的文本文件(类似于 BED 文件格式)。输入文件不需要有列名。

染色体文件包含染色体的坐标。该文件的列(按顺序)如下(除非指定为可选列,否则所有列都是必需的):

chromosome name:代表染色体名称的字符,如“chr1”或“1”或“ch1”

chromosome start:指定染色体(或染色体区域)开始位置的数值。如果绘制整个染色体,则该值通常为1。

chromsome end:指定末端位置的数值。如果绘制整个染色体,这个值就是染色体的长度。

centromere start(可选):如果提供其起始坐标,将自动添加着丝粒。

注释文件

注释可以是任何具有坐标的东西,如基因、SNPs 等,以及相关数据,如基因表达、甲基化等。注释数据也以相同的格式提供。

Element Name:指定(唯一)元素的字符。这可以是标识符、符号等。

Chromosome Name:指定染色体名称的字符。染色体名称应在染色体和数据文件中保持一致。

Element Start:指定元素开始位置的数字。

Element End:指定元素结束位置的数字。

Data(可选):指定数据值的数字或字符。

Secondary Data(可选):指定数据值的向量。用于多因子散点图。

Hyperlinks(可选):指定元素 URL 的字符。

02

绘图

数据展示

代码语言:javascript复制
head(read.table(chr_file_1,sep = "t"))#染色体文件
#>     V1 V2   V3
#> 1 chr1  1 1000
#> 2 chr2  1  700
head(read.table(chr_file_2,sep = "t"))#带着丝粒的染色体文件
#>     V1 V2   V3  V4
#> 1 chr1  1 1000 500
#> 2 chr2  1  700 450
head(read.table(anno_file_1,sep = "t"))#注释文件1
#>    V1   V2  V3  V4  V5
#> 1 An1 chr1 558 560  10
#> 2 An2 chr2 396 398  34
#> 3 An3 chr2 281 283  89
#> 4 An4 chr1 125 127  56
#> 5 An5 chr2 406 408 100
#> 6 An6 chr2 340 342  91
head(read.table(anno_file_2,sep = "t"))#注释文件2
#>    V1   V2  V3  V4   V5
#> 1 An1 chr1 558 560  -64
#> 2 An2 chr2 396 398   29
#> 3 An3 chr2 281 283 -137
#> 4 An4 chr1 125 127 -129
#> 5 An5 chr2 406 408  -18
#> 6 An6 chr2 340 342  149

可以使用以下命令创建简单的注释图:

代码语言:javascript复制
library(chromoMap)
chromoMap(chr_file_1,anno_file_1)

带着丝粒的图是这样的

代码语言:javascript复制
chromoMap(chr_file_2,anno_file_1)

多倍体

从生物学上讲,染色体是成组出现的,通过ploidy参数设置组数。

代码语言:javascript复制
chromoMap(c(chr_file_1,chr_file_1),c(anno_file_1,anno_file_2),
          ploidy = 2)

注释颜色设置

如果注释有几类,为每个类分配不同的颜色。注释文件的数据列应该具有分配给每个元素的组作为字符值。

代码语言:javascript复制
chromoMap("chromosome_file.txt","annotation_file.txt",
          data_based_color_map = T,
          data_type = "categorical",
          data_colors = list(c("orange","yellow")))

chromoMap-HeatMaps

染色体热图,将特征相关的数字数据可视化为热色。注释文件中,在数据列中添加数字数据(用于连续数据)。

代码语言:javascript复制
chromoMap(chr_file_1,anno_file_2,
          data_based_color_map = T,
          data_type = "numeric")

chromoMap条形图

chromoMap-Bar plot 可用于将带注释的数据可视化为条形图。需要使用 plots 参数来指定希望可视化的数据图表的类型,这里用“bar”。

代码语言:javascript复制
chromoMap(chr_file_1,anno_file_1,
          data_based_color_map = T,
          data_type = "numeric",
          plots = "bar")

也可以用“scatter”画散点图

代码语言:javascript复制
chromoMap(chr_file_1,anno_file_2,
          data_based_color_map = T,
          data_type = "numeric",
          plots = "scatter")

chromLinks 绘图

chromLinks 图可用于可视化任何两个特征或窗口之间的连接。这两个特征可以位于同一染色体上,也可以位于不同染色体上。

链接数据需要作为 data.frame 单独传递,其中每一行表示两个特征之间的连接,数据格式为:

第 1 列:第一个特征的名称(用于注释数据)[类型:字符]

第 2 列:第一个特征的倍性。[类型:数字]

第 3 列:第二个特征的名称 [类型:字符]

第 4 列:第二个特征的倍性。[类型:数字]

第 5 列(可选):链接的关联数据 [类型:数字或字符]

代码语言:javascript复制
head(link_data)
#>      V1 V2    V3 V4  V5
#> 1  An58  1 An194  1 100
#> 2  An98  1 An122  1  97
#> 3 An113  1 An132  1  95
#> 4 An119  1 An124  1  90
#> 5  An70  1 An120  1  80
#> 6 An105  1  An13  1  85
代码语言:javascript复制
chromoMap(chr_file, anno_file,
          # main arguments 
          show.links = T,
          loci_links = link_data[,c(1:4)],
          links.colors = "red2",
          #plot adjustments
          ch_gap = 50,
          y_chr_scale = 100,
          top_margin = 100,
          )

将颜色编码数据作为第五列,示意不同连接。

代码语言:javascript复制
chromoMap(chr_file, anno_file,
          # main arguments 
          show.links = T,
          loci_links = link_data,
          links.colors = c("red2","blue2"),
          #plot adjustments
          ch_gap = 50,
          y_chr_scale = 100,
          top_margin = 100,
          links.lg_y = 300
          )

加入网格线突出展示

代码语言:javascript复制
chromoMap(c(chr_file_1,chr_file_1),c(anno_file_1,anno_file_2),
          ploidy = 2
          data_based_color_map = T,
          data_type = "numeric",
          plots = c("bar","scatter"),
          plot_height = 40,
          plot_color = c("green","red"),
          ref_line = T,
          refl_pos = 20,
          #网格线设置,设置断点
          vertical_grid = T,
          grid_array = c(1,54,100,420,621))

小编总结

chromoMap在诸多染色体可视化工具中是非常美观的一种,主函数都相同,只需要在内部进行参数选择,所以画图也非常的方便,并且由于交互式的设计,我们可以直观的看到不同位置的注释信息!

END

0 人点赞