比较基因组分析

MCScanX 与 MUMmer的使用

Posted by Mr.Children on May 24, 2018

MCScanX 的使用

MCScanX 的安装与使用

wget http://chibba.pgml.uga.edu/mcscan2/MCScanX.zip
unzip MCScanX.zip -d ~/tools/
cd ~/tools/MCScanX  
make
需要下载gc++ 来编译,另外需要下载java 来获得作图的支持 
#64位编译会出现问题,需要在msa.h,dissect_multiple_alignment.h,  
detect_colinear_tandem_arrays.h 上加上#include <unistd.h> 

.gff 文件的准备

#在NCBI上下载的gff3 文件,经过如下面的处理得到符合要求的gff文件
grep "CDS"  seqname | sed 's/;/\t/g' | awk '{OFS=FS="\t"}{print $1,$12,$4,$5}'| sed 's/Name=/''/g' > YP14.gff  
#可以改变染色体的名称为YP14

blast 文件的准备(blast的输出结果为m8格式)

#种内与种间比对是不同的,建库的序列不同
makeblastdb -in YP14.proteins.fasta -dbtype prot -title all.blast -parse_seqids -hash_index -out all.blast  
blastp -db all.blast -query target.proteins.fasta -out all.blast -outfmt 6 -evalue 1e-5 

数据的生成

#将所有的蛋序列gff 文件用合并  
cat 1.gff 2.gff >> all.gff
#将all.gff 文件与all.blast 文件放在同一个文件夹下面  
MCScanX all  
#会生成all.collinearity all.tandem 和all.html的文件夹

自带的程序作图

#dot_ploter (生成点图) 
java dot_plotter -g all.gff -s all.collinearity -c dot.ctl -o dot.png  
#dual_synteny_plotter(共线性)  
java dual_synteny -g all.gff -s all.collinearity -c dual_synteny.ctl -o dual_synteny.png  
dual_synteny.ctl  
800     //plot width (in pixels)  
800     //plot height (in pixels)  
YP14    //chromosomes in the left column  
P11G5   //chromosomes in the right column    
#circle_plotter(共线性圈图)  
java circle_plotter -g all.gff -s all.collinearity -c xircle.ctl -o circle.png  
circle.ctl  
800     //plot width and height (in pixels)  
YP14,P11G5      //chromosomes in the circle

生成如下图:

MUMmer的安装与使用

MUMmer 的下载与安装

wget http://sourceforge.net/projects/mummer/files/mummer/3.23/MUMmer3.23.tar.gz
tar -xzvf MUMmer3.23.tar.gz -C ~/tools/
make check  
make install    
#查看INSTALL文档,安装MUMmer前先安装gnuplot 4 版本  
cd gnuplot-4.6.6  
./configure --prefix=/home/wei/tools/gnuplot  
make  
make install  
#命令行gnuplot ,set terminal 看是否出现png 的选项  
#否则安装依赖库 libcairo2-dev,libpango1.0-dev,libgd-dev  
#出现Can not use 'defined(%hash)'  
#解决 perl -i -pe 's/defined \(%/\(%' filepath

MUMmer 的基本使用

#帮助 nucmer -h  
nucmer --maxmatch -c 65 -g 90 -p out YP14.fna P11G5.fna
--maxmatch 匹配的最多  
-c 匹配的最小长度  
-g 相邻的匹配之间的最大gap的阈值  
-p 输出的文件前缀  
#show-coords 将结果装换位列表格式的结果  
show-coords -c -d -l -I 95 -L 10000 -r out.delta > out.show  
-c 在输出结果中包含覆盖度信息  
-d 在结果中包含比对的方向信息  
-l 在输出结果中包含ref和query序列的长度信息  
-I 匹配的一致性大于或等于该百分比,才会输出到结果中去  
-L 匹配的序列长度大于或等于此值,才会输出到结果  
-q 设定输出结果按query IDs和其coordinates排序  
-r 设定输出的结果按照ref IDs和其coordinates排序  
-T 输出结果为tab分割的表格格式,否则,会经过格式化,产生的结果更加易读  
#mummerplot 作图  
mummerplot -f -l -p out -s large -t png out.delta    
-f 仅显示.delta格式比对结果文件中一对一最佳匹配的结果  
-l 画对角线显示  
-p 设定输出文件的前缀  
-r 将ref 序列中的某个序列名,投在X轴上,查看比对情况  
-q 将query 序列中的某个序列名,投在Y轴上,查看其比对情况  
-s 设定输出图片的大小,可选值有small,medium,large  
-S 将SNP 位点标记出来  
-t 设定gnuplot 的title 设为png 输出png 格式的图片  

输出的图片如下: