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

circos 学习手册(十六)

作者: 名本无名 | 来源:发表于2020-12-23 17:34 被阅读0次

link 和 relationships(一)

1. 基本 links 的绘制

circos 核心用途之一就是展示轴上位置之间的关系

许多控制连接 link 的参数直接继承自 <highlights>

1.1 <links>

所有连接的数据都是在 <links> 块中定义,通常全局参数是在块根部设置,这些值将作为所有连接 <link> 的默认值

<links>

 # global parameters here

 <link>
 ...
 </link>

 <link>
 ...
 </link>

</links>

1.2 数据格式

link 数据文件的每行都是由位置对组成

...
hs1 100 200 hs2 250 300
hs1 400 550 hs3 500 750
hs1 600 800 hs4 150 350
...
1.2.1 两行格式

link 也可以跨两行定义,并使用相同的 link id,每对 linkid 都是唯一的,并保证每个 id 都有两行

...
segdup00010 hs1 100 200 
segdup00010 hs2 250 300
segdup00011 hs1 400 550
segdup00011 hs3 500 750
segdup00012 hs1 600 800
segdup00012 hs4 150 350
...

但是并不推荐这种格式,以后可能不再支持这一格式

1.2.2 link 可选参数

和高亮一样,可以添加可选字段来指定特定连接的参数

...
hs1 100 200 hs2 250 300 color=blue
hs1 400 550 hs3 500 750 color=red,thickness=5p
hs1 600 800 hs4 150 350 color=black
...

1.3 例子

在本例中,我们从重复片段定义的坐标文件中绘制数据,每个坐标定义了基因组的两个区域,作为重复片段(长度超过 1kb,相似性大于 90%

<links>

<link>
file          = data/5/segdup.txt
color         = black_a5
radius        = 0.95r
bezier_radius = 0.1r
thickness     = 1
</link>

</links>
image.png
1.3.1 自定义 karyotype

当你想要绘制的片段上的连接并不是来自同一物种的染色体时,你需要创建自己的核型文件

例如,你有 3 个大小分别为 100015002500bpcontig 时,可以创建如下文件

# karyotype.txt
chr - contig1 1 0 1000 black
chr - contig2 2 0 1500 blue
chr - contig3 3 0 2500 red

circos.conf 中使用

karyotype = karyotype.txt

你的连接文件可能是像这样的

contig1 10 20 contig2 500 520 
contig3 50 80 contig3 750 760
...

在这里,第一行定义了 contig1:10-20contig2:500-520 之间的连接

第二行定义了 contig3:50-80contig2:750-760 之间的连接

1.3.2 link 参数

基础参数如下:

  • radiuslink 终止的径向位置,设置相对值时,如果小于 1 表示相对于 ideogram 内径,否则相对于外径
  • bezier_radius — 控制贝塞尔曲线的第三个控制点(前两个由起止位置定义),未定义则使用直线
  • colorlink 线条的颜色
  • thicknesslink 线条厚度(不是 stroke_thickness
  • record_limit — 如果定义了这个参数,则从文件中读取的记录数将被限制

1.4 link 默认值

link 的默认参数值为

ribbon           = no
color            = black
thickness        = 1
radius           = 0.40r
bezier_radius    = 0r
crest                = 0.5
bezier_radius_purity = 0.75

这些值默认从 etc/tracks/link.conf 文件中导入,这个文件由 etc/housekeeping.conf 文件中的 track_defaults 参数设置

你可以见参数设置为 undef 来覆盖默认值

<link>
 ...
 crest = undef
 ...
</link>

或者

<<include etc/housekeeping.conf>>
track_defaults* = undef

1.5 贝塞尔曲线

link 可以绘制成直线或者二次贝塞尔曲线

对于后者,起始 p1 和终止 p3 控制点由坐标位置和半径参数定义,它们之间控制点 p2 由坐标和 bezier_radius 参数之间的中间点定义

绘制贝塞尔曲线时,其在 p1 处的切线由 p1-p2 定义,p3 处的切线由 p2-p3 定义

2. link 几何形状

link 的几何形状由 4 个参数定义:

  • radius
  • bezier_radius
  • bezier_radius_purity
  • crest

而在这些参数前面加上 perturb* 前缀,表示对这些参数进行随机调整

2.1 radius

radius 设置 link 终端的径向位置,可以定义为相对值或绝对值

# 50% of inner ideogram radius
radius = 0.5r 

# 50 pixels inside inner ideogram radius
radius = 1r - 50p

# 25 pixels outside inner ideogram radius
# careful - links will overlap with ideogram
radius = 1r + 25p

# links terminate 750 pixels from image center
radius = 750p

建议将半径值设置为相对值,以便后续调整

2.2 bezier_radius

bezier_radius 参数控制 link 曲率控制点的径向位置。在没有额外设置的情况下,每个 link 的控制点将位于相同的径向位置

2.3 crest

可以用 crest 参数设置两个额外的 bezier 控制点。定义后将会添加 p3p4,这些点在 link 的起止终端拥有同样的角位置

p3r,p4r = radius +/- |bezier_radius - radius| * crest

crest=0 时, p3p4p0p1 处于同样的位置,这种情况下,crest 没有效果

crest=1 时,p3p4 位于 p2 的径向位置,p2bezier_radius 设置的控制点

注意 p2p3p4 之间的区别。p2 被放置在由 p0centerp1 形成的平分角的半径上,而 p3p4 被放置在与 p0p1 相同的半径上

上面是不是看懵了,没关系,知道它干嘛的就好了

crest 参数的目的在于使 link 的终端与 ideogram 半径垂直,这个参数只有在 bezier_radius 被定义的情况下发挥作用

2.4 bezier_radius_purity

bezier_radius 参数对于所有 link 都是常量,对于确定的 bezier_radius 参数值,无论 link 的起始和终止位置如何,p2 控制点始终处于相同的位置。

这会使靠近 link 起止终端的线条高度弯曲

为了缓解这一问题,bezier_radius_purity 允许你定义一个 link 起止终端的距离函数

bezier_radius_purity 调整每个 linkp2 位置,p2 控制点将沿着原来 p2 点位置与 p0-p1 和平分半径的交点构成的直线移动

purity=1,p2'=p2,purity=0,p2'=midpoint(p0,p1)

如果定义了 bezier_radius_puritycrest 将会使用新的控制点 p'

2.5 perturb

可以使用一组参数来随机调整 bezier_radius, bezier_radius_puritycrest 参数,使 link 更有条理。

每个参数的扰动量定义为一对值:

  • pmin
  • pmax

给定扰动,新值的计算方式为

new_value = value * [ pmin + (pmax-pmin)*urd ]

其中,urd 是在 [0,1] 范围内的均匀随机偏差。因此,新值将在 [value*pmin, value*pmax] 范围内采样

例如,定义了

perturb               = yes
perturb_crest         = 0
perturb_bezier_radius = 0.5,1.2
perturb_bezier_radius_purity = 0.5,1

crest 将不受影响,将分别在其原始值的 50-120%50-100% 之间随机缩放

通过使用 pmin<0,可以使某些值强制变为负数。例如,如果 crest=0.5,那么 perturb_crest = -1,2 会使 crest[-0.5,1] 范围波动

来画张图看看

<links>

z      = 0
radius = 0.90r
crest  = 0.9
bezier_radius        = 0.9r
bezier_radius_purity = 0.5

perturb               = yes
perturb_crest         = 0
perturb_bezier_radius = 0.8,1.2
perturb_bezier_radius_purity = 0.5,1.5

<link>
color        = vvdgrey
thickness    = 2
file         = data/5/curves.repeated.txt
</link>

</links>
image.png

相关文章

  • circos 学习手册(十六)

    link 和 relationships(一) 1. 基本 links 的绘制 circos 核心用途之一就是展示...

  • circos 学习手册(二十六)

    技巧(一) 1. 微生物基因组 circos 适用于包含一条染色体的基因组,例如,环状细菌基因组。 1.1 交叉原...

  • 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 学习手册(十六)

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