Assembly 数据的进化树构建¶
传统的细菌基因组测序结果构建进化树,一般参用reads比对到reference genome上后,获得各个样本的snp位点序列,通过将所有序列连锁后可以获得所要分析的样本的SNP序列,以此序列构建进化树。
对于输入数据为已经拼接完成的assembly序列,就要采用其他的方法获得snp位点了。比如用kmer(ksnp3)的方法获取snp位点,也可以获得core-genes,将核心基因的序列比对获得相应的SNP位点。
基于assembly数据构建进化树的工具往往开发较早,出现在NGS发展之前,一般来说缺少多线程的支持。
1. 数据准备¶
从 NCBI Assembly 数据库下载 gff 格式的数据。对于基因组测序reads数据,可以用spades拼接获得scaffolds.fasta后,用prokka生成gff格式的文件。将所有的gff文件放在一个目录中。
2. 数据质控¶
即使是assembly数据库中ref seq的数据,也建议进行质控后选择。对于非refseq的数据更要仔细验证后选择,否则后面分析会浪费大量精力和时间。
2.1 物种鉴定¶
$ kraken
3. 数据分析¶
3.1 基于core genes的分析方法¶
同一物种的细菌会携带核心基因组
需要注意的是细菌存在大量的recombination,如果只分析snp,那么indel等需要去除,同时要把recombination造成的snp也去除。
3.1.1 roary¶
$ roary -cd 100 -e --mafft -p 40 -f output *.gff # 参数说明: # -cd 100 表示只有100%的基因组均包括的基因,才做为 core genes,默认是 99% # -e --mafft 用mafft进行多重序列比对 # -p 40 使用多线程 # -f output 输出结果到output目录
获得的 core_gene_alignment.aln 是用mafft生成的比对文件。可用来构建进化树。
$ raxml -f a -p 12345 -x 12345 -#100 -s core_gene_alignment.aln -n cg -m GTRGAMMAI -T 40
3.1.2 get_homologs¶
$
3.2 基于MUMs的分析方法¶
3.2.1 parsnp¶
- reference non-free
Harvest工具中的parsnp可以用来快速鉴定同一种菌的基因组进化关系,特点是速度特别快,适合做同一种菌的近源基因组序列关系分析。如果同一种菌的菌株的序列差异较大,存在较多IS序列,会造成比对的基因组覆盖度区域过低,比如400个Bacillus cereus的菌株比对,只有1%的参考序列可以覆盖到。这种情况下就不适合使用harvest。而比如甲型副伤寒沙门菌高度保守,可以用parsnp来快速构建基因组进化图。如果覆盖度不够,应考虑使用mugsy,mauve等工具进行分析。
parsnp其精度比基于mapping的SNP分析略低,但速度快的多。
$ parsnp -g ref.gbk -d fna -c -x # 参数说明 # -g ref.gbk 表示选择gbk格式的基因组做为参考序列 # -d fna 表示用fna目录下的fasta格式文件做为输入数据 # -c 表示使用fna目录下的所有基因组 # -C 10000 表示跨越基因组10k长区域 # -x 用phipack去除重组
$ harvestools -i parsnp.ggr -S output.snp $ mafft --maxiterate 1000 --localpair output.snp > output.mafft $ raxml -f a -p 12345 -x 12345 -#100 -s output.mafft -n snp -m GTRGAMMA -T 40
3.2.2 progressMauve¶
- reference free
Mauve工具使用java开发的
$ progressMauve --output=output.xmfa *.gbk
3.2.3 Mugsy¶
- reference free
mugsy这些工具由于
$ mugsy -p mugsy *.fasta $ mugsyWGA -i output.xmfa
参考文献:
3.3 基于kmer的分析方法¶
3.3.1 kSNP3¶
$ kSNP3