2

有四个点文件(cluster_0、cluster_1、cluster_2、cluster_3)需要合并成一个点文件。

各个点文件的代码如下。

digraph cluster_0{
sortv=1;
penwidth=0;pencolor=transparent;
label="1A";
rankdir=LR;
 node [fontname = "times-roman-bold",fontsize=12];
        edge [fontname = "times-roman-bold",fontsize=12,arrowsize=0.75];
    1 [label="1:A"];
    2 [label="2:C"];
    3 [label="3:G"];
    3 -> 1
    1 -> 2
    3 -> 2
    2 -> 3
}
digraph cluster_1 {
sortv=2;
penwidth=0;pencolor=transparent;
 label="1B";
 node [fontname = "times-roman-bold",fontsize=12];
        edge [fontname = "times-roman-bold",fontsize=12,arrowsize=0.75];
    rankdir=LR;
    11 [label="1:A"];
    12 [label="2:C"];
    13 [label="3:G"];
    14 [label="4:T"];
    14 -> 11
    11 -> 12
    12 -> 13
    12 -> 14 
    13 -> 14
}
digraph cluster_2 {
    rankdir=LR;
  sortv=3;
penwidth=0;pencolor=transparent;
  label="1C";
 node [fontname = "times-roman-bold",fontsize=12];
        edge [fontname = "times-roman-bold",fontsize=12,arrowsize=0.75];
    21 [label="1:A"];
    22 [label="2:C"];
    23 [label="3:G"];
    24 [label="4:T"];
    25 [label="5:A"];
    24 -> 21
    21 -> 22
    21 -> 25
    25 -> 22
    22 -> 23
    23 -> 24
}
digraph cluster_3{
        sortv=4;
penwidth=0;pencolor=transparent;
        label="1D"
 node [fontname = "times-roman-bold",fontsize=12];
        edge [fontname = "times-roman-bold",fontsize=12,arrowsize=0.75];
    rankdir=LR;
    31 [label="1:A"];
    32 [label="2:C"];
    33 [label="3:G"];
    31:c -> 31:w
    32 -> 31 [dir=both,len=1.25];
    33 -> 31 [dir=both,];
    32 -> 32
    33 -> 32 [dir=both,];
    33 -> 33
}

要生成合并的单点文件...我运行了以下命令。

neato -Gstart=5 cluster_0.dot cluster_1.dot cluster_2.dot cluster_3.dot | gvpack -array_u4 | neato -n2 -s -Teps -o merge.eps 

merge.eps 非常好,但个别图的标签丢失了。我们如何在输出合并文件中保留各个图的标签?任何人都可以帮助解决这个问题吗?

在这里,我附上了显示标签的单个文件,我使用以下命令编译了单个文件。

neato -Gstart=5 cluster_0.dot -Teps -o cluster_0.eps

我还附上了删除图形标签的合并输出文件。

在此处输入图像描述

4

1 回答 1

2

这不是一个答案,而是分享经验:在尝试各种选项时,它似乎是neato压制标签的引擎。如果您使用dot,您可能无法获得所需的确切布局,但您会获得标签:

dot -Gstart=5 cluster_0.dot cluster_1.dot cluster_2.dot cluster_3.dot | gvpack -array_u4 | dot -n2 -s -T jpg -o merge.jpg

给你

在此处输入图像描述

我个人的偏好是拥有一个主文件so.m4

digraph so 
{
    define(`digraph',`subgraph')
    rankdir=LR;
    include(cluster_0.dot)
    include(cluster_1.dot)
    include(cluster_2.dot)
    include(cluster_3.dot)
}

我处理的

m4 so.m4 > so.dot

在生成的so.dot文件中,我将所有集群组合在一起,我可以使用简单的方法进行下一步(此处生成 JPG)

dot -T png -o so.png so.dot

这样做的好处是您可以将主文件用于“全局选项”。我认为它比带有所有管道和选项的命令更容易维护且不那么笨拙。但这是一个品味问题。

使用该选项rankdir=LR;生成此版本:

在此处输入图像描述

玩得开心——很高兴能做更多,但我需要更多地了解你的项目。

于 2017-11-13T11:06:19.377 回答