Matlab 如果所有分支都具有相同的值,则从phytree中删除叶

Matlab 如果所有分支都具有相同的值,则从phytree中删除叶,matlab,plot,tree,data-visualization,matlab-figure,Matlab,Plot,Tree,Data Visualization,Matlab Figure,我正在使用MATLAB生成“物理树”,我需要简化它们 我的想法是删除所有节点都具有相同值的子树,只保留该值+表示删除了多少节点的数字 例如,以下是其中一棵树: 我想替换具有相同值的子树,如下所示: 有什么方法可以这样做吗?我没有找到一种编程方法,但是从您所附的图片中,我看到您使用绘图来查看您的图形。如果您使用(只需键入视图(您的系统树)),您将获得一个不同的图形窗口,以及其他相关工具 具体来说,您将看到折叠分支按钮和重命名分支按钮,这两个按钮将为您提供所需的功能。第一个选项是“删除子树”(实

我正在使用MATLAB生成“物理树”,我需要简化它们

我的想法是删除所有节点都具有相同值的子树,只保留该值+表示删除了多少节点的数字

例如,以下是其中一棵树:

我想替换具有相同值的子树,如下所示:


有什么方法可以这样做吗?

我没有找到一种编程方法,但是从您所附的图片中,我看到您使用
绘图来查看您的图形。如果您使用(只需键入
视图(您的系统树)
),您将获得一个不同的图形窗口,以及其他相关工具

具体来说,您将看到折叠分支按钮和重命名分支按钮,这两个按钮将为您提供所需的功能。第一个选项是“删除子树”(实际上是隐藏它们),第二个选项允许您将分支名称更改为“值+数字”

您也可以通过在相关早午餐中单击鼠标右键来完成这一切:

以下是一个示例,数据来自:

在这棵树上进行折叠和重命名,并将其打印到图形中(右键单击要包含在图形中的最顶端分支或根)后,我得到:

另外,请注意,每次将鼠标悬停在分支上(即使已折叠),您都会看到该分支中的叶子列表及其数量:


我没有找到一种编程方式,但是从您所附的图片中,我看到您使用
绘图来查看您的体形。如果您使用(只需键入
视图(您的系统树)
),您将获得一个不同的体形窗口,以及其他相关工具

具体来说,您将看到折叠分支按钮和重命名分支按钮,这两个按钮将为您提供所需的功能。第一个选项是“删除子树”(实际上是隐藏它们),第二个选项允许您将分支名称更改为“值+数字”

您也可以通过在相关早午餐中单击鼠标右键来完成这一切:

以下是一个示例,数据来自:

在这棵树上进行折叠和重命名,并将其打印到图形中(右键单击要包含在图形中的最顶端分支或根)后,我得到:

另外,请注意,每次将鼠标悬停在分支上(即使已折叠),您都会看到该分支中的叶子列表及其数量:


你说的“相同的价值”是什么意思?在你的所有图像中,我只能看到不同值的东西。我的每只鼠标都来自某个菌株,菌株在左边我确实添加了它们作为Yticklab@Ander Biguri,我用选定的颜色给每个菌株着色。我担心这需要相当多的编码,你不可能得到答案,因为在MATLAB中没有直接的方法。祝你好运。@AnderBiguri没关系,我知道这需要一些代码,如果我知道如何访问叶节点及其父节点和子节点,我可以想出一个算法it@EBH我使用已使用其他程序生成的差异矩阵作为输入(鼠标到鼠标的差异矩阵)然后使用matlab seqneighjoin我创建了phytree,我有一个表,有两列用于老鼠,这个表我用来给LeafNodeLabel和Yticklabel着色和标记,你说“相同的值”是什么意思?在你的所有图像中,我只能看到不同值的东西。我的每只鼠标都来自某个菌株,菌株在左边我确实添加了它们作为Yticklab@Ander Biguri,我用选定的颜色给每个菌株着色。我担心这需要相当多的编码,你不可能得到答案,因为在MATLAB中没有直接的方法。祝你好运。@AnderBiguri没关系,我知道这需要一些代码,如果我知道如何访问叶节点及其父节点和子节点,我可以想出一个算法it@EBH我使用已使用其他程序生成的差异矩阵作为输入(鼠标到鼠标的差异矩阵)然后使用matlab seqneighjoin我创建了phytree,我有一个2列的表,用于老鼠,我用这个表给leafNodeLabels着色和标记,还有YTickLabelThanx这个真的很有用:)Thanx这个真的有用:)
% bulding some tree:
seqs = fastaread('pf00002.fa');
distances = seqpdist(seqs,'method','jukes-cantor','indels','pair');
phylotree = seqneighjoin(distances,'equivar',seqs);
view(phylotree)