系统发育树构建(FASTA → 核心基因组 ML 树)
一句话:一目录细菌基因组 FASTA 进,Newick 树文件出——bcgTree 核心基因拼接比对 + IQ-TREE2 最大似然建树(自动选模 + 1000 次超快自举),可选 parsnp 分组子树。
获取本技能 · Get this skill
方式 A —— 一键引导 prompt(推荐)。复制下面这段,粘贴到你的 AI agent IDE:
请帮我安装 Claw2Bio 技能库中的 "phylo-tree-build" 技能:
1. 从 GitHub 仓库 https://github.com/claw2bio/claw2bio 只拉取 bioinformatics/phylo-tree/phylo-tree-build
这一个文件夹(用 sparse checkout,不要克隆整库)。
2. 阅读其中的 SKILL.md 并注册该技能。
3. 运行 examples/ 里的示例验证环境,把输出的图给我看。方式 B —— 独立 zip 包(约 19 MB,本站下载):https://claw2bio.site/downloads/phylo-tree-build.zip
方式 C —— 全量示例数据(约 31 MB,本站下载):https://claw2bio.site/downloads/phylo-tree-build-examples.zip
它能做什么
输入一个目录的基因组组装文件(*.fasta,一个菌株一个文件,文件名主干即样本 ID),脚本来自一项已发表的 67 株 CRE 研究的实战流程,分四步(每步一个模板脚本):bcgTree 拼接核心基因比对 → IQ-TREE2 -m MFP -B 1000(ModelFinder 自动选模 + 1000 次超快自举)建主树 → 可选 parsnp + IQ-TREE2 按组建子树。输出 main_tree/total_iqtree.treefile(Newick)及拼接比对文件。

说明:建树本身只产树文件,此图是配套技能 phylo-tree-plot 用本技能对 12 个公开 RefSeq 基因组(4 Escherichia / 4 Klebsiella / 2 Enterobacter / Citrobacter / Serratia)产出的 treefile 绘制的。
快速上手(30 秒)
环境前提:Windows 上需要 WSL2 + Ubuntu 24.04,按截图教程配置 → docs/wsl-setup.md。
在 WSL Ubuntu 内按顺序执行:
cd bioinformatics/phylo-tree/phylo-tree-build/scripts
bash 00_bootstrap_ubuntu.sh # 一次性:装 iqtree2/mafft + conda 环境 bcgtree
python3 patch_bcgtree_gblocks.py # 一次性:修 bcgTree↔Gblocks 命名 bug
bash 01_run_bcgtree.sh # 约 10 分钟 / 12 个基因组
bash 02_iqtree_main.sh # → main_tree/total_iqtree.treefile
bash 03_parsnp_subtrees.sh # 可选:分组子树(需两列 SampleID,Group CSV)换自己的数据不用改脚本,用环境变量覆盖路径即可: SRC_IN=/path/to/input SRC_OUT=/path/to/output bash 01_run_bcgtree.sh
输入格式
- 一个目录,每个菌株一个
*.fasta,文件名主干 = 样本 ID(也是后续注释 CSV 的 SampleID)。 - 可选两列
SampleID,GroupCSV 用于 parsnp 分组子树。
输出文件
| 文件 | 内容 |
|---|---|
main_tree/total_iqtree.treefile | Newick 主树(ML 骨架 + 1000 UFBoot 支持率) |
main_tree/full_alignment.concat.fa(+ .partition) | 核心基因拼接比对(供自定义重跑) |
subtrees/<Group>.treefile | 可选的 parsnp 分组子树 |
REPORT.md | 逐文件产出说明 |
配置
模板脚本只改头部 EDIT-THIS 变量(WORK 工作目录、路径等)。两条黄金规则:
- 工作目录必须纯 ASCII——bcgTree/Perl 遇到非 ASCII 路径即崩;脚本默认把基因组复制到
~/phylo_work里跑,结果再拷回。 - 路径自动定位——脚本相对自身解析示例输入输出,在任何机器任何目录都能跑。
常见问题
- bcgTree 报
Fasta::Parser ... .aln-gb→ 漏跑了一次性的patch_bcgtree_gblocks.py,补跑即可。 - bcgTree 秒崩、路径报错 →
WORK路径含中文/非 ASCII 字符,换~/phylo_work或/mnt/d/...纯 ASCII 路径。 - parsnp 段错误 → 某些 bioconda 构建的已知问题;子树是可选的,跳过第 3 步或换 parsnp 构建版本。
- IQ-TREE 内存不足 → 降低
-nt或减少基因组数;12 个基因组实测 < 4 GB。 - 国内 apt/conda 很慢 → 换国内镜像(docs/wsl-setup.md 第 4 节)。