circos 是一款perl 語言開發的畫圖軟件,提供了染色體相關數據的一種可視化方式。其制作的圖表精美,被科研工作者廣泛使用。Circos可以對染色體相關數據進行可視化,以每條染色體為一個扇區,組成一個圓形,如圖1所示。也可以對其他表格形式的數據進行可視化,以每個樣本作為扇區,以其上的特征作為圖形層次。如圖2所示,可以以物種作為扇區,展示物種間的關系。Circos圖最初以Perl語言開發,后來又有一些R包被開發用來繪制Circos圖。今天的學習主要學習Perl開發的Circos軟件。沒錯,下邊這兩個美圖都是Circos的結果了。
圖1
圖2
1.Circos軟件安裝
Circos軟件由Perl語言開發,所以使用circos之前需要安裝Perl語言才能執行circos。在Windows環境下推薦使用草莓Perl即Strawberry Perl,它的優勢是本身自帶了CPAN,方便后續安裝Perl的模塊。
從Strawberry Perl網站http://strawberryperl.com/下載64位msi執行文件,並安裝。安裝完畢,添加環境標量。在DOS窗口下,使用CPAN –i module 命令就可以進行模塊安裝。
從Circos網站http://circos.ca/下載軟件的壓縮文件,Circos在Windows下不需要安裝,直接解壓即可。把bin路徑添加環境變量,使用circos –module命令可以查看Circos所需要的Perl模塊,然后使用上述方法進行安裝即可。
測試:circos提供了example,在example/etc路徑下有circos.conf文件,運行命令為circos –conf circus.conf,運行此命令則會在該文件夾下生產circos.png和circos.svg,圖片如圖3所示。如果正確出圖,則說明軟件安裝正確。
圖3
2.軟件說明
Circos采用circos –conf circos.conf的方式運行,其中circos.conf為配置文件。Circos.conf文件中可以分為染色體配置和內圈圖形配置兩部分。染色體部分為圖形中最外圈的部分,為圖形的基本部分,該部分指定所需要繪制的染色體,扇區比例,每個扇區半徑大小等。內圈圖形部分指除了染色體外的其他圖形區域,在這部分需要使用<plots> </plots>進行限定。<plots> </plots>限定了所有的內圈圖形,每一層圖形需要再使用<plot></plot>進行限定。
2.1circos.conf
染色體配置部分如圖4所示。Karyotype指定染色體數據文件;chromosomes_units指定染色體長度單位,需要注意的是,染色體長度需要大於chromosomes_units,否則染色體扇區之間會產生空缺;chromosomes_display_default指定是否顯示默認,默認狀態下展示文件內所有染色體,顏色為黑色,每個扇區面積相等,且下邊對染色體的具體配置信息不起作用;chromosomes指定要顯示的染色體;chromosomes_scale指每個扇區占圓周的比例,例如chr1=0.5r,指染色體1占圓周的一半。chromosomes_radius指每個扇區的半徑,指定不同的半徑,可以使圖形展示出發射或內陷的狀態,起到內容強調的作用;文件中使用<<>>來指定需要調用的其他配置文件,如<<include ideogram.conf>>指定染色體條帶的配置信息。在circos.conf文件中,默認會出現<<include ideogram.conf>>、<<include ticks.conf>>、<image><<include etc/image.conf>></image>、<<include etc/colors_fonts_patterns.conf>> 、<<include etc/housekeeping.conf>>等,可以通過修改ideogram.conf和ticks.conf獲得想要的效果,其余幾個文件基本不用修改。
圖4
內圈圖形配置內容使用<plots></plots>限定,每個<plot></plot>限定每一層的圖形,如圖5所示。其中type指定該層圖形所展示的圖形類型,如histogram展示了柱狀圖;file指定要畫圖的數據文件,r1和r0分別指定圖形在圓圈內所占的半徑范圍,如r1=0.97r,r0=0.88r,即該層柱狀圖會出現在0.88半徑到0.97半徑之間的位置;thickness指定柱狀圖邊框的寬度,0p指定不顯示邊框;orientation指定柱狀圖方向向內/向外;
圖5
2.2 ideogram.conf
該配置文件對最外圈染色體進行配置,內容如圖6所示。設置內容由<ideogram></ideogram>進行限定。<spacing></spacing>設置了每個染色體條帶之間的間隔,設置的值為圓周的比例;radius設置染色體半徑占整個圖形的比例,可以通過設置不同的radius對圖形進行縮放;thickness指定染色體圖形邊框的寬度;fill指定是否填充顏色;stroke_color設置刻度顏色;stroke_thickness設置刻度寬度;show_ticks設置是否顯示刻度;show_label是否顯示標簽,即每個染色體的名字;label_font、label_radius、label_size分布顯示染色體名稱的字體,位置,大小等;label_parallel指定染色體名稱是否與染色體條帶平行。
圖6
2.3 數據文件
數據文件同樣分為外圈染色體數據和內圈圖形數據。外圈染色體數據基本格式如圖7所示。其中第三列、第四列、第七列為染色體名稱,第五列和第六列為該染色體長度,該長度在展示的時候會根據設置的單位長度進行刻度標注。
圖7
內圈圖形數據會根據不同的圖形類型有不同的格式,在此以柱狀圖和標注文字,即type= histogram和type=text為例。柱狀圖的數據文件如圖8所示。第一列為染色體名稱;第二列和第三列為柱子展示區間;第四列為柱子高度;第五列為柱子顏色。該數據展示的是在每個染色體對應三個柱子,每個柱子區間分別為0-300000,300001-600000,600001-100000。
圖8
標注文字的數據文件格式如圖9所示。第一列為染色體名稱,第二列和第四列為文字位置,第四列為文字內容。
圖9
2.4 軟件配色
軟件有一套自己的顏色系統,顏色及對應的名稱在解壓后的文件夾內,文件名字為gddiag.png,內容如圖10所示。該文件給出了可以使用的顏色,沒以后有一個名字,對應一個系列,每行又有多個子系列。可以用指定行名和子系列的方式使用顏色,例如rdylbu-3-div-3,指rdylbu- div所對應的行的第三個子系列的第三個顏色。知道了顏色及使用方式就可以在配置文件或數據文件中對圖形設置不同的顏色了。
圖10
3.結果
在本次學習中使用一個SNP相關的數據進行展示,分別對不同的文件進行配置,並進行繪圖,繪圖結果如圖11所示。
圖11