circos軟件學(xué)習(xí)筆記:在圓圈里添加lines(interaction)

前幾篇筆記記錄了如何用circos畫出帶有刻度以及刻度標(biāo)簽的染色體骨架。這篇筆記來學(xué)習(xí)如何在這個圓圈里添加其他的Data信息。首先我們跟著官網(wǎng)教程來練習(xí)添加lines。官網(wǎng):here

Links代表了兩個基因組位置之間的聯(lián)系(比如相似性、不同、或者fusion等等),這個聯(lián)系是通過一條曲線或者直線來表示的。

Links可視化的格式可以使用rules來設(shè)置,rules組成一個表達式的決策樹,對每個link進行評估。根據(jù)數(shù)據(jù)值測試links,根據(jù)位置、大小或其他參數(shù)來動態(tài)的改變其展示方式。

Links的數(shù)據(jù)在<link> blocks里設(shè)置。Links從一個定義的徑向位置開始,并在bezier_radius定義的徑向位置上有它們的控制點(調(diào)整曲率)。比如在我們最開始下載的示例數(shù)據(jù)文件夾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

舉個例子:在你設(shè)置文件的時候就應(yīng)該這樣寫:

<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應(yīng)用于數(shù)據(jù)點,不再檢查其他規(guī)則(除非flow=continue)。如果條件為false,則檢查下一個rule。
var(X)指的是數(shù)據(jù)點的變量X的值。這里intrachr是指染色體內(nèi)的:

<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參數(shù),在決策樹中向上移動rules。首先是帶有importance參數(shù)的rules被運行,然后依次運行不帶參數(shù)的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更改染色體顏色的,現(xiàn)在我們用第二種方法來更改染色體顏色:
# 星號的后綴代表覆蓋顏色,可以覆蓋colors_fonts_patterns.conf文件里的設(shè)置
<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) #條件是:在同一染色體內(nèi)
# 任何在同一染色體內(nèi)的links都不會被展示
show          = no
</rule> #第一個rule結(jié)束

<rule> #第二個rule
#這個rule是針對剩下的不在同一染色體內(nèi)的links,condition=1代表條件始終是true
condition     = 1
#設(shè)置links的線條顏色,所有結(jié)尾落在2號染色體上的links的顏色,和2號染色體本身的顏色一致
color         = eval(var(chr2))
#在執(zhí)行完這一個rule后,繼續(xù)檢查下一個rule,所以設(shè)置continue:
flow          = continue
</rule>#第二個rule結(jié)束

<rule>#第三個rule
# 如果links從1號染色體開始:
condition     = from(hs1)
# 那么links的起始點要非??拷旧w骨架,0.99r
radius1       = 0.99r
</rule> #第三個rule結(jié)束

<rule>#第四個rule
# 如果links的結(jié)束點在1號染色體:
condition     = to(hs1)
# 那么links的結(jié)束點要非??拷旧w骨架,對同一個染色體進行設(shè)置,要用radius2:
radius2       = 0.99r
</rule>#第四個rule結(jié)束

</rules>#所有的rule結(jié)束

</link> #link結(jié)束
</links> #links的結(jié)尾

<<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都和染色體有一段距離,這就是上面我們進行設(shè)置rule的時候設(shè)置的
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容