私は、遺伝子のペアワイズ データに基づいて系統樹を作成する作業を行っています。以下は、データのサブセット (test.txt) です。ツリーは、DNA シーケンスに基づいて構築する必要はありませんが、それを次のように扱うだけです。言葉。
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
以下はRでの私のコードです
library(ape)
tab=read.csv("test.txt",sep="\t",header=TRUE)
d=dist(tab,method="euclidean")
fit <- hclust(d, method="ward")
plot(as.phylo(fit))
私のフィギュアはここに添付されています
それらがどのようにクラスター化されているかについて質問があります。
17 AR ADRA1B
18 AR ADRA1A
と
2 ADRA1B ADK
3 ADRA1A ADK
17 と 2 は一緒に、18 と 3 は一緒にあるはずです。
この方法(ユークリッド距離)の使用が間違っている場合、他の方法を使用する必要がありますか?
データを行と列の行列に変換する必要があります。ここで、gene1 は x 軸で、gene2 は y 軸で、各セルは 1 または 0 で埋められますか?(基本的に、ペアになっている場合は 1 を意味し、そうでない場合は0)
更新されたコード:
table=table(tab$gene1, tab$gene2)
d <- dist(table,method="euclidean")
fit <- hclust(d, method="ward")
plot(as.phylo(fit))
ただし、これでは、gene2 列ではなく、gene1 からの遺伝子のみを取得します。下の図はまさに私が望むものですが、gene2 列からの遺伝子も含まれている必要があります。