基因组共线性工具MCScanX

MCScanX一般是做基因组之间的共线性

一、MCScanX安装

MCScanX官网http://chibba.pgml.uga.edu/mcscan2/#tm
下载MCScanX的安装包MCScanX.zip,可以在linux系统和Mac OS进行编译:

unzip MCscanX.zip
cd MCScanX
make

make报错:

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

这个错误的原因是,MCScanX 不支持64位系统。如果要在 64位上运行,需要修改下源代码。
只需要给MCScanX 目录下的 msa.h, dissect_multiple_alignment.h, and detect_collinear_tandem_arrays.h 这三个文件内容的最前面添加(#include
正确的做法是用vi打开文件,分别在三个文件( msa.h, dissect_multiple_alignment.h, and detect_collinear_tandem_arrays.h)的最前面添加:

msa.h

如果还报错,检查安装是的用户,不要是root用户:
不要切换到root安装,普通用户sudo安装就可以.

二、使用方法

MCScanX、MCScanX_h、duplicate_gene_classifier这三个是核心程序,downstream_analyses中包含12个下游分析程序,可以画图构树,还是很方便很强大的

下面以最常用的多物种MCScanX找共线性使用为列:

image

第一步 blastp(protein-protein BLAST)比对

注意!这里是找at和vv两个基因组组内和组间的共线性,因为想同时知道物种内和物种间的共线性,所以在blast之前把at和vv的基因组cat到一起,既做database,又做query,如果只想知道组间的共线性,那么就任取一个基因组为database,另一个做query

合并 cat at.fa vv.fa >>all.fasta

建库 makeblastdb -in all.fa-dbtype prot -parse_seqids -out all (-logfile allpep.log -title all)

蛋白比对 blastp -query all.fa -db all -out at_vv.blast -evalue 1e-10 -num_threads 16 -outfmt 6 -num_alignments 5

小tips:blast这一步是限速步骤,可以把all.fasta文件cut成多份,同时并行跑节省时间

注意!亲自验证该软件最多只能做5个物种的共线性。。。不管输入再多物种结果只有五个!!

第二步 运行MCScanX

输入文件只有两个,一个是上一步blast得到的at_vv.blast文件,格式如下:

image

还有一个是at_vv.gff文件,不过跟一般的九列gff文件不同,这里是缩略版本,可以用awk得到,第一列是物种名和染色体编号,第二列是基因号,第三列是起始位置,第四列是终止位置(用tab分割)

image

准备好这两个文件之后,输入命令行

MCScanX at_vv

注意:at_vv.gff at_vv.blast和at_vv命名需要一致且在同一个文件夹里

其他参数设置

image

运行速度快(吐槽一下用Sibelia来做植物基因组实在是太慢了。。)

image

运行成功后得到at_vv.html,at_vv.collinearity,at_vv.tandem输出文件

image

at_vv.collinearity里记录了共线性信息

image

可以看到collinear gene的数目和占比以及具体的比对信息

第三步 下游分析及可视化

1、常用的下游分析有:
duplicate_gene_classifier XX (0:singleton(非重复基因)1:dispersed(不是2,3,4的其它重复)2:proximal(染色体附近的重复,但是不相邻)3:tandem(串联重复)4:WGD/segmental(在共线性区域的共线性基因))

dissect_multiple_alignment -g XX.gff -c XX.collinearity -o XX.dis
group_collinear_genes.pl -i XX.collinearity -o XX.collinear.groups

2、可视化:软件自带的分析包不能调颜色,所以推荐用python版的MCscan(JCVI 包),参考文章其实MCScanX画图也可以很好看
绘图瞬间高大上

image

这里直接使用下游dot_plotter, dual_synteny_plotter, circle_plotter和bar_plotter 4个java包更便捷

image

gff和collinearity是上一步的输出,还需要编辑一个control文件,设置需要展示的染色体信息(和gff的第一列一致)

1.dot_plotter

java dot_plotter -g at_vv.gff -s at_vv.collinearity -c dot.ctl -o dot.PNG

**dot.ctl **

image

image

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 **

image
image

3.circle_plotter

java circle_plotter -g at_vv.gff -s at_vv.collinearity -c circle.ctl -o circle.PNG

circle.ctl

image
image

4.bar_plotter

java bar_plotter -g at_vv.gff -s at_vv.collinearity -c bar.ctl -o bar.PNG

bar.ctl

image
image

第四步 其他分析

duplicate_gene_classifierdetect_collinear_tandem_arrays、dissect_multiple_alignments对结果做进一步分析,借助其他相关信息,还可以做

origin_enrichment_analysis,family_tree_plotter,add_ka_and_ks_to_collinearity等

image
image

三、基因家族复制加倍分析(练习)

官方网站上提供测试代码,还有测试数据,存放在MCScanX安装目录的data目录当中,非常适合初学者练习:

attachments-2018-07-Cg8VO0hP5b42f5372e3a9.jpg

data目录数据:

attachments-2018-07-aGsAbcCk5b42f58ed9f1b.jpg

1.先来运行一下共线性分析(物种内,拟南芥为例第一个例子)

使用拟南芥的测试数据at开头的文件,用了data目录下的两个文件,at.gff 和at.blast 分别为基因的位置信息和blast比对结果:

官方例子:http://chibba.pgml.uga.edu/mcscan2/examples/example1.php

sudo ./MCScanX data/at

运行完成之后生成文件如下:

attachments-2018-07-9lFMGRaI5b42f6815866a.jpg

其中at.collinearity 为共线性结果,at.tandem为串联重复基因结果,这两个文件最重要;

2.结合基因家族分析基因加倍与复制

上面做完全基因组共线性分析后,可根据自己的基因家族信息,绘制基因家族圈图:

官方例子: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

attachments-2018-07-S4U3ZR2B5b42f7aa8386b.jpg
灰色背景为拟南芥全基因组的共线性结果,红色为基因家族的共线性结果;

**3.再来运行物种间的共线性分析(第二个例子,Rice (os) and sorghum (sb)共线性分析)

官方例子地址:http://chibba.pgml.uga.edu/mcscan2/examples/example7.php

sudo ./MCScanX data/os_sb

运行结果文件:os_sb.collinearity , os_sb.tandem

结果可视化:

首先,切换到downstream_analyses目录下,然后下载四个绘图控制文件,*ctl,之后就可以利用结果文件绘图了,代码如下:

[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

结果图展示:

dot.PNG

attachments-2018-07-7rkbaLU25b42fe3987203.jpg

attachments-2020-03-98h2j4tz5e5e55aaa758e.png

当然网站上还有其他示例代码和数据(Examples中),大家可以自行操作练习。

参考文章链接:
https://www.jianshu.com/p/740cb9eccf2b
https://www.omicsclass.com/article/275
https://www.omicsclass.com/article/104

你可能感兴趣的:(基因组共线性工具MCScanX)