2014-02-21 44 views
1

我有一个系统发育树,它显示了基因以及它们如何聚集在一起。它使用欧几里德距离矩阵和ape包进行绘制。 有关更多详细信息,请参阅前面的链接。来自系统发育树的簇

Phylogenetic tree

这是我的数据(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个是获得formed.ALOX5,AR和ALPPL2形成一个cluster.ADRA1A,ADRA1B,ADRA1D大集群,AGTR1形成另一个簇。类似地,还有2个簇。 有没有什么办法可以将这些信息放在表格中,例如下面的例子? 有没有可用的软件来做到这一点?

GENE CLUSTER 

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

我只显示20行,但我有21k行,所以主要关心。

+1

请参阅'?cutree'。您可以指定切割树的高度(参数h)或组数(参数k)。 – 2014-02-21 18:12:56

回答

1

根据@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