Clustermap
Genomic Variant Effect
Mutation impact across gene regions
Output
Python
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
np.random.seed(42)
# Genomic regions and variant types
regions = ['Promoter', 'UTR5', 'Exon1', 'Intron1', 'Exon2', 'Intron2',
'Exon3', 'UTR3', 'Enhancer', 'Silencer']
variants = ['Missense', 'Nonsense', 'Frameshift', 'Splice', 'Synonymous', 'Regulatory']
# Effect scores (0 = no effect, 1 = severe)
effects = np.random.rand(len(regions), len(variants)) * 0.3
# Exons have higher effect for coding variants
effects[2, 0:4] += 0.5
effects[4, 0:4] += 0.5
effects[6, 0:4] += 0.4
# Regulatory regions for regulatory variants
effects[0, 5] += 0.6
effects[8, 5] += 0.5
effects[9, 5] += 0.4
df = pd.DataFrame(effects, index=regions, columns=variants)
# NEON fire colormap
neon_fire = LinearSegmentedColormap.from_list('neon_fire', ['#0a0a0f', '#4927F5', '#F54927', '#F5B027'])
g = sns.clustermap(df, cmap=neon_fire,
method='average', metric='euclidean',
linewidths=0.5, linecolor='#1a1a2e',
figsize=(8, 7), dendrogram_ratio=(0.12, 0.12),
cbar_pos=(0.01, 0.08, 0.008, 0.12),
tree_kws={'linewidths': 1.5, 'colors': '#27D3F5'})
g.fig.patch.set_facecolor('#0a0a0f')
g.ax_heatmap.set_facecolor('#0a0a0f')
g.ax_heatmap.tick_params(colors='white', labelsize=9)
for ax in [g.ax_row_dendrogram, g.ax_col_dendrogram]:
ax.set_facecolor('#0a0a0f')
g.fig.suptitle('Variant Effect by Genomic Region', color='white', fontsize=14, fontweight='bold', y=1.02)
plt.show()
Library
Matplotlib
Category
Heatmaps & Density
More Clustermap examples
☕