主要利用mummer和NgenomeSyn进行,可以同时绘制多个基因组
首先准备基因组文件(fasta)用于比对
使用mummer4.0进行比对操作,mummer的配置参见https://github.com/mummer4/mummer。这一步需要染色体水平的基因组,最好删掉没有挂载到染色体上的scaffold。
mummer是一个整合包,主要的比对工具是nucmer
nucmer --mum --mincluster 500 -t 2 $reference.fasta $query.fasta -p $prefix
fasta在比对的时候有顺序,第一个参数被称为reference基因组,第二个参数被称为query基因组。-t参数代表线程数,-p代表输出文件的前缀。默认的输出文件为delta格式,如果不指定-p参数,输出文件名为out.delta.
得到比对文件后进行过滤:
delta-filter -1 -i 90 -l 10000 $prefix.delta > $prefix.delta.filter
这步过滤掉小于10k,相似性小于90%的共线性块,-1是只要最佳比对结果,一对一。
show-coords -THrd $prefix.delta.filter > $prefix.coords
将二进制的不可读文件转换为可读的文本文件。-THrd是去掉表头,方便后面的共线性格式调整。
共线性文件制作:
cat $prefix.coords | awk '{OFS="\t";print $10,$1,$2,$11,$3,$4}' > $prefix.syn
染色体长度文件制作,首先用samtools对基因组创建索引:
samtools faidx $fasta
cat $fasta.fai | awk '{OFS="\t"; print $1,1,$2}' > $fasta.len
最后一步,准备共线性绘图的配置文件 in.cofi:
比如说,我们有五个基因组,名字分别是1.fasta 2.fasta 3.fasta 4.fasta 5.fasta。我们只需要做1.fasta 2.fasta的比对,2.fasta 3.fasta的比对,3.fasta 4.fasta的比对,4.fasta 5.fasta的比对即可绘制共线性图(假设基因组有n个,需要进行n-1次比对)。1.fasta与2.fasta比对的共线性文件命名为1_2.syn,以此类推。
示例的配置文件如下:
GenomeInfoFile1=1.fasta.len
GenomeInfoFile2=2.fasta.len
GenomeInfoFile3=3.fasta.len
GenomeInfoFile4=4.fasta.len
GenomeInfoFile5=5.fasta.len
LinkFileRef1VsRef2=1_2.syn
LinkFileRef2VsRef3=2_3.syn
LinkFileRef3VsRef4=3_4.syn
LinkFileRef4VsRef5=4_5.syn
准备好配置文件后,运行:
NGenomeSyn -InConf in.cofi -OutPut $prefix
$prefix.svg即为结果。