花了不到一個月的時間践磅,斷斷續(xù)續(xù)的把小駱駝的90%內(nèi)容過了一遍。在學習perl之前字管,知道了circos這個軟件亥至,可以幫助我們畫一些非常高大上的圈圈圖~但是這個軟件是基于perl的,現(xiàn)在大體了解一些perl后,決定還是學習一下circos的使用。畢竟畫出來的圖真的很漂亮抽活。。帆赢。比如:
(一)什么是circos?
Circos是一個可視化數(shù)據(jù)和信息的軟件包。它以圓形layout可視化數(shù)據(jù)砰左,這使得Circos非常適合探索objects或位置之間的關系匿醒。Circos是創(chuàng)建高質(zhì)量信息圖形和插圖的理想選擇〔迹可以很好地控制圖形中的每個元素。
Circos很靈活溉痢。雖然最初設計用于基因組數(shù)據(jù)可視化僻造,但它可以從任何領域的數(shù)據(jù)創(chuàng)建圖形,從基因組學到可視化遷移到數(shù)學藝術孩饼。如果你有需要描述一個或多個尺度的關系或多層注釋的數(shù)據(jù)髓削,那么Circos就非常適合進行可視化。
Circos可以自動化镀娶。它由純文本配置文件控制立膛,這使得它很容易集成到數(shù)據(jù)采集、分析和報告的pipeline中(數(shù)據(jù)pipeline是一個多步驟的過程,其中數(shù)據(jù)由多個獨立的工具分析宝泵,每個工具將其輸出作為下一個步驟的輸入傳遞)好啰。
(二)circos的安裝
這里我只在ubuntu里進行安裝,更多操作系統(tǒng)平臺的安裝方法可以看官方教程:here
下載circos:http://circos.ca/software/download/
這里我下載的是0.69版的:
$ wget http://circos.ca/distribution/circos-0.69.tgz
$ tar xvfz circos-0.69.tgz
$ ln -s circos-0.69 current
$ ll
total 30848
drwxr-xr-x 1 yanfang yanfang 4096 Nov 10 14:24 ./
drwxr-xr-x 1 yanfang yanfang 4096 Nov 10 14:20 ../
drwxr-xr-x 1 yanfang yanfang 4096 Nov 10 14:24 circos-0.69/
-rw-r--r-- 1 yanfang yanfang 31574696 Feb 24 2016 circos-0.69.tgz
lrwxrwxrwx 1 yanfang yanfang 11 Nov 10 14:24 current -> circos-0.69/
我使用的是ubuntu20.04儿奶,還需要安裝:
$ sudo apt-get install libgd-dev #這個軟件包的名字在不同的ubuntu版本里對應的名字不一樣框往,安裝前要看一下,不然會報錯
#加入環(huán)境變量
$ export PATH=/home/yanfang/circos/circos-0.69/bin:$PATH
$ . ~/.bashrc
$ which circos
/home/yanfang/circos/circos-0.69/bin/circos
$ echo $PATH #檢查PATH里是否已經(jīng)成功添加了circos
/home/yanfang/circos/circos_0.69/circos-0.69/bin:.........
檢查module:
$ cd current
$ pwd
/home/yanfang/circos/current
$ bin/circos -modules
ok 1.38 Carp
ok 0.42 Clone
ok 2.63 Config::General
ok 3.75 Cwd
ok 2.167 Data::Dumper
ok 2.55 Digest::MD5
ok 2.85 File::Basename
ok 3.75 File::Spec::Functions
ok 0.2304 File::Temp
ok 1.51 FindBin
ok 0.39 Font::TTF::Font
ok 2.71 GD
ok 0.2 GD::Polyline
ok 2.49 Getopt::Long
ok 1.16 IO::File
ok 0.428 List::MoreUtils
ok 1.52 List::Util
ok 0.01 Math::Bezier
ok 1.999806 Math::BigFloat
ok 0.07 Math::Round
ok 0.08 Math::VecStat
ok 1.03_01 Memoize
ok 1.76 POSIX
ok 1.29 Params::Validate
ok 1.69 Pod::Usage
ok 2.05 Readonly
ok 2017060201 Regexp::Common
ok 2.84 SVG
ok 1.19 Set::IntSpan
ok 1.6611 Statistics::Basic
ok 2.62 Storable
ok 1.20 Sys::Hostname
ok 2.03 Text::Balanced
ok 0.59 Text::Format
ok 1.976 Time::HiRes
(三)下載示例數(shù)據(jù)以及腳本
下載示例數(shù)據(jù)闯捎,還是在上面下載頁面里:
解壓后有這些文件:
其中data文件夾里包含了各種的示例數(shù)據(jù)椰弊,tutorials文件夾里包含了各種的腳本。(因為circos是基于perl的軟件瓤鼻,而perl是基于腳本的編程語言秉版,所以不同于其他軟件,circos是需要腳本的茬祷,不是光有數(shù)據(jù)就可以的清焕。)
(四)畫一個最最基本的圈圈
可以先用tutorial里的1文件夾里的1子文件夾的腳本作為例子,體會一下牲迫。
首先看一下腳本里都有什么:
# 需要繪制的數(shù)據(jù)耐朴,這里是人類基因組,這個數(shù)據(jù)可以在我們前面下載好的data文件夾里查看
karyotype = data/karyotype/karyotype.human.txt
<ideogram>
# <ideogram>定義繪制數(shù)據(jù)的片段的位置盹憎、大小筛峭、標簽和其他屬性。這些片段通常是染色體陪每,但可以是任意的整軸(整數(shù)的軸)影晓。
<spacing>
#ideograms里的間距。后綴“r”表示相對值檩禾。它相對于圓周長而言的(例如間距是圓周長的0.5%)挂签。
default = 0.005r
#你可以增加某兩個片段的間距,比如用下面的代碼:
#<pairwise hsY;hs1>
#spacing = 20r
#</pairwise>
</spacing>#一般block都是成對的名字盼产,結尾用斜杠+名字代表這個block的結尾
# ideograms內(nèi)的徑向位置饵婆。這個值通常是相對的(“r”后綴)。
radius = 0.90r
# ideograms的厚度, 它可以是絕對的(如像素戏售,“p”后綴)或相對的(“r”后綴)侨核。相對而言,它是圖像半徑的一部分灌灾。
thickness = 20p
# Ideograms可以按 filled, outlined, 或both繪制搓译。填充時,顏色將取自核型文件中(karyotype file)的最后一個字段锋喜,或者由chroomes_colors設置些己。顏色名稱在http://www.circos.ca/documentation/tutorials/configuration/configuration_files里討論
# 當stroke_thickness=0p 或參數(shù)丟失, the ideogram是沒有輪廓的
fill = yes
stroke_color = dgrey
stroke_thickness = 2p
</ideogram>
################################################################
#剩余的內(nèi)容是標準的和必需的。它是從Circos中的默認文件中導入的。
#下面這些應該出現(xiàn)在每個Circos的conf文件中段标,并根據(jù)需要被覆蓋涯冠。最好使用相對路徑來設置這些文件。這樣怀樟,如果在當前目錄下沒有找到文件功偿,就會從Circos distribution中提取。
<image>
# Included from Circos distribution.
<<include etc/image.conf>>
</image>
# RGB/HSV/LCH顏色定義往堡,顏色列表械荷,字體位置,填充模式虑灰。包含在 Circos distribution里.
#在舊版本的Circos中吨瞎,顏色、字體和圖案都是單獨包含的∧赂溃現(xiàn)在颤诀,這是通過一個中心文件完成的。確保沒有重復導入這些值对湃。
# *** DO NOT DO THIS ***
# <colors>
# <<include etc/colors.conf>>
# <colors>
# **********************
<<include etc/colors_fonts_patterns.conf>>
# Debugging, I/O an dother system parameters崖叫,Included from Circos distribution.
<<include etc/housekeeping.conf>>
上面的腳本是最最基本的一個circos繪制基因組的腳本(conf文件),它繪制了基因組的骨架(就是一個圈)拍柒。那么有了腳本心傀,如何運行?
一般的格式是:
$ perl circos的PATH路徑 -conf conf文件所在的位置 -outputfile 輸出文件名 -outputdir 輸出在哪個文件夾
比如我運行的代碼拆讯,我設置的是輸出圖在當前文件夾脂男,輸出的文件名是practice1_1.png:
$ perl /home/yanfang/circos/circos_0.69/circos-0.69/bin/circos -conf ./circos.conf -outputfile practice1_1.png -outputdir ./
然后會彈出很多行信息,最后會告訴你圖存在哪個文件夾里的:
......這里省略很多行
debuggroup output 2.30s created PNG image ./practice1_1.png (75 kb)
debuggroup output 2.31s created SVG image ./practice1_1.svg (13 kb)
打開你的當前文件夾种呐,會發(fā)現(xiàn)多出兩個圖(兩種不同格式的):
打開看一下宰翅,就可以看到我們剛才使用示例腳本畫出的染色體骨架了:
circos的軟件官網(wǎng)還有很多詳細的教程,后續(xù)會繼續(xù)學習并分享~