寫在寫在前面的前面
我不喜歡調(diào)用外部程序雄可,如果是簡(jiǎn)單的事情粗截。我覺得應(yīng)該用最簡(jiǎn)單的方式來實(shí)現(xiàn)巍棱。如果你只是想畫一個(gè)簡(jiǎn)單的Circos圖含滴,perl氢拥?不用的虽另。R暂刘?不用的。網(wǎng)頁捂刺?不用的谣拣。復(fù)雜的配置文件?一樣不用的族展。
你只需要一個(gè)體積為 4,000KB+ 的 TBtools森缠。
寫在前面
當(dāng)矩形無法滿足你的時(shí)候,那么就掰彎他仪缸。
為了在一個(gè)中午的時(shí)間內(nèi)寫一個(gè)所有人都可以秒速掌握的Circos圖繪制工具贵涵,事實(shí)上,我早已做好準(zhǔn)備恰画。詳細(xì)可見公眾號(hào)的歷史消息宾茂。
前期的準(zhǔn)備,大體包括:
- JIGplot中SubPanel的掰彎
- 文本在笛卡爾坐標(biāo)系中的重疊以及在極坐標(biāo)系中的重疊處理(用了很長(zhǎng)時(shí)間拴还,想明白一個(gè)簡(jiǎn)答的處理方式)
- 一個(gè)繪制Circos的需求
三者兼?zhèn)淇缜纾谑窃谇皟商?strong>學(xué)院每周一停電的中午,我就寫出了這個(gè)工具片林。工具是寫完了端盆,然而能讓這個(gè)工具實(shí)現(xiàn)價(jià)值的數(shù)據(jù),目前還在難產(chǎn)费封。我更新到社區(qū)爱谁,嗯。孝偎。。大體收獲了幾個(gè)圖凉敲,但目前似乎并沒有讓我驚艷的衣盾。
索性,就寫上一貼爷抓。我想試試看势决,
是否有可能讓Circos圖,正如基因家族分析一樣蓝撇,變得任何人都輕易掌握和完成果复?。
進(jìn)入主題
TBtools的所有工具渤昌,面向的都是絕對(duì)的生物學(xué)背景虽抄,所以每一個(gè)輸入格式的考量走搁,都會(huì)盡可能地考慮到容易獲得或者容易整理。接下來逐點(diǎn)說明輸入文件格式迈窟,同時(shí)私植,給出一個(gè)所有人必然能直接重復(fù)出來的結(jié)果。
TBtools的Circos工具主界面如下
接下來逐點(diǎn)說明輸入
1.必須骨架文件车酣,比如染色體長(zhǎng)度文件曲稼,格式為,注意文本文件湖员,制表符分隔
-
可選文件贫悄,比如基因展示在染色體的圈圖上,格式為娘摔,最后一列的顏色R,G,B值是可選的
3.可選文件窄坦,比如展示一些區(qū)域之間的關(guān)聯(lián)關(guān)系,如共線性基因或者大片段區(qū)域晰筛,如嫡丙,顏色是可選的,開始是#號(hào)的行读第,會(huì)被忽略
點(diǎn)擊Add就可以增加Track曙博,Track你是可以隨意增加,任何數(shù)目怜瞒,直到你開心父泳。點(diǎn)擊一次,出現(xiàn)一個(gè)Track的配置信息吴汪,
4.一個(gè)Track要對(duì)應(yīng)一個(gè)文件(一個(gè)文件可以用多次惠窄,在不同的Track)
Track的類型有四種
- Line 線圖
- Bar 柱形圖
- Heatmap 熱圖
- Tile 畫矩形(在極坐標(biāo)系下就變成Ring),主要是做注釋
前三種Track的輸入數(shù)據(jù)很簡(jiǎn)單漾橙,區(qū)域帶上一個(gè)值
Tile的輸入數(shù)據(jù)有所不同杆融,最后一列不是值,而是一個(gè)RGB字符串霜运,如
多選框脾歇,設(shè)置Track的類型
主要是針對(duì)Tile以外的Track,設(shè)置無重疊滑窗之后匯總信息的模式淘捡,比如Sum藕各,就是將一個(gè)區(qū)域的所有值加和,Mean就是取平均
設(shè)置滑窗的寬度焦除,一般是10 000
其他四個(gè)摁鈕激况,點(diǎn)擊就是設(shè)置一些顏色
注意One Color Two Color Three Color 中
而One Color 對(duì)于除Tile外的所有Track的顏色生效
另外兩個(gè)Color 只對(duì)熱圖生效,用于生成熱階
寫的太多,不如一個(gè)示例操作
示例
下面的示例只以擬南芥的基因組展開乌逐,而我并沒有說竭讳,只能是一個(gè)基因組,或者只能是基因組信息黔帕。工具如何使用代咸,是看個(gè)人,不是看開發(fā)者成黄。
1.打開TBtools
2. 準(zhǔn)備一個(gè)染色體長(zhǎng)度文件
這是一個(gè)骨架呐芥,事實(shí)上,你可以自己編一個(gè)奋岁。這里我們假設(shè)思瘟,手上只有擬南芥的基因組序列,使用TBtools的Fasta Stater
拖進(jìn)來基因組序列闻伶,設(shè)置輸出文件滨攻,點(diǎn)擊開始
用Excel打開,整理得到對(duì)應(yīng)的每條染色體的長(zhǎng)度信息
3. 準(zhǔn)備一些track文件
假設(shè)我們手上也有擬南芥的基因注釋結(jié)果(.gff3)文件蓝翰,那么我們可以看下擬南芥的基因密度
用TBtools的表格操作工具(或者Excel也可以)
使用Excel打開輸出文件光绕,只保留著四列
增加一列,全部標(biāo)記為 1
有了以上兩個(gè)信息畜份,其實(shí)我們就可以做很多東西了诞帐,比如展示基因密度,首先是打開TBtools的Super Circos
設(shè)置輸入文件
然后點(diǎn)擊“Show My Circos Plot”爆雹,得到一個(gè)結(jié)果
這個(gè)沒啥用停蕉,因?yàn)楦緵]顯示任何東西,我們剛才是對(duì)每一個(gè)基因?qū)懥?钙态,所以最終binning的結(jié)果慧起,是Mean,并沒有意義
修改一下
于是基因密度的線圖就出來了
線圖不夠炫酷册倒,我們畫個(gè)柱形圖
這個(gè)BInSize也放大一些
恩蚓挤,柱形圖也不好看,要不就畫熱圖
看起來就像模像樣的驻子,當(dāng)然顏色可以隨便調(diào)
事實(shí)上灿意,很多Track是可以組合的,比如
也可以是堆疊在一起
正負(fù)鏈放在一起還是比較丑的拴孤,事實(shí)上,你可以按照正負(fù)鏈分開甲捏,然后畫成兩個(gè)Track演熟,這里就不展示了。
4. 展示一些有關(guān)聯(lián)的區(qū)域
比如共線性的一些基因,你通過各種方式得到基因?qū)?/strong>
那么可以在TBtools的幫助下芒粹,獲得LinkedRegion信息兄纺,
首先是獲取所有基因的位置信息
設(shè)置輸入的gff3文件,并設(shè)置兩個(gè)輸出文件
隨后只保留部分的列化漆,
整理成Chr GeneID StartPos EndPos 格式
另存為文本制表符分隔
打開TBtools一個(gè)不錯(cuò)的工具估脆,將基因?qū)π畔ⅲ苯愚D(zhuǎn)換為L(zhǎng)inkedRegion信息
終于座云,我們得到這個(gè)文件
于是可以導(dǎo)入TBtools作為linkedInfo
于是Linked信息就展示出來了疙赠,雖然似乎沒什么用
一般你準(zhǔn)備這些數(shù)據(jù)的過程中,有些linkedRegion是需要高亮的朦拖,比如一些基因?qū)ζ匝簦敲纯梢栽趯?duì)應(yīng)的lInkedInfo后面加顏色信息
保存文本文件,重新點(diǎn)擊Show My Circos Plot就可以了
配色是一個(gè)重要的問題....
這里只展示功能就不調(diào)了璧帝,有時(shí)候捍岳,你想要展示的是一個(gè)大的region
5.展示一些文本標(biāo)簽上去
比如擬南芥的ARF基因家族....
然后我們保存一個(gè)文本文件,丟給TBtools就可以了
恩睬隶,都是黑色的锣夹,不太好看,所以我們?cè)诤竺婕右恍╊伾?br> 比如我們順便改一下ID的標(biāo)簽
于是顏色也修改了苏潜,银萍。。配色看個(gè)人窖贤,不糾結(jié)
你以為這樣就完了砖顷,肯定不是!
看到
點(diǎn)擊這個(gè)彈出一些控制參數(shù)
這么多參數(shù)赃梧,你自己體會(huì)滤蝠,這里就大概操作一下,搞的這張圖好像還可以看一樣授嘀,比如文本要移動(dòng)出去
5.展示一些區(qū)域的注釋
你真的以為這樣就結(jié)束了嗎物咳?當(dāng)然不是!
你還可以配置一個(gè)文件蹄皱,對(duì)region進(jìn)行注釋览闰,假設(shè)有QTL的區(qū)間對(duì)嗎?我來偽裝一個(gè)給你
也就是最后一列不再是數(shù)值巷折,直接是顏色压鉴,然后...導(dǎo)入啊
然后你用面板的參數(shù)調(diào)整,按照參數(shù)锻拘,你應(yīng)該會(huì)得到這么一張圖
6.似乎完了
你不會(huì)真的以為這樣就結(jié)束了油吭?击蹲!當(dāng)然不是啊。
還有JIGplot啊婉宰,不要忘了歌豺,這個(gè)圖是交互的啊
我鼠標(biāo)拖以下,標(biāo)簽就出來了
我右鍵一下心包,還可以改顏色啊
7.當(dāng)然還有类咧,但是我不想寫了....
事實(shí)上,基因密度什么的蟹腾,你可以換成表達(dá)量痕惋?,GC含量等等岭佳,這些需要自己折騰了血巍。
可能有人最關(guān)心的問題是,圖片導(dǎo)出
寫在最后
很多時(shí)候珊随,看起來簡(jiǎn)單的述寡,或許很復(fù)雜;反之亦然叶洞。
Circos是一個(gè)Perl軟件鲫凶,可以畫出極其復(fù)雜而炫酷的圖片。這個(gè)我可能暫時(shí)不會(huì)去追求(如果真的去追求那個(gè)衩辟,那么我肯定是要發(fā)CNS了吧...)
很多時(shí)候螟炫,很多生信分析,或者說圖形繪制艺晴,大多數(shù)人的需求是比較簡(jiǎn)單的昼钻。正如perl的哲學(xué)一樣,可以很快速而方便地完成簡(jiǎn)單的事情封寞,而復(fù)雜的事情然评,努力一下,也不是不可以狈究。
做生物學(xué)問題的朋友碗淌,其實(shí)并不可能有足夠的時(shí)間掌握各種工具,尤其是跟命令行操作相關(guān)的抖锥。即使使用Perl Circos繪制了一個(gè)圖亿眠,那下次呢?復(fù)雜的配置文件邏輯磅废,不得不說太過麻煩纳像。
Anyway,以上都是胡扯拯勉。
我只是想說竟趾,
畫一個(gè)圖耙考,可能比較簡(jiǎn)單,寫一個(gè)工具會(huì)比較麻煩潭兽,打一個(gè)GUI很 痛苦,而做一個(gè)所有人都能上手用的工具斗遏,山卦。。诵次。账蓉。
正如Horticulture Research主編程老師所說,既然你做了逾一,那么就發(fā)表出來铸本。
Done!
祝你們科研順利遵堵,這個(gè)工具的使用箱玷,暫時(shí)不會(huì)回復(fù)任何使用問題,因?yàn)槲乙呀?jīng)寫得很穩(wěn)健了陌宿,按照這篇推文操作锡足,不會(huì)有問題!
如果有問題壳坪,確實(shí)需要得到回復(fù)舶得。歡迎大額支持我們課題組成員的戶外擴(kuò)展活動(dòng)。
詳細(xì)請(qǐng)?jiān)L問課題組網(wǎng)站 http://xialab.scau.edu.cn/