3

{pegas} の haploNet 関数を使用してハプロタイプ ネットワークをプロットしようとしていますが、同じ円グラフに異なる集団からの等しいハプロタイプを配置するのに問題があります。次のスクリプトでハプロタイプ ネットを構築できます。

x <- read.dna(file="x.fas",format="fasta")
h <- haplotype(x)
net <- haploNet(h)
plot(net)

各分類群の元の集団のラベルを dnabin データに設定したいので、結果のネットワークで (異なる集団からのハプロタイプの) 異なる色の円グラフを作成できます。結果のハプロタイプ ネットワークで重複する円も削除したいと思います。

助けてくれてありがとう!

例:

> data(woodmouse)
> x <- woodmouse[sample(15, size = 110, replace = TRUE), ]
> h <- haplotype(x)
> net <- haploNet(h)
> plot(net, size=attr(net, "freq"), scale.ratio = 2, cex = 0.8)

このスクリプトは、{pegas} を使用してハプロタイプ ネットワークを構築するために使用されます。大きな円は、あるタイプのより多くのハプロタイプを表しています。ハプロタイプの起源を dnabin マトリックスに設定する方法を知りたいので、ネットワーク内で異なる色で表示されます。

4

1 に答える 1

5

わかりました、あなたの例から理解しようとしています。あなたが持っている集団は、集団ごとに3〜13のサンプルを持つ15の集団であるようです。

table(rownames(x))

# No0906S No0908S No0909S No0910S No0912S No0913S No1007S 
#      10       8       6       3       3       7       6 
# No1103S No1114S No1202S No1206S No1208S   No304   No305 
#       4      13       9       6       9      13       7 
#   No306 
#       6

を実行するhaplotype(x)と、(当然のことながら) 集団からハプロタイプへの 1:1 マッピングを表す 15 のハプロタイプが得られます。集団とハプロタイプの関係を示す表を作成できます。

ind.hap<-with(
    stack(setNames(attr(h, "index"), rownames(h))), 
    table(hap=ind, pop=rownames(x)[values])
)
ind.hap[1:10, 1:9]  #print just a chunk

#       pop
# hap    No0906S No0908S No0909S No0910S No0912S No0913S No1007S No1103S No1114S
#   I          0       0       0       0       0       0       0       0       0
#   II         0       0       0       0       0       0       6       0       0
#   III        0       0       0       0       0       0       0       4       0
#   IV        10       0       0       0       0       0       0       0       0
#   IX         0       0       0       0       0       0       0       0       0
#   V          0       0       6       0       0       0       0       0       0
#   VI         0       0       0       0       0       0       0       0       0
#   VII        0       0       0       0       0       7       0       0       0
#   VIII       0       0       0       0       0       0       0       0      13
#   X          0       0       0       0       0       0       0       0       0

プロット中にこのテーブルを使用して、各ノードで pic char を描画できます。

plot(net, size=attr(net, "freq"), scale.ratio = 2, cex = 0.8, pie=ind.hap)
legend(50,50, colnames(ind.hap), col=rainbow(ncol(ind.hap)), pch=20)

ここに画像の説明を入力

円グラフをよりよく見せるために、各サンプルに間違った母集団を割り当てることができます

wrong.pop<-rep(letters[1:5], each=22)
ind.hap2<-with(
    stack(setNames(attr(h, "index"), rownames(h))), 
    table(hap=ind, pop=wrong.pop[values])
)

plot(net, size=attr(net, "freq"), scale.ratio = 2, cex = 0.8, pie=ind.hap2)
legend(50,50, colnames(ind.hap2), col=rainbow(ncol(ind.hap2)), pch=20)

ここに画像の説明を入力

ここでは、集団を人工的な名前で誤ってラベル付けしたため、集団がうまく凝集しないため、各ハプロタイプでより多くの多様性があることがわかります。

于 2014-09-10T03:23:04.370 に答える