私はゲノムデータをいじりたかった:
Species_A = ctnngtggaccgacaagaacagtttcgaatcggaagcttgcttaacgtag
Species_B = ctaagtggactgacaggaactgtttcgaatcggaagcttgcttaacgtag
Species_C = ctacgtggaccgacaagaacagtttcgactcggaagcttgcttaacgtag
Species_D = ctacgtggaccgacaagaacagtttcgactcggaagcttgcttaacgccg
Species_E = ctgtgtggancgacaaggacagttccaaatcggaagcttgcttaacacag
上記のゲノム配列が与えられた場合、これらの生物が互いにどれだけ密接に関連しているかに基づいて樹状図を作成したかった. 私が最初にしたことは、各種の a、c、t、および g の数を数え、次に配列を作成し、樹状図をプロットすることでした。
gen_size1 = len(Species_A)
a1 = float(Species_A.count('a'))/float(gen_size1)
c1 = float(Species_A.count('c'))/float(gen_size1)
g1 = float(Species_A.count('g'))/float(gen_size1)
t1 = float(Species_A.count('t'))/float(gen_size1)
.
.
.
gen_size5 = len(Species_E)
a5 = float(Species_E.count('a'))/float(gen_size5)
c5 = float(Species_E.count('c'))/float(gen_size5)
g5 = float(Species_E.count('g'))/float(gen_size5)
t5 = float(Species_E.count('t'))/float(gen_size5)
my_genes = np.array([[a1,c1,g1,t1],[a2,c2,g2,t2],[a3,c3,g3,t3],[a4,c4,g4,t4],[a5,c5,g5,t5]])
plt.subplot(1,2,1)
plt.title("Mononucleotide")
linkage_matrix = linkage(my_genes, "single")
print linkage_matrix
dendrogram(linkage_matrix,truncate_mode='lastp', color_threshold=1, labels=[Species_A, Species_B, Species_C, Species_D, Species_E], show_leaf_counts=True)
plt.show()
種 A と B は同じ生物の変種であり、私は両方が根から共通のクレードから分岐することを期待しています。種 C と D も同様であり、種 C と D は根から別の共通のクレードから分岐し、種 E は残念ながら、樹状図の結果は、種 A と E が共通のクレードから分岐し、次に種 C、D と B が別のクレードにあると混同されていました (かなり混乱しています)。
ゲノム配列の階層的クラスタリングについて読んだことがありますが、それは 2 次元システムにしか対応していないことがわかりました。残念ながら、a、c、t、g の 4 つの次元があります。このための他の戦略はありますか?助けてくれてありがとう!