circos 學(xué)習(xí)手冊(cè)(十六)

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ì) linkid 都是唯一的,并保證每個(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>
image.png
1.3.1 自定義 karyotype

當(dāng)你想要繪制的片段上的連接并不是來(lái)自同一物種的染色體時(shí),你需要?jiǎng)?chuàng)建自己的核型文件

例如,你有 3 個(gè)大小分別為 1000,1500,2500bpcontig 時(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-20contig2:500-520 之間的連接

第二行定義了 contig3:50-80contig2:750-760 之間的連接

1.3.2 link 參數(shù)

基礎(chǔ)參數(shù)如下:

  • radiuslink 終止的徑向位置,設(shè)置相對(duì)值時(shí),如果小于 1 表示相對(duì)于 ideogram 內(nèi)徑,否則相對(duì)于外徑
  • bezier_radius — 控制貝塞爾曲線的第三個(gè)控制點(diǎn)(前兩個(gè)由起止位置定義),未定義則使用直線
  • colorlink 線條的顏色
  • thicknesslink 線條厚度(不是 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ù)定義:

  • radius
  • bezier_radius
  • bezier_radius_purity
  • crest

而在這些參數(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ì)添加 p3p4,這些點(diǎn)在 link 的起止終端擁有同樣的角位置

p3r,p4r = radius +/- |bezier_radius - radius| * crest

當(dāng) crest=0 時(shí), p3p4p0、p1 處于同樣的位置,這種情況下,crest 沒(méi)有效果

當(dāng) crest=1 時(shí),p3p4 位于 p2 的徑向位置,p2bezier_radius 設(shè)置的控制點(diǎn)

注意 p2p3p4 之間的區(qū)別。p2 被放置在由 p0centerp1 形成的平分角的半徑上,而 p3p4 被放置在與 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è) linkp2 位置,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_puritycrest 參數(shù),使 link 更有條理。

每個(gè)參數(shù)的擾動(dòng)量定義為一對(duì)值:

  • pmin
  • pmax

給定擾動(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>
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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