我正在研究基於成對基因數據的系統發育樹。下面是我的數據子集(test.txt)。樹不必基於任何DNA序列構建,但只是把它當作單詞來對待。系統發育樹
ID gene1 gene2
1 ADRA1D ADK
2 ADRA1B ADK
3 ADRA1A ADK
4 ADRB1 ASIC1
5 ADRB1 ADK
6 ADRB2 ASIC1
7 ADRB2 ADK
8 AGTR1 ACHE
9 AGTR1 ADK
10 ALOX5 ADRB1
11 ALOX5 ADRB2
12 ALPPL2 ADRB1
13 ALPPL2 ADRB2
14 AMY2A AGTR1
15 AR ADORA1
16 AR ADRA1D
17 AR ADRA1B
18 AR ADRA1A
19 AR ADRA2A
20 AR ADRA2B
下面是我在R代碼裏面
library(ape)
tab=read.csv("test.txt",sep="\t",header=TRUE)
d=dist(tab,method="euclidean")
fit <- hclust(d, method="ward")
plot(as.phylo(fit))
我的數字是附在這裏
我有一個問題,他們是如何clustered.Since成對
17 AR ADRA1B
18 AR ADRA1A
和
2 ADRA1B ADK
3 ADRA1A ADK
應密切聚集,因爲他們有一個共同的gene.so 17和2應該在一起,而18和3
我應該用任何其他方法,如果我錯了,在使用這種方法(歐幾里德距離)?
我應該將數據轉換爲矩陣的行和列,其中gene1是x軸,gene2是y軸,每個單元格由1或0填充?(基本上,如果它們配對將意味着1,如果沒有的話0)
更新的代碼:
table=table(tab$gene1, tab$gene2)
d <- dist(table,method="euclidean")
fit <- hclust(d, method="ward")
plot(as.phylo(fit))
然而,在此我只得到從基因1的基因,而不是基因2如下圖所示column.The正是我想要的,但應該從基因2的基因列以及
我有點不解。如何計算字符串的歐式距離?您的示例中的gene1和gene2列是否真的是字符串或因素?如果他們是因子,並且'dist'計算了因子水平上的歐氏距離,我認爲沒有什麼合理的預期。 – Georg
我不確定,但它看起來像是基於特定分類羣中存在的基因的* union *進行聚類,而我認爲'hclust'會基於每個*的身份進行聚類*基因 - 即,如果分類1具有'基因1 = A','基因2 = B'且分類2具有'基因2 = B','基因2 = A',則它們根本不匹配... –
@Georg那些是字符串,我正在尋找方法從這個表中獲得一些關係,以便有一些聚類並構建一棵樹。我同意歐幾里德不能被使用,我只是想舉一個例子,關於我想要的。 – Rgeek