一般基因組文章都會有下面這種酷炫圖,用來描述基因組的基因密度分布,轉座子的密度分布,和其他物種或者多倍體的多套染色體間的共線性關系,以及其他各種你只要測序就能加上的信息,比如說你要是測了ATAC-seq,加上全基因組開放狀態,要是測了多個組織,多個時期的RNA-seq,那就加上熱圖展現這種變化關系。
當然除了基因組文章,其他類型的文章也可以考慮這種圖。接下來我將會寫一些列教程(可能有視頻),通過教別人學Circos的方式來自學Circos。
環境配置
建議在Linux環境下配置Circos,之后只要用conda就能配置好分析環境
# 安裝
## circos
conda create -c bioconda -n circos circos
測試軟件安裝結果
# 測試circos
conda activate circos
# 確認安裝
circos -V
# 顯示如下
# circos | v 0.69-8 | 15 Jun 2019 | Perl 5.026002
可以從http://circos.ca/software/download/下載官方的教程文件,分別是
處理過程
Circos依賴于一些列的配置文件,用來定義復雜圖形的各個部分,最終加工成圖形。
因此,用Circos畫圖是一個不斷增添內容的過程,你要不斷根據輸出結果來調整輸入參數。
并且整個分析中,你還要擁有過關的數據預處理的能力,這是因為Circos不是數據處理工具,它只是展示你已有的數據。
快速開始
不管怎么樣,先快速繪制出一個Circos圖再說。
果子老師說過,我們不是先成為了老司機才開車,而是開車多了才成為了老司機。
第一步,先新建一個文件夾,用于存放本次分析的所有數據和配置文件
mkdir -p my_first_circos && cd my_first_circos
然后用vim karyotype.tair10.txt
編輯文本,新增如下內容
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
之后創建一個circos.conf
文件,用于增加各類配置參數
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>>
在當前路徑下運行circos -conf circos.conf
, 最終效果圖如下
雖然圖比較丑,但是至少我們成功運行了人生第一次的circos, 這就相當于買了一套毛坯房,后面要做的事情就是不斷裝修。
比如說,我們至少可以讓不同染色體擁有不同的顏色,修改之前的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
在當前路徑下運行circos -conf circos.conf
, 最終效果圖如下
這就引出了第一個知識點,配色。
為了實現配色,需要circos.conf
文件了有一個和配色有關的語句
<<include etc/colors_fonts_patterns.conf>>
這里<<>>
表示通過相對路徑的方式加載另外一個配置文件,它的實際路徑是和circos
所在目錄同級的etc
,可用下面語句看到colors_fonts_patterns.conf
的內容
circos_path=$(dirname `which circos`)
less ${circos_path%bin}/etc/colors_fonts_patterns.conf
你會發現,這個文件里還嵌套其他的配置文件。最終通過層層排查,你才知道etc/colors.ucsc.conf
才是實際定義我們填寫的顏色名的文件,而顏色的定義如下:
chr1 = 153,102,0
chr2 = 102,102,0
chr3 = 153,153,30
chr4 = 204,0,0
chr5 = 255,0,0
還有一個問題,為什么這里用的是兩個尖括號<<
,而不是一個尖括號<
呢?這是因為<
已經被用于分隔不同的語句塊,如下語句就表示etc/image.conf
里的配置信息是用來調整和image
有關的配置,而不是去調整ideogram
的配置。
<image>
<<include etc/image.conf>>
</image>
以上是快速開始部分,后續將會在此基礎上,做出發表級別的圖。