当前位置: 首页 > news >正文

从NCBI下载到生成进化树:用Prokka+Roary完成细菌泛基因组分析的完整实战记录(附批量脚本)

从NCBI下载到生成进化树:用Prokka+Roary完成细菌泛基因组分析的完整实战记录(附批量脚本)

在微生物基因组学研究中,泛基因组分析已成为揭示物种内基因多样性的重要手段。本文将手把手带您完成从NCBI数据下载到最终生成系统发育树的全流程,特别适合需要在短时间内掌握完整分析链条的研究人员。不同于碎片化的教程,我们聚焦于实际科研场景中的连贯操作,并提供可直接复用的批量处理脚本。

1. 数据获取与预处理

1.1 NCBI基因组数据批量下载

首先登录NCBI Assembly数据库,在搜索框输入目标菌种名称(如"Bacillus subtilis")。建议设置以下筛选条件:

  • Assembly level: Complete Genome或Chromosome
  • RefSeq category: Reference/Representative genome
  • 排除contig/scaffold级别的组装

勾选所需基因组后,使用"Download Assemblies"功能,选择:

  • File type: GenBank (.fna)
  • Include: Genomic sequence (FASTA)

实用技巧:对于大规模下载,推荐使用NCBI的datasets命令行工具:

datasets download genome accession --inputfile accessions.txt --filename ncbi_dataset.zip

其中accessions.txt包含需要下载的基因组Accession编号列表。

1.2 数据质量控制

解压下载的压缩包后,建议进行基本质量检查:

  • 使用seqkit stats快速统计序列信息:
seqkit stats *.fna > genome_stats.txt

重点关注:

  • 序列数量(应为1条/基因组)
  • 平均序列长度(应与物种预期基因组大小匹配)

典型问题处理:若发现多个contig的基因组,建议:

  • 重新筛选更完整的组装版本
  • 或使用--compliant参数运行Prokka

2. 批量基因组注释流程

2.1 Prokka环境配置

推荐使用conda管理分析环境:

conda create -n prokka -c bioconda prokka=1.14.6 conda activate prokka prokka --setupdb # 关键步骤:初始化数据库

2.2 自动化注释脚本

创建run_prokka.sh脚本实现批量处理:

#!/bin/bash mkdir -p gff_output for fna in *.fna; do sample=$(basename $fna .fna) prokka $fna \ --prefix $sample \ --outdir ${sample}_annot \ --cpus 8 \ --force # 覆盖已有结果 cp ${sample}_annot/*.gff gff_output/ done

关键参数说明

  • --cpus:根据服务器资源调整
  • --force:确保重复运行时覆盖旧结果
  • --addgenes:添加gene特征(Roary分析必需)

3. 泛基因组分析核心步骤

3.1 Roary安装与配置

虽然可通过conda安装,但推荐系统级安装确保稳定性:

sudo apt-get install -y roary mafft fasttree

3.2 运行泛基因组分析

准备roary_analysis.sh脚本:

#!/bin/bash roary -f roary_results \ -p 16 \ -e \ # 使用MAFFT进行多序列比对 -v \ # 详细日志 -i 90 \ # 蛋白相似度阈值 gff_output/*.gff

输出文件解读

  • gene_presence_absence.csv:核心/可变基因矩阵
  • summary_statistics.txt:泛基因组大小等统计量
  • core_gene_alignment.aln:核心基因多序列比对

3.3 核心基因系统发育树构建

使用FastTree快速生成进化树:

FastTree -nt -gtr < roary_results/core_gene_alignment.aln > core_genome_tree.nwk

对于更精确的分析,可考虑:

iqtree -s core_gene_alignment.aln -m MFP -bb 1000 -nt AUTO

4. 结果可视化与解读

4.1 泛基因组特征分析

使用roary_plots.py生成基础图表:

roary_plots.py roary_results/core_gene_alignment.aln roary_results/gene_presence_absence.csv

将生成:

  • 泛基因组累积曲线(pangenome_matrix.png)
  • 核心基因热图(clustered_pangenome_matrix.png)

4.2 进化树美化

推荐使用FigTree进行树形调整,或R语言ggtree包:

library(ggtree) tree <- read.tree("core_genome_tree.nwk") ggtree(tree) + geom_tiplab() + xlim(0, 0.2) + geom_nodepoint(color="red", alpha=0.5)

4.3 高级分析拓展

对于深入挖掘,可尝试:

  • Panaroo:改进的泛基因组分析工具
  • pyseer:基因-表型关联分析
  • Scoary:基因与表型特征关联研究

5. 常见问题解决方案

Q1: Prokka运行时出现数据库错误

prokka --listdb # 检查数据库状态 prokka --cleandb # 清理损坏的数据库 prokka --setupdb # 重新初始化

Q2: Roary运行内存不足

  • 增加-s参数降低blastp严格度
  • 使用--split_paralogs处理旁系同源基因

Q3: 进化树分支支持率低

  • 增加比对基因数量(降低-i参数)
  • 使用IQ-TREE代替FastTree

实际项目中,处理30个芽孢杆菌基因组时,使用32核服务器完整流程约需6-8小时。建议将中间结果(特别是GFF文件)妥善保存,便于后续重新分析。

http://www.jsqmd.com/news/692819/

相关文章:

  • 从‘玄学’到科学:用MATLAB/Simulink仿真,5步搞定PID参数自整定
  • 2026年4月西安无损探伤服务市场洞察与优质供应商推荐 - 2026年企业推荐榜
  • [INS-30014] 故障排查实战:从网络配置到hosts文件,根治Oracle CFS检查失败
  • 有哪些数字人制作软件,支持短视频和实时对话直播的
  • 别再只调Cartographer参数了!ROS2 Humble下robot_localization的EKF配置详解与避坑指南
  • NodeMCU PyFlasher终极指南:一键图形化ESP8266固件烧录工具
  • ExplorerPatcher终极指南:让Windows 11拥有经典操作体验
  • 微信立减金闲置?避开三大坑,推荐可可收轻松回收 - 可可收
  • 从零配置一个CANopen从站:手把手教你设置对象字典与PDO映射(基于CiA 301标准)
  • SI5351高频PCB设计实战:从原理图到200MHz信号完整性的那些坑
  • 深度解析:douyin-downloader 架构设计与异步处理机制的技术实现
  • 自动驾驶入门:用Python手写一个车辆坐标系转换工具(附完整代码)
  • 3步打造你的本地语音转文字助手:TMSpeech完全指南
  • 3分钟掌握B站缓存视频转换:m4s-converter全功能解析与实战指南
  • 手把手教你用FT2232HL和A3P060 FPGA复刻TI XDS100V3调试器(附完整原理图与避坑指南)
  • Anaconda环境下OpenBabel安装避坑指南:从Windows到Linux服务器的完整配置
  • 第50篇:AI商业伦理与法规前瞻——在全球监管下如何合规经营?(面试速览)
  • 告别卡顿!用全志R128和LVGL驱动4寸圆屏RGB,实测帧率高达247fps
  • AI热点资讯日报_2026-04-24
  • 第二章《目录和文件管理》全套测试题【20260424】004篇
  • C++26 Contracts正式进入生产环境:3大头部车企已上线的静态断言+运行时契约双模校验方案
  • 一周带你刷完牛客网上最火的Java面试八股文
  • 手把手解决Android 12 SplashScreen适配的“幽灵”白屏:从IDE调试到隐私弹窗的完整避坑记录
  • 准直驱(QDD)如何重塑低成本协作机器人的力控未来
  • 告别盲目采样!从Halton到RAR-D:一份给PINNs初学者的采样方法避坑指南
  • 用Arduino和逻辑分析仪搞定车库门遥控器:SYN480R模块解码EV1527协议实战
  • 别再只盯着TTL了!用LVDS做高速PCB布线,这5个细节没注意等于白搭
  • PlantUML在线编辑器终极指南:5分钟学会用代码绘制专业UML图
  • Path of Building:流放之路角色构筑的终极免费离线规划工具
  • 防火墙实战:IPSec隧道模式 vs 传输模式,到底怎么选?(附报文封装对比图)