寫在前面
由于circos官網(wǎng)的教程太全面了但金,雖然好但反而感覺比較復(fù)雜涨醋,難易上手瓜饥,因此我將他們精簡了一下。由于官網(wǎng)的教程中包含的數(shù)據(jù)太雜了浴骂,所以我精簡了數(shù)據(jù)與代碼放到了扣扣群559758504中乓土,有需要的自取吧。
更新日志
2021年11月3日追加更新:增加數(shù)據(jù)獲取說明
每一個板塊的數(shù)據(jù)溯警,新增如何獲取對應(yīng)的數(shù)據(jù)趣苏,不過多多少少需要點(diǎn)Linux基礎(chǔ),看不懂也沒關(guān)系梯轻,會用就行食磕。只不過熟悉Linux的同學(xué)可以在此基礎(chǔ)上玩出更多的花樣。
鏈接:【生信 | circos文件準(zhǔn)備大全(以擬南芥為例)】【生信 | Circos的安裝】
2021年10月26日追加更新:中文版Circos教程
一喳挑、畫出輪廓
-
染色體文件準(zhǔn)備彬伦,格式如下:
格式:7列、無表頭伊诵、\t
分割单绑。
前2列:固定為chr -
,表明我們要畫染色體輪廓
第3列:染色體ID曹宴,像身份證號搂橙,注意:如果ID中除了“_”有其他符號一律會報錯
第4列:染色體Label,像人名笛坦,會顯示在圖上而ID不會
第5列:染色體起始位置
第6列:染色體終止位置
第7列:染色體的顏色区转,chr1-4代表的都是circos內(nèi)置顏色的名稱
chr - hs1 1 0 249250621 chr1
chr - hs2 2 0 243199373 chr2
chr - ··· · · ········· ····
chr - hsY y 0 59373566 chry
- 編輯配置文件 ? 先去看這個,了解基本知識
- 在群文件的同級目錄下新建一個名為【circos.conf】的文件
vi circos.conf
- 新建好后將下面的內(nèi)容復(fù)制進(jìn)去
#指定染色體文件(絕對/相對路徑+文件名)
karyotype = data/karyotype/karyotype.human.txt
#-----------------------------------------------------------------------------------
<ideogram> #這是定義染色體相關(guān)參數(shù)的標(biāo)簽弯屈,以</ideogram>結(jié)尾蜗帜,其中包括要設(shè)置的參數(shù)
<spacing> #定義染色體間隙寬度的標(biāo)簽,以</spacing>资厉,其中包括要設(shè)置的參數(shù)
default = 0.005r #r指的是圓的周長,設(shè)置0.5%圓的周長為間隙
#<pairwise hsY;hs1> #可以用<pairwise>標(biāo)簽特別指定某些染色體的間隙(用的是ID)蔬顾,因?yàn)樵诖蠖鄶?shù)文章中宴偿,都會留一個大間隙,來放label
#spacing = 20r #這里20r表示是相對default = 0.005r的20倍诀豁,也就是10%的圓的周長
#</pairwise> #標(biāo)簽都要以</>結(jié)尾窄刘,
</spacing> #間隙定義結(jié)束,下面是對染色體樣式的調(diào)整
radius = 0.90r #輪廓的位置舷胜,這里的r指的是半徑娩践,由圓心到圓周上范圍依次是0-1r,,超出部分將不再顯示翻伺。
thickness = 20p #染色體整體的寬度材泄,這里p指的是像素大小,也可以用r表示吨岭,1r=1500p
fill = yes #是否為染色體填充顏色拉宗,如果為yes,自動用第七列定義的顏色著色
stroke_color = dgrey #染色體邊框的顏色辣辫,支持多種格式的輸入旦事,如:red或255,182,106
stroke_thickness = 2p #染色體邊框的粗細(xì)
</ideogram> #定義染色體屬性的標(biāo)簽結(jié)束
#-----------------------------------------------------------------------------------
#下面是每次都要復(fù)制粘貼上去的,他們屬于circos自帶的配置文件急灭,用于調(diào)用顏色姐浮,距離,報錯等信息
<image> #注意路徑
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>>
#官方?jīng)]有提到下面的文件葬馋,但是沒有這個文件會報錯单料,所以還是加上去
<<include etc/housekeeping.conf>>
- 執(zhí)行腳本(前提是你將circos添加到了環(huán)境變量中了,否則在circos前添加絕對路徑)
circos -conf circos.conf
- 結(jié)果
二点楼、增加刻度線與Label
- 由于有很多重復(fù)代碼扫尖,因此,注意位置不要放錯掠廓,且簡單或重復(fù)的標(biāo)簽將不再注釋
#指定染色體文件(絕對/相對路徑+文件名)
karyotype = data/karyotype/karyotype.human.txt
#↓↓↓###########################################################
chromosomes_units = 1000000 #定義最小單位换怖,即100萬bp為一個units,即1u = 100w蟀瞧,后面刻度線都是基于此的操作沉颂,如果染色體長度都在5kw以上,推薦用100w悦污,否則推薦用10w
#↑↑↑###########################################################
#-----------------------------------------------------------------------------------
<ideogram> #這是定義染色體相關(guān)參數(shù)的標(biāo)簽铸屉,以</ideogram>結(jié)尾,其中包括要設(shè)置的參數(shù)
<spacing> #定義染色體間隙寬度的標(biāo)簽切端,以</spacing>彻坛,其中包括要設(shè)置的參數(shù)
default = 0.005r #r指的是圓的周長,設(shè)置0.5%圓的周長為間隙
#<pairwise hsY;hs1> #可以用<pairwise>標(biāo)簽特別指定某些染色體的間隙(用的是ID)踏枣,因?yàn)樵诖蠖鄶?shù)文章中昌屉,都會留一個大間隙,來放label
#spacing = 20r #這里20r表示是相對default = 0.005r的20倍茵瀑,也就是10%的圓的周長
#</pairwise> #標(biāo)簽都要以</>結(jié)尾间驮,
</spacing> #間隙定義結(jié)束,下面是對染色體樣式的調(diào)整
radius = 0.90r #輪廓的位置马昨,這里的r指的是半徑竞帽,由圓心到圓周上范圍依次是0-1r扛施,,超出部分將不再顯示屹篓。
thickness = 20p #染色體整體的寬度疙渣,這里p指的是像素大小,也可以用r表示抱虐,1r=1500p
fill = yes #是否為染色體填充顏色昌阿,如果為yes,自動用第七列定義的顏色著色
stroke_color = dgrey #染色體邊框的顏色恳邀,支持多種格式的輸入懦冰,如:red或255,182,106
stroke_thickness = 2p #染色體邊框的粗細(xì)
#↓↓↓##########################染色體標(biāo)簽###############################
show_label = yes #選擇yes表示要顯示label
label_font = default # 字體可以再 etc/fonts.conf 查看所有,默認(rèn)為CMUBright-Roman
label_radius = dims(image,radius)-60p #使用dims()獲取圖像半徑的大小谣沸,從而定位染色體標(biāo)簽的位置刷钢,也可以直接定義1.075r
label_size = 30 #字體的大小
label_parallel = yes #將Label的方向設(shè)置為與染色體平行
#↑↑↑###########################################################
</ideogram> #定義染色體屬性的標(biāo)簽結(jié)束
#↓↓↓#########################刻度線###############################
show_ticks = yes #選擇yes表示要顯示刻度線
show_tick_labels = yes #選擇yes表示要顯示刻度線的數(shù)值
#定義刻度線的整體位置與形狀
<ticks> #刻度線的轉(zhuǎn)用標(biāo)簽,但凡是復(fù)數(shù)出現(xiàn)的乳附,其下面的參數(shù)都表示全局參數(shù)内地,像下面的<tick>單數(shù)形式,都表示局部參數(shù)
radius = 1r #刻度線的位置赋除,1r為最遠(yuǎn)距離阱缓,超過1r不再顯示
color = black
thickness = 2p
multiplier = 1e-6 #把刻度線標(biāo)簽(bp)縮小10萬倍顯示
format = %d #然后以整數(shù)的形式標(biāo)記在刻度線上
#定義小的刻度線,且不顯示數(shù)值
<tick>
spacing = 5u #最開始我們定義1u = 1000000举农,表示每500w bp顯示一個小刻度線
size = 10p
show_label = no #由于小的刻度線展示出來太密集荆针,因此我們no不展示,默認(rèn)不展示
</tick>
#定義大的刻度線颁糟,顯示數(shù)值
<tick>
spacing = 25u
size = 15p
show_label = yes
label_size = 20p
label_offset = 10p #設(shè)置數(shù)值和刻度線之間的間隔
format = %d
</tick>
</ticks>
#↑↑↑###########################################################
#-----------------------------------------------------------------------------------
#下面是每次都要復(fù)制粘貼上去的航背,他們屬于circos自帶的配置文件,用于調(diào)用顏色棱貌,距離玖媚,報錯等信息
<image> #注意路徑
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>>
#官方?jīng)]有提到下面的文件,但是沒有這個文件會報錯婚脱,所以還是加上去
<<include etc/housekeeping.conf>>
- 執(zhí)行腳本
circos -conf circos.conf
- 結(jié)果
三今魔、增加內(nèi)部連線(內(nèi)含rule的使用方法,但使用到的不會太復(fù)雜)
-
內(nèi)部連線文件準(zhǔn)備起惕,格式如下:
格式:6列涡贱、無表頭、\t
分割惹想。
第1列:染色體ID,指連線起始的染色體
第2列:連線起始的染色體的起始位置
第3列:連線起始的染色體的終止位置
第4列:染色體ID督函,指連線的終止染色體
第5列:連線終止的染色體的起始位置
第6列:連線終止的染色體的終止位置 - Circos官網(wǎng)給的數(shù)據(jù)是序列相似度在90%以上的序列片段(最短1kbp)
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
- 同樣嘀粱,激挪,注意位置不要放錯,且簡單或重復(fù)的標(biāo)簽將不再注釋
#指定染色體文件(絕對/相對路徑+文件名)
karyotype = data/karyotype/karyotype.human.txt
chromosomes_units = 1000000 #定義最小單位锋叨,即100萬bp為一個units垄分,即1u = 100w,后面刻度線都是基于此的操作娃磺,如果染色體長度都在5kw以上薄湿,推薦用100w,否則推薦用10w
#-----------------------------------------------------------------------------------
#↓↓↓###########################################################
<links>
<link>
file = data/5/segdup.txt #指定存放內(nèi)部連線數(shù)據(jù)的文件
radius = 0.7r #radius定義內(nèi)部連線區(qū)域的大小偷卧,表示從0-0.7r均為連線區(qū)域豺瘤,預(yù)留出位置為了給其他圖形留出空間
bezier_radius = 0r #控制連線的彎曲程度,數(shù)值越大越彎曲听诸,范圍為0r-1.5r
crest = 1 #簡單理解為彎曲點(diǎn)的位置坐求,越大彎曲點(diǎn)越向中中靠攏。由外到內(nèi)數(shù)值依次減小晌梨,范圍為0-1.25
thickness = 2 #連線的粗細(xì)
#以下為開啟絲帶模式桥嗤,其寬度與坐標(biāo)差值相同,當(dāng)然為了繪制出明顯的絲帶效果仔蝌,你要人為的去夸大坐標(biāo)差值才能明顯顯示出來
#ribbon = yes
#flat = yes
#stroke_thickness = 2
<rules> #用來做條件判斷的標(biāo)簽泛领,圈圖各式各樣就在于rule的不同使用
<rule>
condition = var(intrachr) #condition表示條件,=后面為具體的動作敛惊。此為獲取在同一條染色體間的連線
show = no #規(guī)定在同一條染色體間的連線不展示
</rule>
<rule>
condition = 1 #condition = 1表示永遠(yuǎn)成立
color = eval(var(chr2)) #連線的顏色與對應(yīng)的染色體的顏色相同
flow = continue #當(dāng)上面的rule執(zhí)行完之后繼續(xù)執(zhí)行下面的rule渊鞋,可以改為stop
</rule>
<rule>
condition = max(var(size1),var(size2)) < 50kb # 如果連線端點(diǎn)的值小于50kb則不顯示,這個我不是特別確定豆混。
show = no
</rule>
</rules>
</link>
</links>
#↑↑↑###########################################################
<ideogram> #這是定義染色體相關(guān)參數(shù)的標(biāo)簽篓像,以</ideogram>結(jié)尾,其中包括要設(shè)置的參數(shù)
<spacing> #定義染色體間隙寬度的標(biāo)簽皿伺,以</spacing>员辩,其中包括要設(shè)置的參數(shù)
default = 0.005r #r指的是圓的周長,設(shè)置0.5%圓的周長為間隙
#<pairwise hsY;hs1> #可以用<pairwise>標(biāo)簽特別指定某些染色體的間隙(用的是ID)鸵鸥,因?yàn)樵诖蠖鄶?shù)文章中奠滑,都會留一個大間隙,來放label
#spacing = 20r #這里20r表示是相對default = 0.005r的20倍妒穴,也就是10%的圓的周長
#</pairwise> #標(biāo)簽都要以</>結(jié)尾宋税,
</spacing> #間隙定義結(jié)束,下面是對染色體樣式的調(diào)整
radius = 0.90r #輪廓的位置讼油,這里的r指的是半徑顺饮,由圓心到圓周上范圍依次是0-1r,搀突,超出部分將不再顯示。
thickness = 20p #染色體整體的寬度根时,這里p指的是像素大小,也可以用r表示辰晕,1r=1500p
fill = yes #是否為染色體填充顏色蛤迎,如果為yes,自動用第七列定義的顏色著色
stroke_color = dgrey #染色體邊框的顏色含友,支持多種格式的輸入替裆,如:red或255,182,106
stroke_thickness = 2p #染色體邊框的粗細(xì)
show_label = yes #選擇yes表示要顯示label
label_font = default # 字體可以再 etc/fonts.conf 查看所有,默認(rèn)為CMUBright-Roman
label_radius = dims(image,radius)-60p #使用dims()獲取圖像半徑的大小窘问,從而定位染色體標(biāo)簽的位置辆童,也可以直接定義1.075r
label_size = 30 #字體的大小
label_parallel = yes #將Label的方向設(shè)置為與染色體平行
</ideogram> #定義染色體屬性的標(biāo)簽結(jié)束
show_ticks = yes #選擇yes表示要顯示刻度線
show_tick_labels = yes #選擇yes表示要顯示刻度線的數(shù)值
#定義刻度線的整體位置與形狀
<ticks> #刻度線的轉(zhuǎn)用標(biāo)簽,但凡是復(fù)數(shù)出現(xiàn)的南缓,其下面的參數(shù)都表示全局參數(shù)胸遇,像下面的<tick>單數(shù)形式,都表示局部參數(shù)
radius = 1r #刻度線的位置汉形,1r為最遠(yuǎn)距離纸镊,超過1r不再顯示
color = black
thickness = 2p
multiplier = 1e-6 #把刻度線標(biāo)簽(bp)縮小10萬倍顯示
format = %d #然后以整數(shù)的形式標(biāo)記在刻度線上
#定義小的刻度線,且不顯示數(shù)值
<tick>
spacing = 5u #最開始我們定義1u = 1000000概疆,表示每500w bp顯示一個小刻度線
size = 10p
show_label = no #由于小的刻度線展示出來太密集逗威,因此我們no不展示,默認(rèn)不展示
</tick>
#定義大的刻度線岔冀,顯示數(shù)值
<tick>
spacing = 25u
size = 15p
show_label = yes
label_size = 20p
label_offset = 10p #設(shè)置數(shù)值和刻度線之間的間隔
format = %d
</tick>
</ticks>
#-----------------------------------------------------------------------------------
#下面是每次都要復(fù)制粘貼上去的凯旭,他們屬于circos自帶的配置文件,用于調(diào)用顏色使套,距離罐呼,報錯等信息
<image> #注意路徑
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>>
#官方?jīng)]有提到下面的文件,但是沒有這個文件會報錯侦高,所以還是加上去
<<include etc/housekeeping.conf>>
- 由于顏色系統(tǒng)中hsx的顏色命名為小寫嫉柴,因此我們將數(shù)據(jù)文件中的ID全部改為小寫(這應(yīng)該是官方的BUG,自己提供的數(shù)據(jù)與流程都沖突了奉呛。至于為什么沒有修復(fù)计螺,因?yàn)樵诠俜浇坛讨校瑳]有使用X/Y染色體的數(shù)據(jù)瞧壮,因此他們也沒有發(fā)現(xiàn))
sed -i 's/hsX/hsx/g' data/karyotype/karyotype.human.txt
sed -i 's/hsY/hsy/g' data/karyotype/karyotype.human.txt
sed -i 's/hsX/hsx/g' data/5/segdup.txt
sed -i 's/hsY/hsy/g' data/5/segdup.txt
- 執(zhí)行腳本
circos -conf circos.conf
- 結(jié)果
四登馒、選取特定的染色體畫圖
- 由于后續(xù)官網(wǎng)上只提供了1234條染色體的數(shù)據(jù)信息,所以咱們?yōu)榱朔奖阏故九夭郏策x擇這四條染色體陈轿,也就是幾條命令的事情,分別在以下位置添加和修改代碼
#在上面代碼的chromosomes_units = 1000000后面加上下面的命令就可以了
chromosomes_display_default = no #先展示所有染色體
chromosomes = /hs[1234]$/ #然后使用正則表達(dá)式,選擇1234條染色體
<colors> #原來的顏色太丑了济欢,重新定義顏色赠堵,注意重新定義顏色都需要加上*號
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>
- 然后將上面的
condition = max(var(size1),var(size2)) < 50kb
小渊,修改為condition = max(var(size1),var(size2)) < 2kb
- 執(zhí)行腳本
circos -conf circos.conf
-
結(jié)果
五法褥、增加柱形圖
-
柱形圖文件準(zhǔn)備,格式如下:
格式:4列酬屉、無表頭半等、\t
分割。
第1列:染色體ID
第2列:柱形圖起始位置
第3列:柱形圖終止位置
第4列:柱形圖的值(如果是一個就是單一的柱形圖呐萨,如果是多個則是堆疊的柱形圖)
hs1 0 1999999 180.0000 |#hs1 0 1999999 113.0000,20.0000,7.0000,40.0000
hs1 2000000 3999999 34.0000 |#hs1 2000000 3999999 34.0000,0.0000,0.0000,0.0000
hs1 4000000 5999999 2.0000 |#hs1 4000000 5999999 2.0000,0.0000,0.0000,0.0000
hs1 6000000 7999999 5.0000 |#hs1 6000000 7999999 1.0000,4.0000,0.0000,0.0000
- 同樣杀饵,,注意位置不要放錯谬擦,且簡單或重復(fù)的標(biāo)簽將不再注釋
#指定染色體文件(絕對/相對路徑+文件名)
karyotype = data/karyotype/karyotype.human.txt
chromosomes_units = 1000000 #定義最小單位切距,即100萬bp為一個units,即1u = 100w惨远,后面刻度線都是基于此的操作谜悟,如果染 色體長度都在5kw以上,推薦用100w北秽,否則推薦用10w
chromosomes_display_default = no #先展示所有染色體
chromosomes = /hs[1234]$/ #然后使用正則表達(dá)式葡幸,選擇1234條染色體
<colors> #原來的顏色太丑了,重新定義顏色贺氓,注意重新定義顏色都需要加上*號
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>
#-----------------------------------------------------------------------------------
#↓↓↓###########################################################
#單一柱形圖
<plots>
<plot>
type = histogram #首先指明畫圖類型
file = data/5/segdup.hs1234.hist.txt
r1 = 0.88r #限制直方圖顯示的區(qū)域
r0 = 0.81r #限制直方圖顯示的區(qū)域
fill_color = vdgrey #給直方圖填充顏色
extend_bin = no #一般情況下蔚叨,柱形圖也會有完整的一圈,但設(shè)置了extend_bin = no則不會顯示沒有value的區(qū)域
<rules>
</rules>
</plot>
#堆疊柱形圖
<plot>
type = histogram
file = data/5/segdup.hs1234.stacked.txt #有四列value時辙培,展示的時候?qū)⑺膫€value堆疊展示
r1 = 0.99r
r0 = 0.92r
fill_color = hs1,hs2,hs3,hs5 #數(shù)據(jù)中有四列value蔑水,因此定義填充色的時候,不像fill_color = vdgrey只定義一個扬蕊,要同時定義四種顏色搀别,hsN是不同的顏色
orientation = in #定義柱形圖向內(nèi)還是向外
extend_bin = no
</plot>
</plots>
#↑↑↑###########################################################
<links>
<link>
file = data/5/segdup.txt #指定存放內(nèi)部連線數(shù)據(jù)的文件
radius = 0.7r #radius定義內(nèi)部連線區(qū)域的大小,表示從0-0.7r均為連線區(qū)域
bezier_radius = 0r #控制連線的彎曲程度厨相,數(shù)值越大越彎曲领曼,范圍為0r-1.5r
crest = 1
#bezier_radius_purity = 0.5
#color = black_a4 #連線的顏色
thickness = 2 #連線的粗細(xì)
#ribbon = yes
#flat = yes
#stroke_thickness = 2
<rules> #用來做條件判斷的標(biāo)簽,圈圖各式各樣就在于rule的不同使用
<rule>
condition = var(intrachr) #condition表示條件蛮穿,=后面為具體的動作庶骄。此為獲取在同一條染色體間的連線
show = no #規(guī)定在同一條染色體間的連線不展示
</rule>
<rule>
condition = 1 #condition = 1表示永遠(yuǎn)成立
color = eval(var(chr2)) #連線的顏色與對應(yīng)的染色體的顏色相同
flow = continue #當(dāng)上面的rule執(zhí)行完之后繼續(xù)執(zhí)行下面的rule,可以改為stop
</rule>
<rule>
condition = max(var(size1),var(size2)) < 2kb
show = no
</rule>
</rules>
</link>
</links>
<ideogram> #這是定義染色體相關(guān)參數(shù)的標(biāo)簽践磅,以</ideogram>結(jié)尾单刁,其中包括要設(shè)置的參數(shù)
<spacing> #定義染色體間隙寬度的標(biāo)簽,以</spacing>,其中包括要設(shè)置的參數(shù)
default = 0.005r #r指的是圓的周長羔飞,設(shè)置0.5%圓的周長為間隙
#<pairwise hsY;hs1> #可以用<pairwise>標(biāo)簽特別指定某些染色體的間隙(用的是ID)肺樟,因?yàn)樵诖蠖鄶?shù)文章中,都會留一 個大間隙逻淌,來放label
#spacing = 20r #這里20r表示是相對default = 0.005r的20倍么伯,也就是10%的圓的周長
#</pairwise> #標(biāo)簽都要以</>結(jié)尾,
</spacing> #間隙定義結(jié)束卡儒,下面是對染色體樣式的調(diào)整
radius = 0.90r #輪廓的位置田柔,這里的r指的是半徑,由圓心到圓周上范圍依次是0-1r骨望,硬爆,超出部分將不再顯示。
thickness = 20p #染色體整體的寬度擎鸠,這里p指的是像素大小缀磕,也可以用r表示,1r=1500p
fill = yes #是否為染色體填充顏色劣光,如果為yes袜蚕,自動用第七列定義的顏色著色
stroke_color = dgrey #染色體邊框的顏色,支持多種格式的輸入赎线,如:red或255,182,106
stroke_thickness = 2p #染色體邊框的粗細(xì)
show_label = yes #選擇yes表示要顯示label
label_font = default # 字體可以再 etc/fonts.conf 查看所有廷没,默認(rèn)為CMUBright-Roman
label_radius = dims(image,radius)-60p #使用dims()獲取圖像半徑的大小,從而定位染色體標(biāo)簽的位置垂寥,也可以直接定義1.075r
label_size = 30 #字體的大小
label_parallel = yes #將Label的方向設(shè)置為與染色體平行
</ideogram> #定義染色體屬性的標(biāo)簽結(jié)束
show_ticks = yes #選擇yes表示要顯示刻度線
show_tick_labels = yes #選擇yes表示要顯示刻度線的數(shù)值
#定義刻度線的整體位置與形狀
<ticks> #刻度線的轉(zhuǎn)用標(biāo)簽颠黎,但凡是復(fù)數(shù)出現(xiàn)的,其下面的參數(shù)都表示全局參數(shù)滞项,像下面的<tick>單數(shù)形式狭归,都表示局部參數(shù)
radius = 1r #刻度線的位置,1r為最遠(yuǎn)距離文判,超過1r不再顯示
color = black
thickness = 2p
multiplier = 1e-6 #把刻度線標(biāo)簽(bp)縮小10萬倍顯示
format = %d #然后以整數(shù)的形式標(biāo)記在刻度線上
#定義小的刻度線过椎,且不顯示數(shù)值
<tick>
spacing = 5u #最開始我們定義1u = 1000000,表示每500w bp顯示一個小刻度線
size = 10p
show_label = no #由于小的刻度線展示出來太密集戏仓,因此我們no不展示疚宇,默認(rèn)不展示
</tick>
#定義大的刻度線,顯示數(shù)值
<tick>
spacing = 25u
size = 15p
show_label = yes
label_size = 20p
label_offset = 10p #設(shè)置數(shù)值和刻度線之間的間隔
format = %d
</tick>
</ticks>
#-----------------------------------------------------------------------------------
#下面是每次都要復(fù)制粘貼上去的赏殃,他們屬于circos自帶的配置文件敷待,用于調(diào)用顏色,距離仁热,報錯等信息
<image> #注意路徑
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>>
#官方?jīng)]有提到下面的文件榜揖,但是沒有這個文件會報錯,所以還是加上去
<<include etc/housekeeping.conf>>
- 執(zhí)行腳本
circos -conf circos.conf
- 結(jié)果
六、增加熱圖
-
熱圖文件準(zhǔn)備举哟,格式如下:
格式:5列思劳、無表頭、\t
分割妨猩。
第1列:染色體ID
第2列:在染色體上的起始位置
第3列:在染色體上的終止位置
第4列:熱圖的值
第5列:key=value潜叛。只是為了區(qū)分四組數(shù)據(jù),因此沒有必要用id或者h(yuǎn)s册赛,能區(qū)分開就行
hs1 0 1999999 113.0000 id=hs1
hs1 0 1999999 40.0000 id=hs4
hs1 0 1999999 20.0000 id=hs2
hs1 0 1999999 7.0000 id=hs3
hs1 2000000 3999999 34.0000 id=hs1
hs1 2000000 3999999 0.0000 id=hs2
hs1 2000000 3999999 0.0000 id=hs3
hs1 2000000 3999999 0.0000 id=hs4
- 因?yàn)闊釄D也是
plot
范疇里面的钠导,因此在<plots>任意地方添加下面的代碼即可
<plot>
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.89r
r0 = 0.88r
color = hs1_a5,hs1_a4,hs1_a3,hs1_a2,hs1_a1,hs1 #熱圖的不同配色方案
scale_log_base = 0.25 #均一化數(shù)據(jù)
</plot>
<plot> #以下都是重復(fù)的代碼,只不過組別不同
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.90r
r0 = 0.89r
color = hs2_a5,hs2_a4,hs2_a3,hs2_a2,hs2_a1,hs2
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs2" #用第五列id等于hs2的數(shù)據(jù)畫熱圖
show = no
</rule>
</rules>
</plot>
<plot>
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.91r
r0 = 0.90r
color = hs3_a5,hs3_a4,hs3_a3,hs3_a2,hs3_a1,hs3
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs3"
show = no
</rule>
</rules>
</plot>
<plot>
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.92r
r0 = 0.91r
color = hs4_a5,hs4_a4,hs4_a3,hs4_a2,hs4_a1,hs4
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs4"
show = no
</rule>
</rules>
</plot>
七森瘪、增加背景與線條
- 由于是給柱形圖增加線條,因此需要將下面的代碼放在柱形圖內(nèi)部的<plot>中
<axes> # 注意這里是axes是總block票堵,下面的axis是子block
show = data #只在有數(shù)據(jù)的地方加線條
thickness = 1
color = lgrey
<axis>
spacing = 0.1r #此處不是說線與線的間隙是0.1r扼睬,而是百分?jǐn)?shù)的意思,比如plot中你設(shè)置的r1=0.90r悴势,r0=0.95r窗宇,相差0.05r,那么spacing=0.1r就表示線與線之間的間隔是0.1*0.05=0.005r特纤,那么畫出來就應(yīng)該有11條線军俊,10個間隔。
</axis>
<axis>
spacing = 0.2r
color = grey
</axis> #其實(shí)到這里再加上</axes>就可以捧存,不過還可以指定一些線段粪躬,改變顏色
<axis> #這個axis可以不要,單純?yōu)榱烁淖冾伾?position = 0.5r #注意昔穴,這里的0.5依舊是百分?jǐn)?shù)镰官!,比如我想在0.925r顯示吗货,就可以用0.5r泳唠,如果沒有線,則會再增加一條
color = red
</axis>
<axis> #這個axis可以不要
position = 0.85r
color = green
thickness = 2
</axis>
</axes>
- 由于是給柱形圖增加背景宙搬,因此需要將下面的代碼放在柱形圖內(nèi)部的<plot>中
<backgrounds>
show = data
<background>
color = vvlgrey
</background>
<background>
color = vlgrey
y0 = 0.2r
y1 = 0.5r
</background>
<background>
color = lgrey
y0 = 0.5r
y1 = 0.8r
</background>
<background>
color = grey
y0 = 0.8r
</background>
</backgrounds>
八笨腥、增加文字
-
熱圖文件準(zhǔn)備,格式如下:
格式:4列勇垛、無表頭脖母、\t
分割。
第1列:染色體ID
第2列:在染色體上的起始位置
第3列:在染色體上的終止位置
第4列:基因ID或者其他任何文字均可
hs1 100425066 100487997 DBT
hs1 10381671 10402787 PGD
hs1 10432557 10434544 CORT
hs1 10443191 10455200 DFFA
hs1 10995265 11008135 TARDBP
hs1 110745401 110752069 HBXIP
hs1 111635006 111664707 CHIA
hs1 115113627 115124831 SIKE
hs1 11718728 11733414 AGTRAP
hs1 11840108 11841579 NPPB
<plot>
type = text
file = data/6/genes.labels2.txt
r1 = 0.8r
r0 = 0.7r
padding = 0p
rpadding = 0p
show_links = yes
link_dims = 0p,10p,40p,10p,10p #這個解釋起來比較復(fù)雜窥摄,它是控制連線各段的長度的
link_thickness = 1p
link_color = black
label_snuggle = yes
max_snuggle_distance = 5r #如果一個位點(diǎn)基因過密镶奉,可以調(diào)大數(shù)值,讓其分散
<rules>
<rule>
condition = var(value) =~ /a/i #正則表達(dá)式,表示含有a或A的labels被選中哨苛,賦予額外的參數(shù)
label_font = bold
flow = continue
</rule>
<rule>
condition = var(value) =~ /b/i
color = blue
</rule>
</rules>
</plot>
完整版代碼
#指定染色體文件(絕對/相對路徑+文件名)
karyotype = data/karyotype/karyotype.human.txt
chromosomes_units = 1000000 #定義最小單位鸽凶,即100萬bp為一個units,即1u = 100w建峭,后面刻度線都是基于此的操作玻侥,如果染 色體長度都在5kw以上,推薦用100w亿蒸,否則推薦用10w
chromosomes_display_default = no #先展示所有染色體
chromosomes = /hs[1234]$/ #然后使用正則表達(dá)式凑兰,選擇1234條染色體
<colors> #原來的顏色太丑了,重新定義顏色边锁,注意重新定義顏色都需要加上*號
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>
#-----------------------------------------------------------------------------------
#單一柱形圖
<plots>
<plot>
type = histogram #首先指明畫圖類型
file = data/5/segdup.hs1234.hist.txt
r1 = 0.88r #限制直方圖顯示的區(qū)域
r0 = 0.81r #限制直方圖顯示的區(qū)域
fill_color = vdgrey #給直方圖填充顏色
extend_bin = no #一般情況下姑食,柱形圖也會有完整的一圈,但設(shè)置了extend_bin = no則不會顯示沒有value的區(qū)域
<backgrounds>
# Show the backgrounds only for ideograms that have data
show = data
<background>
color = vvlgrey
</background>
<background>
color = vlgrey
y0 = 0.2r
y1 = 0.5r
</background>
<background>
color = lgrey
y0 = 0.5r
y1 = 0.8r
</background>
<background>
color = grey
y0 = 0.8r
</background>
</backgrounds>
</plot>
<plot>
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.89r
r0 = 0.88r
color = hs1_a5,hs1_a4,hs1_a3,hs1_a2,hs1_a1,hs1
scale_log_base = 0.25
</plot>
<plot>
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.90r
r0 = 0.89r
color = hs2_a5,hs2_a4,hs2_a3,hs2_a2,hs2_a1,hs2
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs2"
show = no
</rule>
</rules>
</plot>
<plot>
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.91r
r0 = 0.90r
color = hs3_a5,hs3_a4,hs3_a3,hs3_a2,hs3_a1,hs3
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs3"
show = no
</rule>
</rules>
</plot>
<plot>
type = heatmap
file = data/5/segdup.hs1234.heatmap.txt
r1 = 0.92r
r0 = 0.91r
color = hs4_a5,hs4_a4,hs4_a3,hs4_a2,hs4_a1,hs4
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs4"
show = no
</rule>
</rules>
</plot>
#堆疊柱形圖
<plot>
type = histogram
file = data/5/segdup.hs1234.stacked.txt #有四列value時茅坛,展示的時候?qū)⑺膫€value堆疊展示
r1 = 0.99r
r0 = 0.92r
fill_color = hs1,hs2,hs3,hs5 #數(shù)據(jù)中有四列value音半,因此定義填充色的時候,不像fill_color = vdgrey只定義一個贡蓖,要同時定義四種顏色曹鸠,hsN是不同的顏色
orientation = in #定義柱形圖向內(nèi)還是向外
extend_bin = no
<axes>
# Show axes only on ideograms that have data for this track
show = data
thickness = 1
color = lgrey
<axis>
spacing = 0.1r
</axis>
<axis>
spacing = 0.2r
color = grey
</axis>
<axis>
position = 0.5r
color = red
</axis>
<axis>
position = 0.85r
color = green
thickness = 2
</axis>
</axes>
</plot>
<plot>
type = text
file = data/6/genes.labels2.txt
r1 = 0.8r
r0 = 0.7r
padding = 0p
rpadding = 0p
show_links = yes
link_dims = 0p,10p,40p,10p,10p
link_thickness = 1p
link_color = black
label_snuggle = yes
max_snuggle_distance = 5r
<rules>
<rule>
condition = on(hs1)
show = no
</rule>
# Text can be tested with var(value).
<rule>
condition = var(value) =~ /a/i #正則表達(dá)式,表示含有a或A的labels被選中斥铺,賦予額外的參數(shù)
label_font = bold
flow = continue
</rule>
<rule>
condition = var(value) =~ /b/i
color = blue
</rule>
</rules>
</plot>
</plots>
<links>
<link>
file = data/5/segdup.txt #指定存放內(nèi)部連線數(shù)據(jù)的文件
radius = 0.7r #radius定義內(nèi)部連線區(qū)域的大小彻桃,表示從0-0.7r均為連線區(qū)域
bezier_radius = 0r #控制連線的彎曲程度,數(shù)值越大越彎曲晾蜘,范圍為0r-1.5r
crest = 1
#bezier_radius_purity = 0.5
#color = black_a4 #連線的顏色
thickness = 2 #連線的粗細(xì)
#ribbon = yes
#flat = yes
#stroke_thickness = 2
<rules> #用來做條件判斷的標(biāo)簽邻眷,圈圖各式各樣就在于rule的不同使用
<rule>
condition = var(intrachr) #condition表示條件,=后面為具體的動作笙纤。此為獲取在同一條染色體間的連線
show = no #規(guī)定在同一條染色體間的連線不展示
</rule>
<rule>
condition = 1 #condition = 1表示永遠(yuǎn)成立
color = eval(var(chr2)) #連線的顏色與對應(yīng)的染色體的顏色相同
flow = continue #當(dāng)上面的rule執(zhí)行完之后繼續(xù)執(zhí)行下面的rule耗溜,可以改為stop
</rule>
<rule>
condition = max(var(size1),var(size2)) < 2kb
show = no
</rule>
</rules>
</link>
</links>
<ideogram> #這是定義染色體相關(guān)參數(shù)的標(biāo)簽,以</ideogram>結(jié)尾省容,其中包括要設(shè)置的參數(shù)
<spacing> #定義染色體間隙寬度的標(biāo)簽抖拴,以</spacing>,其中包括要設(shè)置的參數(shù)
default = 0.005r #r指的是圓的周長腥椒,設(shè)置0.5%圓的周長為間隙
#<pairwise hsY;hs1> #可以用<pairwise>標(biāo)簽特別指定某些染色體的間隙(用的是ID)阿宅,因?yàn)樵诖蠖鄶?shù)文章中,都會留一 個大間隙笼蛛,來放label
#spacing = 20r #這里20r表示是相對default = 0.005r的20倍洒放,也就是10%的圓的周長
#</pairwise> #標(biāo)簽都要以</>結(jié)尾,
</spacing> #間隙定義結(jié)束滨砍,下面是對染色體樣式的調(diào)整
radius = 0.90r #輪廓的位置往湿,這里的r指的是半徑妖异,由圓心到圓周上范圍依次是0-1r,领追,超出部分將不再顯示他膳。
thickness = 20p #染色體整體的寬度,這里p指的是像素大小绒窑,也可以用r表示棕孙,1r=1500p
fill = yes #是否為染色體填充顏色,如果為yes些膨,自動用第七列定義的顏色著色
stroke_color = dgrey #染色體邊框的顏色蟀俊,支持多種格式的輸入,如:red或255,182,106
stroke_thickness = 2p #染色體邊框的粗細(xì)
show_label = yes #選擇yes表示要顯示label
label_font = default # 字體可以再 etc/fonts.conf 查看所有订雾,默認(rèn)為CMUBright-Roman
label_radius = dims(image,radius)-60p #使用dims()獲取圖像半徑的大小肢预,從而定位染色體標(biāo)簽的位置,也可以直接定義1.075r
label_size = 30 #字體的大小
label_parallel = yes #將Label的方向設(shè)置為與染色體平行
</ideogram> #定義染色體屬性的標(biāo)簽結(jié)束
show_ticks = yes #選擇yes表示要顯示刻度線
show_tick_labels = yes #選擇yes表示要顯示刻度線的數(shù)值
#定義刻度線的整體位置與形狀
<ticks> #刻度線的轉(zhuǎn)用標(biāo)簽葬燎,但凡是復(fù)數(shù)出現(xiàn)的误甚,其下面的參數(shù)都表示全局參數(shù),像下面的<tick>單數(shù)形式谱净,都表示局部參數(shù)
radius = 1r #刻度線的位置,1r為最遠(yuǎn)距離擅威,超過1r不再顯示
color = black
thickness = 2p
multiplier = 1e-6 #把刻度線標(biāo)簽(bp)縮小10萬倍顯示
format = %d #然后以整數(shù)的形式標(biāo)記在刻度線上
#定義小的刻度線壕探,且不顯示數(shù)值
<tick>
spacing = 5u #最開始我們定義1u = 1000000,表示每500w bp顯示一個小刻度線
size = 10p
show_label = no #由于小的刻度線展示出來太密集郊丛,因此我們no不展示李请,默認(rèn)不展示
</tick>
#定義大的刻度線,顯示數(shù)值
<tick>
spacing = 25u
size = 15p
show_label = yes
label_size = 20p
label_offset = 10p #設(shè)置數(shù)值和刻度線之間的間隔
format = %d
</tick>
</ticks>
#-----------------------------------------------------------------------------------
#下面是每次都要復(fù)制粘貼上去的厉熟,他們屬于circos自帶的配置文件导盅,用于調(diào)用顏色,距離揍瑟,報錯等信息
<image> #注意路徑
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>>
#官方?jīng)]有提到下面的文件白翻,但是沒有這個文件會報錯,所以還是加上去
<<include etc/housekeeping.conf>>
- Circos的配色绢片、布局都是門學(xué)問滤馍,真的感覺學(xué)無止境,下面一步要做的就是從我們自己的數(shù)據(jù)中如何整理出來官方給的格式底循。