如何使用在别处创建的预聚集数据在R中创建树状图?

如何使用在别处创建的预聚集数据在R中创建树状图?,r,dendrogram,R,Dendrogram,我用Java编写了集群代码,从中我可以创建一个嵌套的树结构,例如,下面显示了树的一小段,其中两个“isRetired”对象在第一次迭代中集群,而该组在第五次迭代中使用“setIsRequired”集群。群集中对象之间的距离显示在括号中 |+5 (dist. = 0.0438171125324851) |+1 (dist. = 2.220446049250313E-16) |-isRetired |-isRetired |-setIsRetired 我

我用Java编写了集群代码,从中我可以创建一个嵌套的树结构,例如,下面显示了树的一小段,其中两个“isRetired”对象在第一次迭代中集群,而该组在第五次迭代中使用“setIsRequired”集群。群集中对象之间的距离显示在括号中

  |+5 (dist. = 0.0438171125324851)
    |+1 (dist. = 2.220446049250313E-16)
      |-isRetired
      |-isRetired
    |-setIsRetired
我更愿意用更传统的树状图风格来展示我的结果,看起来R有一些很好的功能,但是因为我对R知之甚少,我不清楚如何利用它们

我是否可以从Java将树结构写入文件,然后用几行R代码生成树状图?在R计划中,我想做如下工作:

  • 从文件读入数据结构(“hclust”对象?)
  • 将数据结构转换为树状图(使用“as树状图”)
  • 使用“绘图”显示树状图

  • 我想问题归结为R是否提供了一种从文件读取并将字符串输入转换为(hclust)对象的简单方法。如果是这样的话,输入文件中的数据应该是什么样子?

    我想您要查找的是。您可以用Newick表示法在文件中打印您的树,将其解析出来并构造一个phylog对象,您可以轻松地将其可视化。网页的结尾给出了一个如何实现这一点的示例。你也可能需要考虑。尽管您不希望这些软件包提供完整的功能,但您可以借助它们用来表示树的构造及其绘图功能

    编辑:在提供一个更简单的解决方案之前,似乎已经问了一个与您类似的问题。因此,基本上,您只需要在这里编写Newick解析器,或者您希望从Java输出的任何其他表示形式的解析器。

    (系统发育和进化分析)包包含树状图绘制功能,并且它能够在Java中读取树。因为它是一个可选的包,所以您需要使用它。理论上易于使用,例如,以下命令生成树状图:

    > library("ape")
    > gcPhylo <- read.tree(file = "gc.tree")
    > plot(gcPhylo, show.node.label = TRUE)
    
    >库(“ape”)
    >gcPhylo图(gcPhylo,show.node.label=TRUE)
    

    到目前为止,我的主要抱怨是,当包含Newick格式的树信息的文件的语法出现问题时,几乎没有诊断信息。我用其他工具成功地读取了这些相同的文件(在某些情况下,可能是因为这些工具原谅了语法中的某些错误)

    您还可以使用phylog软件包生成树状图,如下所示

    > library(ade4)
    > newickString <- system("cat gc.tree", intern = TRUE)
    > gcPhylog <- newick2phylog(newickString)
    > plot(gcPhylog, clabel.nodes=1)
    
    >库(ade4)
    >新ICKString gcPhylog图(gcPhylog,clabel.nodes=1)
    


    两者都可以使用Newick格式的树,并且都有许多打印选项。

    +1用于指向其他工具和Newick表示法的指针。我希望比在R中编写解析器花费更少的精力。我希望得到hc2Newick()的补充函数。同时,Dendroscope()看起来像是一个很有前途的工具,可以用Newick格式绘制给定文件的树状图。仔细观察,我发现phylog和phylobase似乎都使用了ape包,因此它似乎是迄今为止最“最小”的包(尽管它不仅仅是绘制树状图)。