1
我試圖用graphviz來表示一個雙向圖形結構。假設我有3個節點A
,B
,C
,對應於DNA片段。我想要表示每個節點內部的一些結構,而且還要表示節點之間的關係,我們假設它是A+ -> B- -> C+
。也就是說,A
中的正鏈在B
之後是負鏈,然後是在C
中的正鏈。我能想出的最好的是:帶圓點的旋轉子圖形
digraph G {
subgraph cluster_A {
Aa0 -> Ab0
Ab1 -> Aa1
{rank=same; Aa0 Aa1}
{rank=same; Ab0 Ab1}
}
subgraph cluster_B {
Ba0 -> Bb0
Bb1 -> Ba1
{rank=same; Ba0 Ba1}
{rank=same; Bb0 Bb1}
}
subgraph cluster_C {
Ca0 -> Cb0
Cb1 -> Ca1
{rank=same; Ca0 Ca1}
{rank=same; Cb0 Cb1}
}
Ab0 -> Bb1
Bb0 -> Ab1
Ba1 -> Ca0
Ca1 -> Ba0
}
這裏,a
/b
標籤對應5'
/3'
結束,並0
/1
標籤對應於正/負鏈。我得到的是:
我的主要問題是:是否有可能告訴dot
自由旋轉單個子圖,同時保持它們的內部結構是否完整?在這個例子中,我希望B
可以上下顛倒。如果這是不可能的,是否有任何黑客可以做到這一點?像引入隱藏節點一樣,在節點/邊上放置權重?我不熟悉graphviz/dot,我不知道它能做什麼。
爲了澄清,我想在每個羣集(除5'
和3'
兩端之外)中表示更多結構,並且該結構在羣集內應該一致。但我並不知道每個集羣的最佳方向,我想讓dot
來計算。
對不起小的變化,如果我沒有說清楚。我對這個特定的圖表不感興趣。我試圖想象一個彙編程序的輸出,它產生了100個這樣的集羣。我試圖避免必須計算自己的相對方向,我希望得到'點'來爲我做。 –
對於點佈局引擎,在定義集羣后沒有集羣的旋轉。然而,如果你以前知道旋轉,你可以定義正確方向的簇。如果您不能事先進行定位,則可以嘗試使用neato佈局引擎而不是點。最後你可以用你選擇的編程語言對點文件進行一些處理。甚至還有一個內置的腳本語言gvpr。 – stefan