💻

snp distance matrixからseabornでヒートマップを作成

に公開

はじめに

以前の記事の続きになります。

matrixデータからPythonのseabornを使ってヒートマップを作成します。

動作確認 (Hardware)

-MacBook Pro
-チップ Apple M1
-macOS Ventura 13.6.6
-メモリ 16GB

動作確認 (Software)

-Python 3.10.8
-matplotlib 3.6.2
-seaborn 0.11.2

および

-Python 3.13.3
-matplotlib 3.10.1
-seaborn 0.13.2

手順

Pythonで各モジュールをインポートします。

Python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

以前の記事で作成した、系統樹のラベル順に並び替えたsnp distance matrixを読み込みます。

Python
df = pd.read_csv("path_to/distance_matrix.csv", index_col=0)

中身を確認します。

Python
df

seaborn.heatmapを使ってヒートマップを作成します。

Python
#サイズを指定(サイズは一例)
plt.figure(figsize=(16,16))

#ヒートマップを作成
sns.heatmap(df, square=True, cmap="BuGn", annot=True, 
    annot_kws={"fontsize":7}, fmt="d", cbar_kws={"shrink": 0.5})

#確認
plt.show()

今回使用しているオプションは以下の通りです。
データ数により値の調整が要ることもあると思います。

  • square=Trueでヒートマップが正方形で描画されるように指定
  • cmapで色とグラデーションのパターンを指定(今回は"BuGn")
  • annot=Trueに指定するとヒートマップ上にmatrixの値を表示
  • annot_kwsでヒートマップ内の数値のフォントサイズを指定
  • fmt="d"で数値を整数で表示
  • cbar_kwsでカラーバーのサイズを調整

名前をつけて保存します。解像度の値・ファイル形式(今回はPNG)は一例です。

Python
plt.savefig('matrix-heatmap.png', dpi=100)

以前の記事で作成した系統樹と並べてみます。

おわりに

系統樹のクラスターの近さ・遠さとsnp数との関係の様子を図でチェックすることができました。

Discussion