circos软件学习笔记:在圆圈里添加lines(interaction)

前几篇笔记记录了如何用circos画出带有刻度以及刻度标签的染色体骨架。这篇笔记来学习如何在这个圆圈里添加其他的Data信息。首先我们跟着官网教程来练习添加lines。官网:here

Links代表了两个基因组位置之间的联系(比如相似性、不同、或者fusion等等),这个联系是通过一条曲线或者直线来表示的。

Links可视化的格式可以使用rules来设置,rules组成一个表达式的决策树,对每个link进行评估。根据数据值测试links,根据位置、大小或其他参数来动态的改变其展示方式。

Links的数据在<link> blocks里设置。Links从一个定义的径向位置开始,并在bezier_radius定义的径向位置上有它们的控制点(调整曲率)。比如在我们最开始下载的示例数据文件夹data/5/segdup.txt这个文件:

$ head segdup.txt
hs1 465 30596 hs2 114046768 114076456
hs1 486 76975 hs15 100263879 100338121
hs1 486 30596 hs9 844 30515
hs1 486 9707 hsY 57762276 57771573
hs1 486 9707 hsX 154903076 154912373
hs1 486 9707 hs16 427 9533
hs1 8256 76975 hs19 11001 79672
hs1 23908 30596 hs12 17641 24322
hs1 59871 76975 hs6 5001 22075
hs1 71096 76975 hs6 170824311 170830148

举个例子:在你设置文件的时候就应该这样写:

<links>

<link>
file          = data/5/segdup.txt
radius        = 0.8r 
bezier_radius = 0r
color         = black_a4
thickness     = 2
</link>

</links>

在Rule块可以被添加到任何links block或者plot blocks里,并且形成一个决策链,用来更改如何展示data,是线条,柱形图,还是散点图等等,一般格式是:

<rules> 

<rule>
...
</rule>

<rule>
...
</rule>

...

</rules>

每一个rule有一个条件、格式化语句和一个可选的flow statement。如果条件为true,则将这个rule应用于数据点,不再检查其他规则(除非flow=continue)。如果条件为false,则检查下一个rule。
var(X)指的是数据点的变量X的值。这里intrachr是指染色体内的:

<rule>
condition     = var(intrachr)
# Any links that are intra-chromosomal will not be shown. Further rules are not tested.
show          = no
</rule>

rules是按照顺序运行的。你可以通过向上移动block或添加importance参数,在决策树中向上移动rules。首先是带有importance参数的rules被运行,然后依次运行不带参数的rules:

<rules>

<rule>
# 2nd
</rule>

<rule>
# 3rd
</rule>

<rule>
# 1st 
importance = 10
</rule>

</rules>

示例脚本

circos.conf主要配置文件:

karyotype = data/karyotype/karyotype.human.txt
chromosomes_units = 1000000

chromosomes_display_default = no
chromosomes                 = /hs[1-4]$/
chromosomes_reverse         = /hs[234]/
chromosomes_scale           = hs1=0.5r,/hs[234]/=0.5rn
chromosomes_radius          = hs4:0.9r

# 在上一篇笔记里,我们是在ideogram.conf更改染色体颜色的,现在我们用第二种方法来更改染色体颜色:
# 星号的后缀代表覆盖颜色,可以覆盖colors_fonts_patterns.conf文件里的设置
<colors>
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>

<links> #links的开头

<link>
file          = data/5/segdup.txt
radius        = 0.8r #从径向位置的0.8r处开始线条
bezier_radius = 0r
color         = black_a4
thickness     = 2

<rules># 在links块里添加rules
<rule> #第一个rule开始
condition     = var(intrachr) #条件是:在同一染色体内
# 任何在同一染色体内的links都不会被展示
show          = no
</rule> #第一个rule结束

<rule> #第二个rule
#这个rule是针对剩下的不在同一染色体内的links,condition=1代表条件始终是true
condition     = 1
#设置links的线条颜色,所有结尾落在2号染色体上的links的颜色,和2号染色体本身的颜色一致
color         = eval(var(chr2))
#在执行完这一个rule后,继续检查下一个rule,所以设置continue:
flow          = continue
</rule>#第二个rule结束

<rule>#第三个rule
# 如果links从1号染色体开始:
condition     = from(hs1)
# 那么links的起始点要非常靠近染色体骨架,0.99r
radius1       = 0.99r
</rule> #第三个rule结束

<rule>#第四个rule
# 如果links的结束点在1号染色体:
condition     = to(hs1)
# 那么links的结束点要非常靠近染色体骨架,对同一个染色体进行设置,要用radius2:
radius2       = 0.99r
</rule>#第四个rule结束

</rules>#所有的rule结束

</link> #link结束
</links> #links的结尾

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

<image>
<<include etc/image.conf>>
</image>

<<include etc/colors_fonts_patterns.conf>>
<<include etc/housekeeping.conf>>

ideogram.conf脚本(与上一篇笔记里的差不多):

<ideogram>

<spacing>
default = 0.005r
</spacing>

# Ideogram position, fill and outline
radius           = 0.90r
thickness        = 20p
fill             = yes
stroke_color     = dgrey
stroke_thickness = 2p

# Minimum definition for ideogram labels.

show_label       = yes
# see etc/fonts.conf for list of font names
label_font       = default
label_radius     = 1.075r  # if ideogram radius is constant, and you'd like labels close to image edge,
                           # use the dims() function to access the size of the image
                           # label_radius  = dims(image,radius) - 60p
label_size       = 30
label_parallel   = yes

</ideogram>

ticks.conf脚本(与上一篇笔记里的差不多):

show_ticks          = yes
show_tick_labels    = yes

<ticks>
radius           = 1r
color            = black
thickness        = 2p
multiplier       = 1e-6
format           = %d

<tick>
spacing        = 5u
size           = 10p
</tick>

<tick>
spacing        = 25u
size           = 15p
show_label     = yes
label_size     = 20p
label_offset   = 10p
format         = %d
</tick>

</ticks>

运行circos.conf:

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

推荐阅读更多精彩内容