用途:ETE Toolkit(ETE3)是 Python 系统发育树分析框架,用于树文件的读写、遍历、注释、拓扑比较与图示渲染,适用于比较基因组学、系统发育基因组学与演化生物学。
主要能力: 一、树 I/O。支持 Newick、NHX、PhyloXML、NeXML 的读写,format 参数控制 Newick 变体(0 灵活、1 命名加支持值、5 仅内部名、9 仅叶名、100 纯拓扑)。 二、遍历与查询。可按 preorder/postorder/breadth 遍历,按名称搜索节点,进行 LCA 查询、单系性检查、枝长与树距(Robinson-Foulds)计算。 三、节点注释。可为节点设置任意属性并配合 pandas 表批量注释,用于可视化或下游分析。 四、树修饰。支持 prune 剪枝、reroot/中点定根、ultrametricize,以及将树导出给 BEAST、IQ-TREE 等工具。 五、可视化。用 TreeStyle、NodeStyle 及 faces(AttrFace、CircleFace、RectFace 等)定制节点形状、颜色、枝宽与标签,矩形或圆形布局,渲染为图片/文档。 六、NCBI 分类。NCBITaxa 可做名称与 taxid 互译、获取谱系与分类等级、按 taxid 集合构建分类树(首次使用会下载约 50 MB 数据库)。 七、PhyloTree。用于基因树,映射物种、标注复制/物种形成事件、推断直系同源关系。
使用方式:安装 pip install ete3 numpy lxml PyQt5。树对象由 from ete3 import Tree 创建,如 Tree("((A:0.1,B:0.2)AB:0.3,(C:0.4,D:0.1)CD:0.2)root;"),用 get_leaves、get_leaf_names、traverse、search_nodes、get_common_ancestor 等 API 操作,用 render 输出图像。headless 环境需 xvfb。
适用场景:读取 IQ-TREE、RAxML 等输出并绘制带注释的出版级树图;构建分类学物种树并导出 Newick;批量比较 bootstrap 树与参考拓扑的 RF 距离;基因树直系/旁系同源分析。
限制:需 Python 3.6+;交互式渲染依赖 PyQt5,无头环境需 xvfb;PhyloXML 需 lxml;NCBI 模块需联网下载分类数据库。资料未提供性能基准、收费信息与具体版本兼容细节,暂未提供。