我正在研究基于成对基因数据的系统发育树。下面是我的数据子集(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