💻
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