python - TnT (Goloboff et al., 2008) 如何分配内部节点标签?

标签 python phylogeny

我使用 TnT v1.1(Goloboff 等人,2008)将存在-不存在矩阵 (PAM) 中的共源性分配给系统发育。 TnT 不允许使用内部节点 ID 或分支长度,我需要将分支长度与 TnT 数据结合使用进行统计分析。我有一个巨大的数据集(> 1000 个分类单元),因此手动分配分支长度会很乏味。 TnT 根据数据文件中的第一个物种开始内部节点命名(例如,如果提供包含 100 个物种的数据文件,并且黄曲霉是第一个物种,则黄曲霉之前的节点注释为 N101)。 TnT 在其 ASCII 树中提供内部节点,但不在其输出 newick 树中提供内部节点。

有谁知道我如何(a)让 TnT 打印出 newick 树中的内部节点,或者如何复制 TnTs 命名过程,最好使用 python (ete2/ete3)?

TIA

最佳答案

偶然发现你的帖子。

TnT does not allow for internal node IDs or branch lengths

这两个方面都是不正确的; TNT 确实允许这些。在做出这样的声明之前,您应该确保您已经仔细阅读并理解了程序的文档。

对于 newick 格式的分支长度(在树 n 上),将“ttag”命令与“blength”命令结合起来,后跟“export”:

ttag-;标签=; b长度*n;导出 > 文件名;

ttag 命令允许操作/连接树标签。例如。如果您设置树标签并打印显示节点编号的树(使用“naked-”命令),则可以将标签保存到 newick 树中,使用“tsave * filename”(打开树文件),然后通过“保存*”(保存标签):

naked-; ttag=; tplot n; tsav * con ; sav*;

所有这些都在 TNT 在线帮助中进行了解释。

由于 TNT 还允许处理(通过脚本)分支长度、节点编号等值,因此您可能可以在 TNT 本身中完成许多您需要的操作,而不需要 Python 等。

至于内部节点编号,是的,TNT 使用自己的内部规则来确保两棵相同的树对于等效分支始终具有相同的编号。规则是:将根节点编号为 T(分类单元的数量),然后开始从第一个分类单元向下编号节点(从 T+1 开始,然后是 T+2、T+n,直到到达根)。移动到下一个分类单元,并开始依次向根编号下降,直到找到根或已分配编号的节点。通过这种方式,您可以重现内部节点编号,如果您需要的话。

关于python - TnT (Goloboff et al., 2008) 如何分配内部节点标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52554674/

相关文章:

r - 如何在系统发育树中显示分支长度

python 文件操作(bash 脚本移植)

python - 如何使用 django-authopenid 设置默认组?

python - 如何使用python将放置在多个嵌套文件夹中的文档移动和重命名为一个新的单个文件夹?

r - 如何使用引导值注释 ggtree 对象?

python - 在Python中: use xpath with an element from a list

mixed-models - 每个物种使用多个条目的系统发育模型

python - Django 多个缓存 - 如何选择 session 进入哪个缓存?

python - 向 Django 2.1 管理站点添加忘记密码功能

r - 如何获得R中系统发育树的节点顺序?