用途:面向 16S 扩增子 ASV 数据,构建每个队列的从头(de novo)系统发育树,并在树基础上计算系统发育感知的多样性指标。前提是上游 omicverse-microbiome-16s-amplicon-dada2 已产出 AnnData 与 ASV 质心 FASTA(质心序列位于 var 中)。
主要能力:
- 建树:ov.alignment.build_phylogeny(asvs_fasta, workdir, mafft_mode='auto', fasttree_model='gtr', gamma=True, mafft_threads=4, fasttree_threads=None, overwrite=False),返回含 aligned、tree、newick 的字典。连接方式为 MAFFT 比对后 FastTree(GTR+Γ)。
- 挂载:ov.micro.attach_tree(adata, newick=..., tree_path=..., prune=True, store_key='tree', strict=False),结果存于 adata.uns['tree'],默认校验末端名称。
- Alpha:Alpha(adata).run(metrics=['faith_pd', ...]),结果落在 adata.obs。
- Beta:Beta(adata).run(metric='unweighted_unifrac' 或 'weighted_unifrac'),距离矩阵落在 adata.obsp;二者读取同一 adata.uns['tree'],缺树时报 ValueError。
- 可与 Bray-Curtis 基线对照,用 PCoA 比较聚类分离度。
用法要点:mafft_mode 默认 'auto',序列多时用 FFT-NS-2,否则 L-INS-i;小于 500 条序列追求比对质量可显式用 'L-INS-i'。fasttree_model='gtr' 加 gamma=True 是 16S 常规选择。Faith PD 对测序深度敏感,建议先抽平或与 Shannon 并列报告。非加权 UniFrac 关注存在与否、对稀有类群敏感;加权 UniFrac 按丰度加权,一般不抽平。
依赖与限制:需 $PATH 中存在 mafft、FastTreeMP/FastTree,可用 conda install -c bioconda mafft fasttree 安装;UniFrac 需 pip install unifrac。仅支持 FastTree,不支持 IQ-TREE/RAxML 替换;不做基于参考树的放置(SILVA 骨架、gappa/epang);不做跨队列树协调;不实现 gneiss 等树感知差异丰度检验;假定 16S rRNA,不适于 18S/ITS。缺失事实暂未提供。