一般基因組文章都會有下面這種酷炫圖,用來描述基因組的基因密度分布,轉(zhuǎn)座子的密度分布,和其他物種或者多倍體的多套染色體間的共線性關(guān)系,以及其他各種你只要測序就能加上的信息,比如說你要是測了ATAC-seq,加上全基因組開放狀態(tài),要是測了多個組織,多個時期的RNA-seq,那就加上熱圖展現(xiàn)這種變化關(guān)系。

當(dāng)然除了基因組文章,其他類型的文章也可以考慮這種圖。接下來我將會寫一些列教程(可能有視頻),通過教別人學(xué)Circos的方式來自學(xué)Circos。
環(huán)境配置
建議在Linux環(huán)境下配置Circos,之后只要用conda就能配置好分析環(huán)境
# 安裝
## circos
conda create -c bioconda -n circos circos
測試軟件安裝結(jié)果
# 測試circos
conda activate circos
# 確認(rèn)安裝
circos -V
# 顯示如下
# circos | v 0.69-8 | 15 Jun 2019 | Perl 5.026002
可以從http://circos.ca/software/download/下載官方的教程文件,分別是
處理過程
Circos依賴于一些列的配置文件,用來定義復(fù)雜圖形的各個部分,最終加工成圖形。
因此,用Circos畫圖是一個不斷增添內(nèi)容的過程,你要不斷根據(jù)輸出結(jié)果來調(diào)整輸入?yún)?shù)。
并且整個分析中,你還要擁有過關(guān)的數(shù)據(jù)預(yù)處理的能力,這是因為Circos不是數(shù)據(jù)處理工具,它只是展示你已有的數(shù)據(jù)。

快速開始
不管怎么樣,先快速繪制出一個Circos圖再說。
果子老師說過,我們不是先成為了老司機(jī)才開車,而是開車多了才成為了老司機(jī)。
第一步,先新建一個文件夾,用于存放本次分析的所有數(shù)據(jù)和配置文件
mkdir -p my_first_circos && cd my_first_circos
然后用vim karyotype.tair10.txt編輯文本,新增如下內(nèi)容
chr - chr1 chr1 0 30427617 black
chr - chr2 chr2 0 19698289 black
chr - chr3 chr3 0 23459830 black
chr - chr4 chr4 0 18585056 black
chr - chr5 chr5 0 26975502 black
之后創(chuàng)建一個circos.conf文件,用于增加各類配置參數(shù)
touch circos.conf
用vim circos.conf,增加我們的第一條記錄,染色體信息
karyotype = karyotype.tair10.txt
然而要想真正的出圖,還需要增加至少以下配置語句才行
<ideogram>
<spacing>
default = 0.005r
</spacing>
radius = 0.90r
thickness = 20p
fill = yes
stroke_color = dgrey
stroke_thickness = 2p
</ideogram>
<image>
<<include etc/image.conf>>
</image>
<<include etc/colors_fonts_patterns.conf>>
<<include etc/housekeeping.conf>>
在當(dāng)前路徑下運(yùn)行circos -conf circos.conf, 最終效果圖如下

雖然圖比較丑,但是至少我們成功運(yùn)行了人生第一次的circos, 這就相當(dāng)于買了一套毛坯房,后面要做的事情就是不斷裝修。
比如說,我們至少可以讓不同染色體擁有不同的顏色,修改之前的karyotype.tair10.txt中的最后一列
chr - chr1 chr1 0 30427617 chr1
chr - chr2 chr2 0 19698289 chr2
chr - chr3 chr3 0 23459830 chr3
chr - chr4 chr4 0 18585056 chr4
chr - chr5 chr5 0 26975502 chr5
在當(dāng)前路徑下運(yùn)行circos -conf circos.conf, 最終效果圖如下

這就引出了第一個知識點,配色。
為了實現(xiàn)配色,需要circos.conf文件了有一個和配色有關(guān)的語句
<<include etc/colors_fonts_patterns.conf>>
這里<<>>表示通過相對路徑的方式加載另外一個配置文件,它的實際路徑是和circos所在目錄同級的etc,可用下面語句看到colors_fonts_patterns.conf的內(nèi)容
circos_path=$(dirname `which circos`)
less ${circos_path%bin}/etc/colors_fonts_patterns.conf
你會發(fā)現(xiàn),這個文件里還嵌套其他的配置文件。最終通過層層排查,你才知道etc/colors.ucsc.conf才是實際定義我們填寫的顏色名的文件,而顏色的定義如下:
chr1 = 153,102,0
chr2 = 102,102,0
chr3 = 153,153,30
chr4 = 204,0,0
chr5 = 255,0,0
還有一個問題,為什么這里用的是兩個尖括號<<,而不是一個尖括號<呢?這是因為<已經(jīng)被用于分隔不同的語句塊,如下語句就表示etc/image.conf里的配置信息是用來調(diào)整和image有關(guān)的配置,而不是去調(diào)整ideogram的配置。
<image>
<<include etc/image.conf>>
</image>
以上是快速開始部分,后續(xù)將會在此基礎(chǔ)上,做出發(fā)表級別的圖。