2

我有一个系统发育树,它显示了基因以及它们如何聚集在一起。它是使用欧几里得距离矩阵和猿包绘制的。有关更多详细信息,这里是较早的链接。

系统发育树

这是我的数据(gg.txt),已转换为基因矩阵。

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

生成树的最终代码是:

library(ape) 
tab=read.table("gg.txt",header=TRUE, stringsAsFactors=FALSE)
gene.names <- sort(unique(c(tab[,"gene1"],tab[,"gene2"])))
gene.matrix <- cbind(matrix(0L,nrow=length(gene.names),ncol=length(gene.names)))
colnames(gene.matrix) <- c(gene.names)
rownames(gene.matrix)<- c(gene.names)
gene.matrix[as.matrix(tab[-1])] <- 1

##calculating distances

d <- dist(gene.matrix,method="euclidean")
fit <- hclust(d, method="ward")
plot(as.phylo(fit)) 

我们可以看到形成了 4 个大集群。ALOX5、AR 和 ALPPL2 形成一个集群。ADRA1A、ADRA1B、ADRA1D、AGTR1 形成另一个集群。同样,还有 2 个集群。有没有办法把这些信息放在一个表格中,例如下面的?有没有可用的软件可以做到这一点?

GENE   CLUSTER

ALOX5    1
AR       1
ALPPL2   1
ADRA1A   2
ADRA1B   2
ADRA1D   2
AGTR1    2
..
..
..

我只显示了 20 行,但我有 21k 行,所以这是主要问题。

4

1 回答 1

2

根据@JTT cutree,效果很好!这就是我想要的。

cut =cutree(fit,k=5)

cut

ACHE    ADK ADORA1 ADRA1A ADRA1B ADRA1D ADRA2A ADRA2B  ADRB1  ADRB2  AGTR1  ALOX5 ALPPL2  AMY2A     AR  ASIC1 
 1      1      1      2      2      2      1      1      3      3      2      4      4      1      5      1 
于 2014-02-21T18:45:44.280 回答