circos

circos 学习手册(二)

2020-12-07  本文已影响0人  名本无名

配置文件语法

配置文件是通过 Config::General 模块进行解析的。

看过上一篇的朋友应该记得,完成 circos 环境配置是需要安装这一 Perl 模块的。

所有相关功能都会在下面描述,但是对于有需求的朋友,可以浏览 Config::General 模块的的主页来了解这些文件的语法和解析细节。

Config::General 模块的主页:

https://metacpan.org/pod/release/TLINDEN/Config-General-2.50/General.pm

配置语法

1 简单语法

配置通过如下设置方式,变量 => 值

variable = value

虽然 Config::General 支持以空白符作为定界符,但是在 circos 中所有的定义都需要用 =

在一些情况下,参数支持列表(通常以逗号分隔)

param = value,value,...

在少数情况下,参数可以接受多个实例

radius = 0.9r
radius = 0.8r

如果你尝试为不支持的参数进行多重定义,则会引发错误

一些设置可以用 的方式包裹起来,形成一种层次结构

了解 xml 或者 html 文件的朋友应该很熟悉这种以 <label> </label> 来划定块区域的方式

<ideogram>
 thickness = 30p
 fill      = yes
 ...
</ideogram>

一些块又可以包含其他块,例如数据配置<link>,包含在 <links> 块中

<links>

<link>
 file      = data/set1.txt
 color     = black
 ...
</link>

<link>
 file      = data/set2.txt
 color     = red
 ...
</link>

</links>

注意:块标签必须配对,要有结束标签

<ideogram>
...
<ideogram> # <-- 缺少闭合标签,会报错

2 块标签

flag 值:

块标签

2 指定配置参数的方式

可以在 4 个地方指定配置方式,重要性根据顺序增加:

  1. 在所有图形轨迹中配置全局数据点( 在 <plots><links> 块标签内设置)
  2. 在给点图形轨迹中配置局部数据点(在 <plot><link> 块标签内设置)
  3. 为单个数据点配置(在数据文件中配置)
  4. 使用规则块(在 <rule> 块标签内设置)

根据上面的顺序,在 rule 内设置的参数值会覆盖 数据文件 中的值;

数据文件中的值会覆盖任何 <plot><link> 块标签内设置的值;

又会覆盖上一层 <plots><links> 块标签内设置的值。

<plots>

# 全局参数
fill_color = white

<plot>

... # 省略其他参数, 如 file, type, position, etc

# 在这个局部图形轨迹中,覆盖参数 fill_color 的值
fill_color = grey

# 在数据文件 data.txt 中:
#
# ...
# hs1 10 20 0.50 fill_color=dblue
# ...
# 这个数据点会覆盖上面的颜色
<rules>
<rule>
condition  = var(value) < 0.33
# 匹配条件筛选数据点,如,值小于 0.33 的
# fill_color 设置为 orange
fill_color = orange
</rule>
</rules>

</plot>

</plots>

如果你要画大量相似的图形,像直方图组,热图等,通过设置全局参数将非常方便

<plots>
# 图形类型参数 type,指定为 heatmap,热图
type  = heatmap
min   = 0
max   = 1
# spectral-4-div 代表一个颜色列表,下面会介绍
color = spectral-4-div

<plot>
file = data.1.txt
r1   = 0.6r
r0   = 0.5r
...
</plot>

<plot>
file = data.2.txt
r1   = 0.7r
r0   = 0.6r
...
</plot>

<plot>
file = data.3.txt
r1   = 0.8r
r0   = 0.7r
...
</plot>

<plot>
file = data.4.txt
r1   = 0.9r
r0   = 0.8r
...
</plot>
…
</plots>

上面的例子中,每张图具有相同的最大值、最小值以及同样的配色

而每个 <plot> 块内部的参数,指定了只属于该模块的参数配置

3 外部导入

像一些参数配置是很少需要修改的,例如颜色和字体

为了保持主配置文件的模块化,可以使用 <<include ...>> 来导入这些静态的值

circos 中,应该始终从 etc/ 目录下导入两个文件

# 颜色、字体和填充模式
<<include etc/colors_fonts_patterns.conf>>
# 系统和 debug 参数
<<include etc/housekeeping.conf>>

etc/colors_fonts_patterns.conf 文件又导入一些其他文件

# etc/colors_fonts_patterns.conf

<colors>
import(etc/colors.conf)
</colors>

<fonts>
import(etc/fonts.conf)
</fonts>

<patterns>
import(etc/patterns.conf)
</patterns>

circos 要求这些块必须存在和设置值

通常,会将 ideograms 块单独存为 ideogram.conf

将刻度线格式存为 ticks.conf

因为这两个配置通常比较长,但是又和数据没有关系,可以通过外部文件导入方式,导入主配置中

<<include ideogram.conf>>
<<include ticks.conf>>

因为,通常这两个文件会和 circos.conf 放在同一个文件夹下面,所以前面不需要加路径

如果你有一些参数很少改变,应该考虑把它存储在外部文件中

你可以在配置文件的任意位置用 <<include >> 导入,如块内部

<plot>
file = data.4.txt
r0 = 0.8r
r1 = 0.9r
<<include plotsettings.conf>>
</plot>

包含可以任意嵌套,疯狂套娃?哈哈

当你用 <<include CONFIG_FILE_PATH/CONFIG_FILE>> 导入时,circos 将会搜索下面的路径

(未完待续……)

上一篇下一篇

猜你喜欢

热点阅读