我有一个系统发育树,它显示了基因以及它们如何聚集在一起。 使用欧几里德距离矩阵和猿包进行绘制。 有关详细信息,请参阅前面的链接。
这是我的数据(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行,这是主要关注点。
答案 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