导读
下载、安装、使用MCScanX分析NCBI taxonomy上下载的两个梭菌基因组共线性情况。共线性又称同线性,是一个物种的基因组中相互连锁的基因,在另一物种的基因组中也是连锁关系, 而且在两个物种的遗传图上的位置也是相同的 。
Clostridium_beijerinckii
一条完整基因组序列
Clostridium_botulinum
一条完整基因组序列,一条质粒序列(手动删除)
官网:MCScanx: Multiple Collinearity Scan toolkit
下载:MCScanX.zip
手册:MCScanX’s manual
一、下载、安装
wget -c http://chibba.pgml.uga.edu/mcscan2/MCScanX.zip
unzip MCScanX.zip
cd MCScanX
make
正常的安装过程:
1 报错:
错误的原因是,MCScanX 不支持64位系统。如果要在 64位上运行,需要修改下源代码
2 解决:
添加#include <unistd.h>到msa.cc开头
添加#include <unistd.h>到dissect_multiple_alignment.cc开头
添加#include <unistd.h>到detect_collinear_tandem_arrays.cc开头
参考:https://github.com/wyp1125/MCScanX/issues/13
3 测试:
./MCScanX -h
二、共线性分析
1 获取基因核酸蛋白序列
prokka注释获取基因核酸蛋白序列
prokka Clostridium_beijerinckii.fna \
--outdir Clostridium_beijerinckii_prokka \
--prefix Clostridium_beijerinckii \
--cpus 2 \
--evalue 1e-5 \
--quiet \
--kingdom Bacteria
prokka Clostridium_botulinum.fna \
--outdir Clostridium_botulinum_prokka \
--prefix Clostridium_botulinum \
--cpus 2 \
--evalue 1e-5 \
--quiet \
--kingdom Bacteria
合并两个基因组的基因核酸序列
cat Clostridium_beijerinckii_prokka/Clostridium_beijerinckii.ffn Clostridium_botulinum_prokka/Clostridium_botulinum.ffn > merge.fna
2 基因组建库-核酸
makeblastdb -in merge.fna \
-input_type fasta \
-dbtype nucl -parse_seqids \
-title merge \
-out blastdb/merge
3 核酸序列比对
blastn -db blastdb/merge \
-query merge.fna \
-out merge.blast \
-num_threads 6 \
-outfmt 6 \
-evalue 1e-5 \
-num_alignments 5
4 格式化gff文件
cat Clostridium_beijerinckii_prokka/Clostridium_beijerinckii.gff | grep '^NZ_CP010086.2' | sed 's/=/\t/' | sed 's/;/\t/' | awk 'BEGIN{OFS="\t"}{print $1,$10,$4,$5}' > gff_beijirinckii.txt
cat Clostridium_botulinum_prokka/Clostridium_botulinum.gff | grep '^NC_009495.1' | sed 's/=/\t/' | sed 's/;/\t/' | awk 'BEGIN{OFS="\t"}{print $1,$10,$4,$5}' > gff_botulinum.txt
cat gff* > merge.gff
5 共线性分析
mkdir Result
mv merge.blast Result
mv merge.gff Result
/home/cheng/huty/softwares/MCScanX/./MCScanX Result/merge
过程:
结果:
merge.collinearity共线性主要结果文件:
三、可视化
ctl文件有问题报错,染色体超过20个也报错
MCScanX Error - Can't plot the graphs (Downstream analysis)
Exception in thread "main" java.lang.NullPointerException
at dot_plotter.paint(dot_plotter.java:189)
at dot_plotter.main(dot_plotter.java:262)
control文件,设置需要展示的染色体信息(和gff的第一列一致)
vi merge_dot.ctl
1 散点图
java /home/cheng/huty/softwares/MCScanX/downstream_analyses/dot_plotter.java \
-g Result/merge.gff \
-s Result/merge.collinearity \
-c Result/merge_dot.ctl \
-o Result/merge_dot.PNG
2 双共线性图
java /home/cheng/huty/softwares/MCScanX/downstream_analyses/dual_synteny_plotter.java \
-g Result/merge.gff \
-s Result/merge.collinearity \
-c Result/merge_dot.ctl \
-o Result/merge_dual_synteny.PNG
3 circos图
java /home/cheng/huty/softwares/MCScanX/downstream_analyses/circle_plotter.java \
-g Result/merge.gff \
-s Result/merge.collinearity \
-c Result/merge_circle.ctl \
-o Result/merge_circle.PNG
报错了
正常安装下,在.java .class目录下可以运行:
circ.ctl文件格式
java circle_plotter \
-g $route/merge.gff \
-s $route/merge.collinearity \
-c $route/merge_circ.ctl \
-o $route/merge_circle.PNG
用R可对圈图重绘
4 条图
java /home/cheng/huty/softwares/MCScanX/downstream_analyses/bar_plotter.java \
-g Result/merge.gff \
-s Result/merge.collinearity \
-c Result/merge_dot.ctl \
-o Result/merge_bar.PNG
参考:
基因组共线性工具MCScanX使用说明
其实MCScan画图也可以很好看
Synteny和collinear的区别
更多工具:
mauve-viewer:https://github.com/nconrad/mauve-viewer
mauve官网:http://darlinglab.org/mauve/mauve.html
如何用WGDI进行共线性分析(上)