多基因组共线性分析-ntsynt
1.简介
ntsynt是一个用于多个全基因组比对并识别共线块的工具,它的核心思路是通过利用minimizers和graph-based方法来识别基因组间的共线块,核心步骤如下:为每个基因组生成有序的minimizers草图-->筛选出单拷贝的minimizers-->构建初始minimizer图(minimizers作为节点,基因组上相邻的minimizers作为边)-->初始minimizer图优化(移除缠结关系)-->初始共线块识别-->迭代细化(对于初始共线块中不存在的minimizers草图采用更小的minimizers生成minimizer图并简化)-->最终的共线块。
Tips:实测12个1G的基因组跑90min结束;
2.安装
conda create -n ntsynt python=3.10
conda activate ntsynt
conda install -c bioconda -c conda-forge ntsynt intervaltree pybedtools ncls python-igraph gcc meson ninja snakemake samtools seqtk btllib=1.6.2
3.输入文件
usage: ntSynt [-h] [--fastas_list FASTAS_LIST] -d DIVERGENCE [-p PREFIX] [-k K] [-w W] [-t T] [--fpr FPR] [-b BLOCK_SIZE] [--merge MERGE]
[--w_rounds W_ROUNDS [W_ROUNDS ...]] [--indel INDEL] [-n] [--benchmark] [-f] [--dev] [-v]
[fastas ...]
ntSynt: Multi-genome synteny detection using minimizer graphs
positional arguments:
fastas Input genome fasta files
optional arguments:
-h, --help show this help message and exit
--fastas_list FASTAS_LIST
File listing input genome fasta files, one per line
-d DIVERGENCE, --divergence DIVERGENCE
Approx. maximum percent sequence divergence between input genomes (Ex. -d 1 for 1% divergence).
This will be used to set --indel, --merge, --w_rounds, --block_size
See below for set values - You can also set any of those parameters yourself, which will override these settings.
-p PREFIX, --prefix PREFIX
Prefix for ntSynt output files [ntSynt.k.w]
-k K Minimizer k-mer size [24]
-w W Minimizer window size [1000]
-t T Number of threads [12]
--fpr FPR False positive rate for Bloom filter creation [0.025]
-b BLOCK_SIZE, --block_size BLOCK_SIZE
Minimum synteny block size (bp)
--merge MERGE Maximum distance between collinear synteny blocks for merging (bp).
Can also specify a multiple of the window size (ex. 3w)
--w_rounds W_ROUNDS [W_ROUNDS ...]
List of decreasing window sizes for synteny block refinement
--indel INDEL Threshold for indel detection (bp)
-n, --dry-run Print out the commands that will be executed
--benchmark Store benchmarks for each step of the ntSynt pipeline
-f, --force Run all ntSynt steps, regardless of existing output files
--dev Run in developer mode to retain intermediate files, log verbose output
-v, --version show program's version number and exit
运行示例:
ntSynt -d 5 assembly1.fa assembly2.fa assembly3.fa
或者
ntSynt -d 5 --fastas_list fasta_list -t 30
4.输出文件
输出文件是
1.共线块ID
2.基因组文件名
3.基因组染色体名字
4.基因组起始坐标
5.基因组终止坐标
6.基因组染色体方向
7.在该共线块中比对到的minimizers的数量
8.与上一个共线块不连续的原因
5.共线块的评估
使用analysis_scripts/denovo_synteny_block_stats.py评估
python3 denovo_synteny_block_stats.py -h
usage: denovo_synteny_block_stats.py [-h] --tsv TSV --fai FAI [FAI ...]
Compute de novo stats on synteny blocks
optional arguments:
-h, --help show this help message and exit
--tsv TSV ntSynt synteny block file
--fai FAI [FAI ...] FAI files for the compared genomes
结果文件解析:
第一列是共线块的数量
第二列是在所有基因组中均包含的共线块的数量
第三列是平均共线块覆盖度
第四列是在所有基因组中均包含的平均共线块覆盖度
第五列是共线块的平均值长度(bp)
第六列是共线块的中位值长度(bp)
第七列是所有共线块的总长
第八列是共线块NG50长度(bp)
第九列是共线块N50长度(bp)
6.Tips
6.1 如果超内存,可以通过增加 --fpr值来降低峰值内存;
6.2 如果不知道-d如何设置,可以根据Mash软件的dist功能计算
###下载
wget -c https://github.com/marbl/Mash/releases/download/v2.3/mash-Linux64-v2.3.tar
tar xvf mash-Linux64-v2.3.tar
###使用
mash dist -p 10 A.genome.fa B.genome.fa
###结果
reference-ID query-ID distance p-value shared-hashes
A.genome.fa B.genome.fa 0.117785 1.05717e-96 44/1000
6.3 由于--merge, --indel, --block_size and --w_rounds建议根据自己的项目的经验值设置;
6.4 ntSynt-viz可视化方便快捷(刚开发的软件功能不是很齐全,比如修改染色体长度、染色体形状、共线块颜色、突出用户自己感兴趣的区域等都不行),visualization_scripts本软件自带的除了安装麻烦,还不能过滤染色体长度、共线块长度、添加颜色等信息;
共有 0 条评论