首先,下載Circos安裝包官網(wǎng)
安裝包
標(biāo)黃的為最新版本的circos。
最下面也還有一個(gè)簡(jiǎn)單的tutorials,為L(zhǎng)inux版本的tutorial,包含了很多種類型的數(shù)據(jù)配置示例,共有十個(gè)示例,有興趣的不妨了解一波。
Windows下移動(dòng)到某個(gè)自定義文件夾下解壓壓縮文件即可,接下來就可以通過PowerShell進(jìn)行測(cè)試,驗(yàn)證是否可以作圖。
# 進(jìn)入對(duì)應(yīng)的解壓文件夾下
PS D:\Software\circos\circos-0.69-6> cd .\example\
PS D:\Software\circos\circos-0.69-6\example> ls
目錄: D:\Software\circos\circos-0.69-6\example
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/6/20 13:32 data
d----- 2018/6/20 13:32 etc
-a---- 2017/6/17 7:36 3693061 circos.png
-a---- 2017/6/17 7:37 258048 circos.svg
-a---- 2017/6/4 9:05 1476 README
-a---- 2017/6/4 9:05 202 run
-a---- 2017/6/4 9:05 37130 run.out
# 測(cè)試作圖
PS D:\Software\circos\circos-0.69-6\example> ..\bin\circos -conf .\etc\circos.conf
# 會(huì)出現(xiàn)一大串狀態(tài)信息,這里顯示最后一行信息
debuggroup summary,timer 34.17s image took more than 30 s to generate. Component timings are shown above. To always show them, use -debug_group timer. To adjust the time cutoff, change debug_auto_timer_report in etc/housekeeping.conf.
Example plot
這里我看了教程[1] 選擇使用Strawberry Perl
日常安裝
隨后打開perl command line進(jìn)行模塊安裝
Perl command line
# 在命令行下輸入以下代碼
cpan Carp Clone Config::General Cwd Data::Dumper Digest::MD5 File::Basename File::Spec::Functions File::Temp FindBin Font::TTF::Font GD GD::Image Getopt::Long IO::File List::MoreUtils List::Util Math::Round Math::Trig Math::VecStat Memoize Params::Validate Pod::Usage POSIX Readonly Regexp::Common Statistics::Basic Storable Sys::Hostname Text::Balanced Text::Format Time::HiRes
靜靜的等待安裝結(jié)束, 隨后使用PS(以下都使用此代替power shell)檢查所需模塊是否都已經(jīng)安裝成功。
PS D:\Software\circos\circos-0.69-6\bin> ./circos -module
ok 1.23 Carp
ok 0.31 Clone
ok 2.60 Config::General
ok 3.36 Cwd
ok 2.131 Data::Dumper
ok 2.51 Digest::MD5
ok 2.82 File::Basename
ok 3.33 File::Spec::Functions
ok 0.22 File::Temp
ok 1.50 FindBin
ok 0.39 Font::TTF::Font
ok 2.46 GD
ok 0.2 GD::Polyline
ok 2.38 Getopt::Long
ok 1.15 IO::File
ok 0.33 List::MoreUtils
ok 1.23 List::Util
ok 0.01 Math::Bezier
ok 1.997 Math::BigFloat
ok 0.06 Math::Round
ok 0.08 Math::VecStat
ok 1.02 Memoize
ok 1.24 POSIX
ok 1.05 Params::Validate
ok 1.36 Pod::Usage
ok 1.03 Readonly
ok 2013031301 Regexp::Common
ok 2.50 SVG
ok 1.19 Set::IntSpan
ok 1.6611 Statistics::Basic
ok 2.30 Storable
ok 1.16 Sys::Hostname
ok 2.02 Text::Balanced
ok 0.59 Text::Format
ok 1.9724 Time::HiRes
PS D:\Software\circos\circos-0.69-6\bin>
此步操作沒有問題,接下來就是愉快的作圖時(shí)光!
老規(guī)矩還是anaconda
conda install -c bioconda circos
[1] : 最美不過遇見你_8090
安裝好Circos后我們看到作者推薦從quick start系列教程開始學(xué)起,首先我們對(duì)circos的作圖模式有一個(gè)了解,只有掌握作圖邏輯才可以真正理解circos。
本節(jié)學(xué)習(xí)使用最少的配置文件,先把圖片畫出來。隨后再對(duì)需要的參數(shù)進(jìn)行詳細(xì)的研究。
本最低配圖片將展示人類上色后的24條染色體,當(dāng)然隨后我們也可以加入一些額外參數(shù)使圖片更好看些。
# circos.conf
karyotype = data/karyotype/karyotype.human.txt
default = 0.005r
radius = 0.9r
thickness = 20bp
fill = yes
# 后面的內(nèi)容都是標(biāo)準(zhǔn)且必須的。每個(gè)circos作圖都會(huì)至少需要這些參數(shù),在需要的時(shí)候可以被修改,具體內(nèi)容請(qǐng)查看 etc/文件夾
# 在circos文件夾下
>
# 顏色定義
>
# 調(diào)試參數(shù)
>
karyotype文件一般來說都是需要的,它定義了染色體的名稱,大小,顏色。但是circos可以展示很多其它的數(shù)據(jù),所以該文件的參數(shù)也并不限定針對(duì)染色體。
在安裝好的circos/data/karyotype/文件夾下已經(jīng)自帶了數(shù)個(gè)常見生物的序列信息:人類,小鼠,大鼠,果蠅。
當(dāng)參數(shù)karyotype指定了一個(gè)文件的位置的時(shí)候,文件路徑可以是絕對(duì)路徑或者是相對(duì)路徑,相對(duì)路徑的意思就是如果在運(yùn)行目錄沒有找到指定文件,就會(huì)在circos文件夾下尋找,這也是為什么此處我們只需要指定data/karyotype的原因。
一旦circos有了染色體信息可以用來作圖的時(shí)候,核型模式圖信息就會(huì)被需要來告訴circos在哪里進(jìn)行標(biāo)記。
ideogram區(qū)塊的參數(shù)可以指定,例如 radius, thickness, fill
,除此之外,
參數(shù)也可以指定兩條染色體之間的間隔。
將以上代碼保存為circos.conf,powershell進(jìn)入該文件所在位置,調(diào)用circos即可作圖;
PS D:\Software\circos\circos-0.69-6\my_circos> ..\bin\circos -conf .\circos.conf
debuggroup summary 0.16s welcome to circos v0.69-6 31 July 2017 on Perl 5.014002
debuggroup summary 0.16s current working directory D:/Software/circos/circos-0.69-6/my_circos
debuggroup summary 0.16s command D:\Software\circos\circos-0.69-6\bin\circos.exe -conf .\circos.conf
debuggroup summary 0.16s loading configuration from file .\circos.conf
debuggroup summary 0.16s found conf file .\circos.conf
debuggroup summary 0.49s debug will appear for these features: output,summary
debuggroup summary 0.49s bitmap output image ./.\circos.png
debuggroup summary 0.49s SVG output image ./.\circos.svg
debuggroup summary 0.49s parsing karyotype and organizing ideograms
debuggroup summary 0.58s karyotype has 24 chromosomes of total size 3,095,677,436
debuggroup summary 0.58s applying global and local scaling
debuggroup summary 0.59s allocating image, colors and brushes
debuggroup summary 6.69s drawing 24 ideograms of total size 3,095,677,436
debuggroup summary 6.69s drawing highlights and ideograms
debuggroup output 6.73s generating output
debuggroup output 7.10s created PNG image ./.\circos.png (84 kb)
debuggroup output 7.12s created SVG image ./.\circos.svg (6 kb)
PS D:\Software\circos\circos-0.69-6\my_circos>
結(jié)果如下:
結(jié)果
簡(jiǎn)單進(jìn)階:添加坐標(biāo)和標(biāo)簽
在此章,我們學(xué)習(xí)將在原有圖形基礎(chǔ)上添加標(biāo)簽和刻度。為了達(dá)到這個(gè)目的,我們需要在 ideogram
分區(qū)添加label參數(shù),并增添 ticks
分區(qū)。
label參數(shù)格式有很多,這里展示最少的需要的變量:
default = 0.005r
# ideogram的位置設(shè)定,顏色填充設(shè)定的,輪廓設(shè)定
radius = 0.90r
thichness = 20bp
fill = yes
stroke_color = dgrey
strock_thickness = 2p
# 標(biāo)簽最少參數(shù)設(shè)定示例
show_label = yes
# 支持字體可以在etc/fonts.conf文件中查看
label_font = default
label_radius = 1R + 75p
label_size = 30
label_parallel = yes
其中l(wèi)abel_radius參數(shù)可以自己設(shè)定為相對(duì)位置或者是絕對(duì)位置:
# 以半徑為單位
label_radius = 1.1r
label_radius = 0.8r
# 絕對(duì)位置
label_radius = 500p
# 相對(duì)加上絕對(duì)位置
label_radius = 1r + 100p
# 使用圖像大小來界定
label_radius = dims(image,radius) - 50p
# 使用核型模式圖來界定
label_radius = dims(ideogram,radius_outer) + 50p
label_radius = dims(ideogram,radius_inner) - 50p
刻度一般都是成組出現(xiàn)的,你可以指定它們的相對(duì)位置和絕對(duì)位置,最低配的參數(shù)如下:
show_ticks = yes
show_tick_labels = yes
radius = 1r
color = black
thickness = 2p
# 刻度標(biāo)簽
multiplier = 1e-6
# %d = 整數(shù)
# %f = 浮點(diǎn)數(shù)
# %.1f = 指定小數(shù)點(diǎn)后保留一位
# %.2f = 指定小數(shù)點(diǎn)后保留兩位
format = %d
spacing = 5u
size = 10bp
spacing = 25u
size = 15p
show_label = yes
label_size = 20p
label_offset = 10p
format = %d
我們可以看到這里指定了兩個(gè)
,是因?yàn)闀?huì)根據(jù)ideogram的情況自動(dòng)選擇最優(yōu)的展現(xiàn)方式。
隨后我們將這兩段代碼分別保存成 ideogram.conf
和 ticks.conf
文件,修改之前的circos.conf,將ideogram作為單獨(dú)模塊隔離出來同時(shí)指定其它模塊的作圖單位 chromsomes_units
參數(shù),那么circos.conf會(huì)變成:
karyotype = data/karyotype/karyotype.human.txt
chromosomes_units = 1000000
>
>
>
>
>
OK,一切搞定后再次調(diào)用powershell來作圖:
PS D:\Software\circos\circos-0.69-6\my_circos> ..\bin\circos -conf .\circos.conf
debuggroup summary 0.15s welcome to circos v0.69-6 31 July 2017 on Perl 5.014002
debuggroup summary 0.15s current working directory D:/Software/circos/circos-0.69-6/my_circos
debuggroup summary 0.15s command D:\Software\circos\circos-0.69-6\bin\circos.exe -conf .\circos.conf
debuggroup summary 0.15s loading configuration from file .\circos.conf
debuggroup summary 0.16s found conf file .\circos.conf
debuggroup summary 0.32s debug will appear for these features: output,summary
debuggroup summary 0.32s bitmap output image ./.\circos.png
debuggroup summary 0.32s SVG output image ./.\circos.svg
debuggroup summary 0.32s parsing karyotype and organizing ideograms
debuggroup summary 0.40s karyotype has 24 chromosomes of total size 3,095,677,436
debuggroup summary 0.41s applying global and local scaling
debuggroup summary 0.42s allocating image, colors and brushes
debuggroup summary 2.07s drawing 24 ideograms of total size 3,095,677,436
debuggroup summary 2.07s drawing highlights and ideograms
debuggroup output 2.53s generating output
debuggroup output 2.94s created PNG image ./.\circos.png (271 kb)
debuggroup output 2.94s created SVG image ./.\circos.svg (123 kb)
PS D:\Software\circos\circos-0.69-6\my_circos>
現(xiàn)在我們就有標(biāo)記好的圖片了:
本章節(jié)討論如何對(duì)已經(jīng)展示出來的元素進(jìn)行調(diào)整。
默認(rèn)是展示所有的染色體,順序是按照文件里面的順序。但是可以通過 chromsomes_display_default
參數(shù)來設(shè)定展示哪部分染色體:
chromosomes_display_default = no
chromosomes = hs1;hs2;hs3;h4
# 正則也是支持的哦
chromosomes = /hs[1-4]$/
# 也可以結(jié)合使用
chromosomes = /hs[1-4]$/;hs10;hs11
# “-”號(hào)代表著不顯示某個(gè)染色體
chromosomes = /hs[1-4]$/;-hs3
# 注意是使用;分號(hào)來作為分隔符的
設(shè)定染色體的大小有相對(duì)指定和絕對(duì)指定兩種模式。
首先來看絕對(duì)指定:
# hs1 0.25x zoom
# hs2 2.00x zoom
chromosomes_scale = hs1=0.25,hs2=2.0
相對(duì)指定就是以相對(duì)半徑為單位了
# hs1 25% of figure
# hs2 50% of figure
chromosomes_scale = hs1=0.25r,hs2=0.50r
也可以指定多少個(gè)染色體分享多少比例的圖片
# hs1,hs2 distributed evenly within 50% of figure (each is 25%)
chromosomes_scale = /hs[12]/=0.5rn
或者指定大家一塊均分
# 所有的的ideogram均分整張圖片的比例
chromosomes_scale = /./=1rn
默認(rèn)染色體的排列順序呢,是按照順時(shí)針方向的,但是可以通過在
模塊里面的 angle_orientation
參數(shù)來設(shè)置:
angle_orientation* = counterclockwise
# * 號(hào)的意義在于覆蓋一個(gè)參數(shù)
>
也可以指定特定的染色體的排列順序,使用 chromosomes-reverse
參數(shù)
chromosomes-reverse = /hs[234]/
這里沒有加入原字符$是沒有關(guān)系,因?yàn)檫@里只指定了畫1234染色體,當(dāng)然嚴(yán)謹(jǐn)起見最好還是習(xí)慣性的加上
默認(rèn)的顏色設(shè)定來自于karyotype文件,可以通過 charomsomes_color
參數(shù)設(shè)定
chromosomes_color = hs1=red,hs2=orange,hs3=green,hs4=blue
默認(rèn)的參數(shù)是將所有的染色體以一樣的徑向位置排列的,但是在
模塊里面的 radial
參數(shù)可以改變所有染色體的徑向位置,或者通過 chromosomes_radius
參數(shù)改變單個(gè)或者多個(gè)染色體的徑向位置
chromosomes_radius = hs4:0.9r
老規(guī)矩,把所有代碼保存為conf文件,調(diào)用powershell作圖:
# circos.conf
karyotype = data/karyotype/karyotype.human.txt
chromosomes_units = 1000000
# 設(shè)定作圖染色體防微
chromosomes_display_default = no
chromosomes = /hs[1-4]$/
# 設(shè)定縮放比例
chromosomes_scale = hs1=0.5r,/hs[234]/=0.5rn
# 設(shè)置排列順序
chromosomes_reverse = /hs[234]/
# 設(shè)置填充顏色
chromosomes_color = hs1=red,hs2=orange,hs3=green,hs4=blue
# 設(shè)置徑向位置
chromosomes_radius = hs4:0.9r
# 調(diào)用默認(rèn)文件補(bǔ)齊其余參數(shù)
>
>
>
>
>
# ideogram.conf
default = 0.005r
radius = 0.90r
thickness = 20p
fill = yes
stroke_color = dgrey
stroke_thickness = 2p
show_label = yes
# see etc/fonts.conf for list of font names
label_font = default
label_radius = 1.075r
# 假如想要標(biāo)簽盡可能靠近圖像,使用下一行代碼
# label_radius = dims(image,radius) - 60p
label_size = 30
label_parallel = yes
# ticks.conf
show_ticks = yes
show_tick_labels = yes
radius = 1r
color = black
thickness = 2p
multiplier = 1e-6
format = %d
spacing = 5u
size = 10p
spacing = 25u
size = 15p
show_label = yes
label_size = 20p
label_offset = 10p
format = %d
PS D:\Software\circos\circos-0.69-6\my_circos> ..\bin\circos -conf .\circos.conf
debuggroup summary 0.31s welcome to circos v0.69-6 31 July 2017 on Perl 5.014002
debuggroup summary 0.31s current working directory D:/Software/circos/circos-0.69-6/my_circos
debuggroup summary 0.32s command D:\Software\circos\circos-0.69-6\bin\circos.exe -conf .\circos.conf
debuggroup summary 0.32s loading configuration from file .\circos.conf
debuggroup summary 0.32s found conf file .\circos.conf
debuggroup summary 0.50s debug will appear for these features: output,summary
debuggroup summary 0.50s bitmap output image ./.\circos.png
debuggroup summary 0.50s SVG output image ./.\circos.svg
debuggroup summary 0.50s parsing karyotype and organizing ideograms
debuggroup summary 0.60s karyotype has 24 chromosomes of total size 3,095,677,436
debuggroup summary 0.60s applying global and local scaling
debuggroup summary 0.63s allocating image, colors and brushes
debuggroup summary 2.68s drawing 4 ideograms of total size 881,626,704
debuggroup summary 2.68s drawing highlights and ideograms
debuggroup output 2.83s generating output
debuggroup output 3.19s created PNG image ./.\circos.png (132 kb)
debuggroup output 3.20s created SVG image ./.\circos.svg (34 kb)
PS D:\Software\circos\circos-0.69-6\my_circos>
到此,入門就算告一段落,后面就是根據(jù)自己需求往上面添加各種tracks以及選擇各種炫酷的效果啦。