link 和 relationships(一)
1. 基本 links 的繪制
circos 核心用途之一就是展示軸上位置之間的關(guān)系
許多控制連接 link 的參數(shù)直接繼承自 <highlights>
1.1 <links> 塊
所有連接的數(shù)據(jù)都是在 <links> 塊中定義,通常全局參數(shù)是在塊根部設(shè)置,這些值將作為所有連接 <link> 的默認(rèn)值
<links>
# global parameters here
<link>
...
</link>
<link>
...
</link>
</links>
1.2 數(shù)據(jù)格式
link 數(shù)據(jù)文件的每行都是由位置對(duì)組成
...
hs1 100 200 hs2 250 300
hs1 400 550 hs3 500 750
hs1 600 800 hs4 150 350
...
1.2.1 兩行格式
link 也可以跨兩行定義,并使用相同的 link id,每對(duì) link 的 id 都是唯一的,并保證每個(gè) 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 可選參數(shù)
和高亮一樣,可以添加可選字段來(lái)指定特定連接的參數(shù)
...
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 例子
在本例中,我們從重復(fù)片段定義的坐標(biāo)文件中繪制數(shù)據(jù),每個(gè)坐標(biāo)定義了基因組的兩個(gè)區(qū)域,作為重復(fù)片段(長(zhǎng)度超過(guò) 1kb,相似性大于 90%)
<links>
<link>
file = data/5/segdup.txt
color = black_a5
radius = 0.95r
bezier_radius = 0.1r
thickness = 1
</link>
</links>

1.3.1 自定義 karyotype
當(dāng)你想要繪制的片段上的連接并不是來(lái)自同一物種的染色體時(shí),你需要?jiǎng)?chuàng)建自己的核型文件
例如,你有 3 個(gè)大小分別為 1000,1500,2500bp 的 contig 時(shí),可以創(chuàng)建如下文件
# 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-20 和 contig2:500-520 之間的連接
第二行定義了 contig3:50-80 和 contig2:750-760 之間的連接
1.3.2 link 參數(shù)
基礎(chǔ)參數(shù)如下:
-
radius—link終止的徑向位置,設(shè)置相對(duì)值時(shí),如果小于1表示相對(duì)于ideogram內(nèi)徑,否則相對(duì)于外徑 -
bezier_radius— 控制貝塞爾曲線的第三個(gè)控制點(diǎn)(前兩個(gè)由起止位置定義),未定義則使用直線 -
color—link線條的顏色 -
thickness—link線條厚度(不是stroke_thickness) -
record_limit— 如果定義了這個(gè)參數(shù),則從文件中讀取的記錄數(shù)將被限制
1.4 link 默認(rèn)值
link 的默認(rèn)參數(shù)值為
ribbon = no
color = black
thickness = 1
radius = 0.40r
bezier_radius = 0r
crest = 0.5
bezier_radius_purity = 0.75
這些值默認(rèn)從 etc/tracks/link.conf 文件中導(dǎo)入,這個(gè)文件由 etc/housekeeping.conf 文件中的 track_defaults 參數(shù)設(shè)置
你可以見(jiàn)參數(shù)設(shè)置為 undef 來(lái)覆蓋默認(rèn)值
<link>
...
crest = undef
...
</link>
或者
<<include etc/housekeeping.conf>>
track_defaults* = undef
1.5 貝塞爾曲線
link 可以繪制成直線或者二次貝塞爾曲線
對(duì)于后者,起始 p1 和終止 p3 控制點(diǎn)由坐標(biāo)位置和半徑參數(shù)定義,它們之間控制點(diǎn) p2 由坐標(biāo)和 bezier_radius 參數(shù)之間的中間點(diǎn)定義
繪制貝塞爾曲線時(shí),其在 p1 處的切線由 p1-p2 定義,p3 處的切線由 p2-p3 定義
2. link 幾何形狀
link 的幾何形狀由 4 個(gè)參數(shù)定義:
radiusbezier_radiusbezier_radius_puritycrest
而在這些參數(shù)前面加上 perturb* 前綴,表示對(duì)這些參數(shù)進(jìn)行隨機(jī)調(diào)整
2.1 radius
radius 設(shè)置 link 終端的徑向位置,可以定義為相對(duì)值或絕對(duì)值
# 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
建議將半徑值設(shè)置為相對(duì)值,以便后續(xù)調(diào)整
2.2 bezier_radius
bezier_radius 參數(shù)控制 link 曲率控制點(diǎn)的徑向位置。在沒(méi)有額外設(shè)置的情況下,每個(gè) link 的控制點(diǎn)將位于相同的徑向位置
2.3 crest
可以用 crest 參數(shù)設(shè)置兩個(gè)額外的 bezier 控制點(diǎn)。定義后將會(huì)添加 p3 和 p4,這些點(diǎn)在 link 的起止終端擁有同樣的角位置
p3r,p4r = radius +/- |bezier_radius - radius| * crest
當(dāng) crest=0 時(shí), p3、p4 和 p0、p1 處于同樣的位置,這種情況下,crest 沒(méi)有效果
當(dāng) crest=1 時(shí),p3 和 p4 位于 p2 的徑向位置,p2 是 bezier_radius 設(shè)置的控制點(diǎn)
注意 p2 和 p3,p4 之間的區(qū)別。p2 被放置在由 p0,center,p1 形成的平分角的半徑上,而 p3,p4 被放置在與 p0,p1 相同的半徑上
上面是不是看懵了,沒(méi)關(guān)系,知道它干嘛的就好了
crest 參數(shù)的目的在于使 link 的終端與 ideogram 半徑垂直,這個(gè)參數(shù)只有在 bezier_radius 被定義的情況下發(fā)揮作用
2.4 bezier_radius_purity
bezier_radius 參數(shù)對(duì)于所有 link 都是常量,對(duì)于確定的 bezier_radius 參數(shù)值,無(wú)論 link 的起始和終止位置如何,p2 控制點(diǎn)始終處于相同的位置。
這會(huì)使靠近 link 起止終端的線條高度彎曲
為了緩解這一問(wèn)題,bezier_radius_purity 允許你定義一個(gè) link 起止終端的距離函數(shù)
bezier_radius_purity 調(diào)整每個(gè) link 的 p2 位置,p2 控制點(diǎn)將沿著原來(lái) p2 點(diǎn)位置與 p0-p1 和平分半徑的交點(diǎn)構(gòu)成的直線移動(dòng)
當(dāng) purity=1,p2'=p2,purity=0,p2'=midpoint(p0,p1)
如果定義了 bezier_radius_purity, crest 將會(huì)使用新的控制點(diǎn) p'
2.5 perturb
可以使用一組參數(shù)來(lái)隨機(jī)調(diào)整 bezier_radius, bezier_radius_purity 和 crest 參數(shù),使 link 更有條理。
每個(gè)參數(shù)的擾動(dòng)量定義為一對(duì)值:
pminpmax
給定擾動(dòng),新值的計(jì)算方式為
new_value = value * [ pmin + (pmax-pmin)*urd ]
其中,urd 是在 [0,1] 范圍內(nèi)的均勻隨機(jī)偏差。因此,新值將在 [value*pmin, value*pmax] 范圍內(nèi)采樣
例如,定義了
perturb = yes
perturb_crest = 0
perturb_bezier_radius = 0.5,1.2
perturb_bezier_radius_purity = 0.5,1
crest 將不受影響,將分別在其原始值的 50-120% 和 50-100% 之間隨機(jī)縮放
通過(guò)使用 pmin<0,可以使某些值強(qiáng)制變?yōu)樨?fù)數(shù)。例如,如果 crest=0.5,那么 perturb_crest = -1,2 會(huì)使 crest 在 [-0.5,1] 范圍波動(dòng)
來(lái)畫張圖看看
<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>
