[ PROMPT_NODE_26550 ]
etetoolkit
[ SKILL_DOCUMENTATION ]
# ETE 工具包技能
## 概述
ETE (Environment for Tree Exploration) 是一个用于系统发育和层次树分析的工具包。它支持树操作、进化事件分析、结果可视化,并可与生物数据库集成,用于系统发育基因组学研究和聚类分析。
## 核心能力
### 1. 树操作与分析
加载、操作和分析层次树结构,支持:
- **树 I/O**: 读取和写入 Newick、NHX、PhyloXML 和 NeXML 格式
- **树遍历**: 使用前序、后序或层序策略遍历树
- **拓扑修改**: 修剪、定根、折叠节点、解析多歧分叉
- **距离计算**: 计算分支长度和节点间的拓扑距离
- **树比较**: 计算 Robinson-Foulds 距离并识别拓扑差异
**常见模式:**
python
from ete3 import Tree
# 从文件加载树
tree = Tree("tree.nw", format=1)
# 基础统计
print(f"叶节点: {len(tree)}")
print(f"总节点: {len(list(tree.traverse()))}")
# 修剪至感兴趣的分类群
taxa_to_keep = ["species1", "species2", "species3"]
tree.prune(taxa_to_keep, preserve_branch_length=True)
# 中点定根
midpoint = tree.get_midpoint_outgroup()
tree.set_outgroup(midpoint)
# 保存修改后的树
tree.write(outfile="rooted_tree.nw")
使用 `scripts/tree_operations.py` 进行命令行树操作:
bash
# 显示树统计信息
python scripts/tree_operations.py stats tree.nw
# 转换格式
python scripts/tree_operations.py convert tree.nw output.nw --in-format 0 --out-format 1
# 重新定根
python scripts/tree_operations.py reroot tree.nw rooted.nw --midpoint
# 修剪至特定分类群
python scripts/tree_operations.py prune tree.nw pruned.nw --keep-taxa "sp1,sp2,sp3"
# 显示 ASCII 可视化
python scripts/tree_operations.py ascii tree.nw
### 2. 系统发育分析
通过进化事件检测分析基因树:
- **序列比对集成**: 将树与多序列比对 (FASTA, Phylip) 关联
- **物种命名**: 从基因名称中自动或自定义提取物种名
- **进化事件**: 使用物种重叠或树协调检测重复和物种形成事件
- **直系同源检测**: 基于进化事件识别直系同源和旁系同源基因
- **基因家族分析**: 按重复事件拆分树,折叠特定谱系的扩张
**基因树分析工作流:**
python
from et