MCScanX一般是做基因組之間的共線性
一才菠、MCScanX安裝
MCScanX官網(wǎng)http://chibba.pgml.uga.edu/mcscan2/#tm
下載MCScanX的安裝包MCScanX.zip现柠,可以在linux系統(tǒng)和Mac OS進(jìn)行編譯:
unzip MCscanX.zip
cd MCScanX
make
make報(bào)錯(cuò):
g++ struct.cc mcscan.cc read_data.cc out_utils.cc dagchainer.cc msa.cc permutation.cc -o MCScanX
msa.cc: In function ‘void msa_main(const char*)’:
msa.cc:289:22: error: ‘chdir’ was not declared in this scope
if (chdir(html_fn)<0)
^
make: *** [mcscanx] Error 1
這個(gè)錯(cuò)誤的原因是旁赊,MCScanX 不支持64位系統(tǒng)。如果要在 64位上運(yùn)行亚享,需要修改下源代碼鸦致。
只需要給MCScanX 目錄下的 msa.h, dissect_multiple_alignment.h, and detect_collinear_tandem_arrays.h 這三個(gè)文件內(nèi)容的最前面添加(#include <unistd.h>)
正確的做法是用vi打開文件,分別在三個(gè)文件( msa.h, dissect_multiple_alignment.h, and detect_collinear_tandem_arrays.h)的最前面添加:
如果還報(bào)錯(cuò)锭碳,檢查安裝是的用戶袁稽,不要是root用戶:
不要切換到root安裝,普通用戶sudo安裝就可以.
二擒抛、使用方法
MCScanX推汽、MCScanX_h蝗柔、duplicate_gene_classifier這三個(gè)是核心程序,downstream_analyses中包含12個(gè)下游分析程序民泵,可以畫圖構(gòu)樹癣丧,還是很方便很強(qiáng)大的
下面以最常用的多物種MCScanX找共線性使用為列:
第一步 blastp(protein-protein BLAST)比對(duì)
注意!這里是找at和vv兩個(gè)基因組組內(nèi)和組間的共線性,因?yàn)橄胪瑫r(shí)知道物種內(nèi)和物種間的共線性栈妆,所以在blast之前把a(bǔ)t和vv的基因組cat到一起胁编,既做database,又做query鳞尔,如果只想知道組間的共線性嬉橙,那么就任取一個(gè)基因組為database,另一個(gè)做query
合并 cat at.fa vv.fa >>all.fasta
建庫 makeblastdb -in all.fa-dbtype prot -parse_seqids -out all (-logfile allpep.log -title all)
蛋白比對(duì) blastp -query all.fa -db all -out at_vv.blast -evalue 1e-10 -num_threads 16 -outfmt 6 -num_alignments 5
小tips:blast這一步是限速步驟寥假,可以把a(bǔ)ll.fasta文件cut成多份市框,同時(shí)并行跑節(jié)省時(shí)間
注意!親自驗(yàn)證該軟件最多只能做5個(gè)物種的共線性糕韧。枫振。。不管輸入再多物種結(jié)果只有五個(gè)S┎省粪滤!
第二步 運(yùn)行MCScanX
輸入文件只有兩個(gè),一個(gè)是上一步blast得到的at_vv.blast文件雀扶,格式如下:
還有一個(gè)是at_vv.gff文件杖小,不過跟一般的九列g(shù)ff文件不同,這里是縮略版本愚墓,可以用awk得到予权,第一列是物種名和染色體編號(hào),第二列是基因號(hào)浪册,第三列是起始位置扫腺,第四列是終止位置(用tab分割)
準(zhǔn)備好這兩個(gè)文件之后,輸入命令行
MCScanX at_vv
注意:at_vv.gff at_vv.blast和at_vv命名需要一致且在同一個(gè)文件夾里
其他參數(shù)設(shè)置
運(yùn)行速度快(吐槽一下用Sibelia來做植物基因組實(shí)在是太慢了议经。斧账。)
運(yùn)行成功后得到at_vv.html,at_vv.collinearity,at_vv.tandem輸出文件
at_vv.collinearity里記錄了共線性信息
可以看到collinear gene的數(shù)目和占比以及具體的比對(duì)信息
第三步 下游分析及可視化
1、常用的下游分析有:
duplicate_gene_classifier XX (0:singleton(非重復(fù)基因)1:dispersed(不是2煞肾,3咧织,4的其它重復(fù))2:proximal(染色體附近的重復(fù),但是不相鄰)3:tandem(串聯(lián)重復(fù))4:WGD/segmental(在共線性區(qū)域的共線性基因))
dissect_multiple_alignment -g XX.gff -c XX.collinearity -o XX.dis
group_collinear_genes.pl -i XX.collinearity -o XX.collinear.groups
2籍救、可視化:軟件自帶的分析包不能調(diào)顏色习绢,所以推薦用python版的MCscan(JCVI 包),參考文章其實(shí)MCScanX畫圖也可以很好看
繪圖瞬間高大上
這里直接使用下游dot_plotter, dual_synteny_plotter, circle_plotter和bar_plotter 4個(gè)java包更便捷
gff和collinearity是上一步的輸出,還需要編輯一個(gè)control文件闪萄,設(shè)置需要展示的染色體信息(和gff的第一列一致)
1.dot_plotter
java dot_plotter -g at_vv.gff -s at_vv.collinearity -c dot.ctl -o dot.PNG
**dot.ctl **
2.dual_synteny_plotter
java dual_synteny_plotter -g at_vv.gff -s at_vv.collinearity -c dual_synteny.ctl -o dual_synteny.PNG
**dual_synteny.ctl **
3.circle_plotter
java circle_plotter -g at_vv.gff -s at_vv.collinearity -c circle.ctl -o circle.PNG
circle.ctl
4.bar_plotter
java bar_plotter -g at_vv.gff -s at_vv.collinearity -c bar.ctl -o bar.PNG
bar.ctl
第四步 其他分析
duplicate_gene_classifier梧却、detect_collinear_tandem_arrays、dissect_multiple_alignments對(duì)結(jié)果做進(jìn)一步分析败去,借助其他相關(guān)信息放航,還可以做
origin_enrichment_analysis,family_tree_plotter,add_ka_and_ks_to_collinearity等
三、基因家族復(fù)制加倍分析(練習(xí))
官方網(wǎng)站上提供測(cè)試代碼圆裕,還有測(cè)試數(shù)據(jù)广鳍,存放在MCScanX安裝目錄的data目錄當(dāng)中,非常適合初學(xué)者練習(xí):
data目錄數(shù)據(jù):
1.先來運(yùn)行一下共線性分析(物種內(nèi)吓妆,擬南芥為例第一個(gè)例子)
使用擬南芥的測(cè)試數(shù)據(jù)at開頭的文件赊时,用了data目錄下的兩個(gè)文件,at.gff 和at.blast 分別為基因的位置信息和blast比對(duì)結(jié)果:
官方例子:http://chibba.pgml.uga.edu/mcscan2/examples/example1.php
sudo ./MCScanX data/at
運(yùn)行完成之后生成文件如下:
其中at.collinearity 為共線性結(jié)果行拢,at.tandem為串聯(lián)重復(fù)基因結(jié)果祖秒,這兩個(gè)文件最重要;
2.結(jié)合基因家族分析基因加倍與復(fù)制
上面做完全基因組共線性分析后舟奠,可根據(jù)自己的基因家族信息竭缝,繪制基因家族圈圖:
官方例子:http://chibba.pgml.uga.edu/mcscan2/examples/example12.php
代碼如下
[http://chibba.pgml.uga.edu/mcscan2/examples/family.ctl](http://chibba.pgml.uga.edu/mcscan2/examples/family.ctl)
wget [http://chibba.pgml.uga.edu/mcscan2/examples/MADS_box_family.txt](http://chibba.pgml.uga.edu/mcscan2/examples/MADS_box_family.txt)
sudo java family_circle_plotter -g ../data/at.gff -s ../data/at.collinearity -c family.ctl -f ../data/MADS_box_family.txt -o MADS.circle.PNG
灰色背景為擬南芥全基因組的共線性結(jié)果,紅色為基因家族的共線性結(jié)果鸭栖;
**3.再來運(yùn)行物種間的共線性分析(第二個(gè)例子歌馍,Rice (os) and sorghum (sb)共線性分析)
官方例子地址:http://chibba.pgml.uga.edu/mcscan2/examples/example7.php
sudo ./MCScanX data/os_sb
運(yùn)行結(jié)果文件:os_sb.collinearity 握巢, os_sb.tandem
結(jié)果可視化:
首先晕鹊,切換到downstream_analyses目錄下,然后下載四個(gè)繪圖控制文件暴浦,*ctl溅话,之后就可以利用結(jié)果文件繪圖了,代碼如下:
[http://chibba.pgml.uga.edu/mcscan2/examples/dot.ctl](http://chibba.pgml.uga.edu/mcscan2/examples/dot.ctl) [http://chibba.pgml.uga.edu/mcscan2/examples/dual_synteny.ctl](http://chibba.pgml.uga.edu/mcscan2/examples/dual_synteny.ctl) [http://chibba.pgml.uga.edu/mcscan2/examples/circle.ctl](http://chibba.pgml.uga.edu/mcscan2/examples/circle.ctl) [http://chibba.pgml.uga.edu/mcscan2/examples/bar.ctl](http://chibba.pgml.uga.edu/mcscan2/examples/bar.ctl) java dot_plotter -g ../data/os_sb.gff -s ../data/os_sb.collinearity -c dot.ctl -o dot.PNG
java dual_synteny_plotter -g ../data/os_sb.gff -s ../data/os_sb.collinearity -c dual_synteny.ctl -o dual_synteny.PNG
java circle_plotter -g ../data/os_sb.gff -s ../data/os_sb.collinearity -c circle.ctl -o circle.PNG
java bar_plotter -g ../data/os_sb.gff -s ../data/os_sb.collinearity -c bar.ctl -o bar.PNG
結(jié)果圖展示:
當(dāng)然網(wǎng)站上還有其他示例代碼和數(shù)據(jù)(Examples中)歌焦,大家可以自行操作練習(xí)飞几。
參考文章鏈接:
http://www.reibang.com/p/740cb9eccf2b
https://www.omicsclass.com/article/275
https://www.omicsclass.com/article/104