論文
26の多様なトウモロコシゲノムのdenovoアセンブリ、注釈、および比較分析
データとコードの一部は公開されています。本日の論文の補足資料で図S29を繰り返してみます。
このヒートマップは、Pythonのseabornモジュールを使用して描画されます。描画コードを以下に説明します。
必要なモジュールをインポートする
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
データセットを読み込む
いくつかのデータのスクリーンショットは次のとおりです
file = "matrix-b73-ref.csv"
b73Ref = pd.read_csv(file, index_col=0).reindex(["B97", "Ky21", "M162W",
"Ms71", "Oh43", "Oh7B", "M37W", "Mo18W", "Tx303", "HP301", "P39",
"Il14H", "CML52", "CML69", "CML103", "CML228", "CML247", "CML277",
"CML322", "CML333", "Ki3", "Ki11", "NC350", "NC358", "Tzi8"])
b73Ref = b73Ref[["B97", "Ky21", "M162W",
"Ms71", "Oh43", "Oh7B", "M37W", "Mo18W", "Tx303", "HP301", "P39",
"Il14H", "CML52", "CML69", "CML103", "CML228", "CML247", "CML277",
"CML322", "CML333", "Ki3", "Ki11", "NC350", "NC358", "Tzi8"]]
index_col=0
データセットの最初の列を使用した行名は次のとおりです
reindx()
機能は、独自のコンテンツに従って行を並べ替えることです
[[]]
指定された内容に従って列を並べ替えることです
データセットの最初の5行を表示する
b73Ref.head(5)
最も基本的なヒートマップ
sns.heatmap(b73Ref)
下の三角形だけを保持します
ここで直接読み取られるデータセットのデータ型は整数型であり、データを浮動小数点型に変換する必要があります。論文で提供されているコードはデータ型を変換しません。彼のコードに従って完全に実行すると、エラーが発生する可能性があります。これは、Pythonのバージョンが異なることが原因である可能性があります。現在使用しているPythonは3.8.3です。
colnames = ["B97", "Ky21", "M162W",
"Ms71", "Oh43", "Oh7B", "M37W", "Mo18W", "Tx303", "HP301", "P39",
"Il14H", "CML52", "CML69", "CML103", "CML228", "CML247", "CML277",
"CML322", "CML333", "Ki3", "Ki11", "NC350", "NC358", "Tzi8"]
dtype = {}
for colname in colnames:
dtype[colname] = np.float64
df = b73Ref.astype(dtype)
mask = np.triu(np.ones_like(df,dtype=bool))
sns.heatmap(df,mask=mask)
色を変える
cmap = sns.diverging_palette(370, 120, n=80, as_cmap=True)
sns.heatmap(df, mask=mask, cmap=cmap, robust=True,
square=True, linewidths=.5, cbar_kws={"shrink": .5})
補助線を追加し、y軸のタイトルを削除します
f, ax = plt.subplots(figsize=(14, 14))
cmap = sns.diverging_palette(370, 120, n=80, as_cmap=True)
sns.heatmap(df, mask=mask, cmap=cmap, robust=True,
square=True, linewidths=.5, cbar_kws={"shrink": .5})
plt.ylabel('')
ax.axvline(x=6, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.76)
ax.axvline(x=9, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.64)
ax.axvline(x=10, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.6)
ax.axvline(x=12, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.52)
ax.axhline(y=6, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.24)
ax.axhline(y=9, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.36)
ax.axhline(y=10, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.4)
ax.axhline(y=12, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.48)
軸のラベルに色を付けます
f, ax = plt.subplots(figsize=(14, 14))
cmap = sns.diverging_palette(370, 120, n=80, as_cmap=True)
sns.heatmap(df, mask=mask, cmap=cmap, robust=True,
square=True, linewidths=.5, cbar_kws={"shrink": .5})
plt.ylabel('')
ax.axvline(x=6, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.76)
ax.axvline(x=9, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.64)
ax.axvline(x=10, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.6)
ax.axvline(x=12, color ='blue', lw = 1.5, alpha = 0.75, ymax = 0.52)
ax.axhline(y=6, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.24)
ax.axhline(y=9, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.36)
ax.axhline(y=10, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.4)
ax.axhline(y=12, color ='black', lw = 1.5, alpha = 0.75, xmax = 0.48)
mycol = ["#4169E1", "#4169E1", "#4169E1", "#4169E1", "#4169E1", "#4169E1", "#787878", "#787878", "#787878", "#DA70D6", "#FF4500", "#FF4500", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32", "#32CD32"]
for tick, color in zip(ax.get_xticklabels(), mycol): tick.set_color(color)
for tick, color in zip(ax.get_yticklabels(), mycol): tick.set_color(color)
plt.savefig("1.pdf")
これが最終結果です
私の公開番号に注意を払うためにみんなを歓迎します
XiaoMingのデータ分析ノート
Xiaomingのデータ分析ノートブックの公開アカウントは主に次のことを共有しています。1。データ分析とデータ視覚化のためのR言語とpythonの簡単な例;2。トランスクリプトミクス、ゲノミクス、人口遺伝学の文献に関連する園芸植物に関するメモを読む;3.バイオインフォマティクス入門研究資料を学ぶあなた自身の研究ノート!
この記事は、WeChatのパブリックアカウントであるXiao Mingのデータ分析ノートブック(gh_0c8895f349d3)から共有されています。
侵害がある場合は、[email protected]に連絡して削除してください。
この記事は「OSC元川プロジェクト」に参加していますので、ぜひご参加ください。