来自系统发育树的集群

时间:2014-02-21 17:50:09

标签: r tree hierarchical-clustering phylogeny r-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个大的集群形成.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行,这是主要关注点。

1 个答案:

答案 0 :(得分: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