2014-02-21 67 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