circos 学习手册(二)

配置文件语法

配置文件是通过 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 值:

  • R,代表必须
  • M,代表允许多个块,块内容会合并
  • +,代表允许多个块
块标签

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 将会搜索下面的路径

  • CONFIG_FILE 的相对路径
  • CONFIG_FILE_PATH/etc 的相对路径
  • CIRCOS_PATH/etc
  • CIRCOS_PATH/../etc
  • CIRCOS_PATH/..
  • CIRCOS_PATH

(未完待续……)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容