美文网首页
circos 学习手册(二十一)

circos 学习手册(二十一)

作者: 名本无名 | 来源:发表于2020-12-28 18:13 被阅读0次

2D 数据绘制(二)

3. 直方图

circos 直方图是折线线图的变形,在折线图中,相邻点用一条直线连接起来,而直方图中,点之间构成一条阶梯状的轨迹。

设置参数 type=histogram,绘制直方图

在折线图和散点图中,数据点位于跨度的中间。因此通过如下定义一个数据点

hs1 1000 2000 0.5

该点将会绘制在 1500 的位置处。如果你的数据值与特定的位置相关,需要将起始和终止位置设置为同一个值。

hs1 1500 1500 0.5

但是,在直方图中,整个 1000-2000 范围将会对应一个值为 0.5 的直方图的 bin(直方图的一个柱子)

3.1 扩展 bins

如果设置 extend_bin=yes,则每个 bin 的左右边界将会延伸到该 bin 与相邻 bin 的中间点。

该值是默认设置的。例如,你的数据是

hs1 1000 2000 0.5
hs1 5000 5500 0.25
hs1 9000 9250 0.75

如果设置了 extend_bin=yes,中间的 bin 5000-5500 将其左侧扩展到 avg(2000,5000)=3500,右侧将会扩展到avg(5500,9000)=7250

因此,即使数据跨度不是连续的,但是直方图在这三个 bins 之间也是连续的。

如果 extend_bin=no,则直方图将有三个分离的 bin

你有时可能会注意到,即使设置了 extend_bin=no,相邻的 bin(起始终止之间的距离在 1bp 内)也会连接起来。这将使得 extend_bin=no 有助于区分没有数据的区域

如果你的数据非常密集,直方图会变得非常拥挤且难以理解。因此,当相邻数据点之间的角度距离至少跨越几个像素时,直方图和折线图才最有用

直方图类型对于跨度上的浮点值有效,对单基因数据点效果更差,如果数据非常密集,建议使用折线图。

image.png

3.2 跳过数据点

你可以使用 Perl 的取模运算符(%)编写一个跳过某些数据点的规则。如果数据点的起点/终点坐标是每 250kb 一个,但只希望每 1Mb 绘制一个点,则可以设置如下规则

<rule>
condition  = var(start) % 1Mb
show       = no
</rule>

判断条件是每个 bin 的起始值(250kb、500kb、750kb...)除以 1Mb 后的余数。如果 start1Mb 的倍数,余数为 0,规则失败

但是,如果 start 不是 1Mb 的倍数,则余数为正数,规则将对该点应用 show=no,从而隐藏该点。

3.3 处理抽样率

无论你创建的是位图还是 SVG 图像,你是无法在图像上绘制超过给定图像大小能够解析的数据量。

例如,你的 ideogram 半径为 1000 像素,则其周长为 6000 像素。因此,你只有 6000 个可分辨的数据位置。

如果考虑使用抗锯齿技术实现亚像素采样,则最多只能有 12000 个位置。

circos 会一次读取所有的数据,并存储在内存中。为了避免读取所有数据,可以使用 skip_runmin_value_change 参数。

如果设置了 skip_run 参数,circos 将只能读取具有相同值的连续数据点的第一个。如

<plot>
skip_run = yes
...
</plot>
# data input
chr1 100 200 0.25 # read in
chr1 200 300 0.1  # read in
chr1 300 400 0.1  # not read in
chr1 400 500 0.1  # not read in
chr1 500 600 0.1  # not read in
chr1 600 700 0.3  # read in

min_value_change 参数的工作原理类似,要求第 n 个读入的值必须与第 n-1 个被读入的值之间的差值至少 min_value_change 才会被读入。如

<plot>
min_value_change = 5
...
</plot>
# data input
chr1 100 200 1   # read in
chr1 200 300 2   # not read in (difference = 1 < 5)
chr1 300 400 5   # not read in (difference = 4 < 5)
chr1 400 500 6   # read in     (difference = 5 >= 5)
chr1 500 600 3   # not read in (difference = 3 < 5)
chr1 600 700 13  # read in     (difference = 7 >= 5)
chr1 

即使这些原始数据采样方法是可用的,但是强烈建议自己先对数据进行过滤,再作为输入数据

3.4 设置轴范围

如果未使用 min/max 指定轴范围,则将缩放轴以跨越整个数据范围,可以显示设置轴范围。例如

min=-1
max=0

将有效隐藏此范围之外的任何值

image.png

3.5 隐藏值

你可以通过设置轴范围来裁剪数据值,如果你的数据在 [-1,1] 范围内,并设置了

min=0
max=1

则只显示子范围 [0,1] 中的数据。但是,如果希望保留原始轴范围,并禁止显示数据范围,则你应使用 rule

下面的规则将隐藏负值数据

<rules>
<rule>
condition  = var(value) < 0
show       = no
</rule>
</rules>

3.6 轴方向

默认情况下,y 轴的方向是向外的。这意味着较小的值比较大的值更接近更接近圆的中心。对于直方图,正值的 bin 指向外部,负值的 bin 指向内部。

你可以使用 orientation 设置调整 y 轴的方向,使 y 轴指向内部

orientation = in

其效果与在所有数据值上翻转正负号相同

3.7 填充直方图

使用颜色填充直方图

fill_color = red

通过将两个直方图组合在一起(每个分别用于负值和正值数据)并使用不同颜色,可以实现视觉上的吸引力

image.png

3.8 填充扩展 bin

扩展的 bin 会根据原始 bin 设置的格式填充和描边。

image.png

相关文章

  • circos 学习手册(二十一)

    2D 数据绘制(二) 3. 直方图 circos 直方图是折线线图的变形,在折线图中,相邻点用一条直线连接起来,而...

  • circos 学习手册(二)

    配置文件语法 配置文件是通过 Config::General 模块进行解析的。 看过上一篇的朋友应该记得,完成 c...

  • circos 学习手册(三)

    配置文件语法(续) 4 动态执行参数 在配置文件中,通常以如下方式设置一个常量 例如 但是,有时候,你可能想用另一...

  • circos 学习手册(四)

    配置文件语法(再续) 7 颜色 在主配置文件中导入 etc/colors_fonts_patterns.conf ...

  • circos 学习手册(一)

    介绍 circos 以圆环的形式展示基因组数据及相关的注释信息,能够生成出版级别的图片,非常适合对染色体内、外关系...

  • circos 学习手册(五)

    数据文件 circos 的输入文件是纯文本数据文件 像染色体定义、数据( ),关系( ),强调(

  • circos 学习手册(七)

    ideogram(二) 2、ideogram 过滤 核型文件通常定义了基因组中的所有染色体,使用过滤器可以选择性的...

  • circos 学习手册(六)

    ideogram(一) 介绍 在生物学应用背景下,circos 图通常对应于染色体,组装的 contigs 或者克...

  • circos 学习手册(三十)

    技巧(五) 17. 自动化热图 17.1 更改热图颜色 热图的颜色是使用颜色列表指定的 或 计数器可用于动态更改配...

  • circos 学习手册(九)

    ideogram(四) 7、可变半径 默认情况下,每个 ideogram 都放置在相同的径向位置,可以通过 块...

网友评论

      本文标题:circos 学习手册(二十一)

      本文链接:https://www.haomeiwen.com/subject/pcytoktx.html