具体的泛基因组分析流程说明anvi'o泛基因组分析流程[官方版本(翻译)] - 简书 (jianshu.com)
基因组准备
将文件存放在指定的目录下,这里我使用的是Alcanivorax的基因组信息
基因组数据信息
格式转换
fasta格式标准化
anvio可能对部分标准格式的fasta格式无法识别,需要通过其内置的reform命令进行重新格式化才可以继续后续工作;(观察前后的fasta文件变化,猜测可能原来的contig的命名方式,在anvio中不能识别因而需要重新格式化,文件名不能使用类似与 - . 等符号,建议用下横线代替所有非字母数字的字符)
对fasta基因组进行重新格式化(可以尝试跳过该步骤尝试是否可以直接执行下一步)
mkdir reformatted
for file in *.fasta; do \
anvi-script-reformat-fasta --seq-type NT --simplify-names "$file" -o "reformatted/$file" \
;done
格式化ing
完成后进入存放格式化后文件的目录
先检查基因组总数是否与之前的一致,笔者在运行自己的数据时其中一个基因组由于命名问题并没有进行重新格式化!
fasta格式转db格式
进入重新格式化的路径
cd ./reformatted
执行以下命令对格式化好的基因组再次进行格式转换,将fasta转为db格式
for g in *.fasta;
do
anvi-gen-contigs-database -f ${g} \
-o ${g%.fasta}.db \
--num-threads 8 \
-n ${g%.fasta}; \
done
基因组转anvio使用的db格式
部分转换后结果
注释
for g in *.db
do
anvi-run-hmms -c $g --num-threads 12
anvi-run-ncbi-cogs -c $g --num-threads 12
anvi-scan-trnas -c $g --num-threads 12
anvi-run-scg-taxonomy -c $g --num-threads 12
done
生成external-genomes.txt
anvi-script-gen-genomes-file --input-dir . \
-o external-genomes.txt
生成GENOMES.db
anvi-gen-genomes-storage -e external-genomes.txt \
-o Alcanivorax-GENOMES.db
泛基因组分析
anvi-pan-genome -g Alcanivorax-GENOMES.db \
--project-name "Alcanivorax_Pan" \
--output-dir Alcanivorax \
--num-threads 12 \
--minbit 0.5 \
--mcl-inflation 10 \
--use-ncbi-blast
anvi-compute-genome-similarity --external-genomes external-genomes.txt \
--program pyANI \
--output-dir ANI \
--num-threads 12 \
--pan-db Alcanivorax/Alcanivorax_Pan.db
#添加ANI热图(可选)
图形界面启动(不要在远程服务器启动可视化界面)
不了解wsl可视化界面的朋友请先看视频了解一下
准备工作参考 (安装wsl下的图像界面)
在wsl下输入
startxfce4
在图形界面中打开终端,激活conda环境并进入相应的工作路径
anvi-display-pan -g Alcanivorax-GENOMES.db \
-p Alcanivorax/Alcanivorax_Pan-PAN.db
输入后程序会拉起系统的浏览器;并展示对应的泛基因组分析结果;
shell脚本
在window系统下创建一个记事本,然后复制后面的内容进去,更改一下文件名后缀改成” .sh "即可。然后拖到服务器/linux中,放到fasta文件所在的文件夹内。激活对应的conda环境然后使用bash XX.sh 即可
后台运行
nohup bash XXX.sh &
#!/bin/bash
# 创建reformatted目录
mkdir -p reformatted
# 重新格式化所有的fasta文件并移动到reformatted目录
for file in *.fasta; do
anvi-script-reformat-fasta --seq-type NT --simplify-names "$file" -o "reformatted/$file"
done
# 进入reformatted目录
cd reformatted
# 为每个fasta文件生成contigs数据库
for g in *.fasta; do
anvi-gen-contigs-database -f "${g}" -o "${g%.fasta}.db" --num-threads 8 -n "${g%.fasta}"
done
# 运行各种anvi命令在生成的数据库上
for g in *.db; do
anvi-run-hmms -c "$g" --num-threads 12
anvi-run-ncbi-cogs -c "$g" --num-threads 12
anvi-scan-trnas -c "$g" --num-threads 12
anvi-run-scg-taxonomy -c "$g" --num-threads 12
done
# 生成genomes文件
anvi-script-gen-genomes-file --input-dir . -o external-genomes.txt
# 生成genomes存储数据库
anvi-gen-genomes-storage -e external-genomes.txt -o strain-GENOMES.db
# 运行pan-genome分析
anvi-pan-genome -g strain-GENOMES.db \
--project-name "genomic_Pan" \
--output-dir genomic \
--num-threads 12 \
--minbit 0.5 \
--mcl-inflation 10 \
--use-ncbi-blast
#删除最后一条程序默认使用diamond进行比对;速度会块非常多
#笔者在160多个的基因组中进行泛基因组分析blast耗时2天左右,而diamond仅需几个小时
# 导入状态(需要在可视化界面操作完,然后导出才会有对应的json文件)
anvi-import-state -p genomic/genomic_Pan-PAN.db --state pan-state.json --name default