导语
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