Agent skill
bio-data-visualization-color-palettes
Install this agent skill to your Project
npx add-skill https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills/tree/main/skills/bio-data-visualization-color-palettes
SKILL.md
name: bio-data-visualization-color-palettes description: Select and apply colorblind-friendly palettes for scientific figures using viridis, RColorBrewer, and custom color schemes. Use when selecting colorblind-friendly palettes for figures. tool_type: mixed primary_tool: viridis measurable_outcome: Execute skill workflow successfully with valid output within 15 minutes. allowed-tools:
- read_file
- run_shell_command
Color Palettes
Palette Types
| Type | Use Case | Example |
|---|---|---|
| Sequential | Continuous data (expression, coverage) | viridis, Blues |
| Diverging | Centered data (fold change, z-score) | RdBu, coolwarm |
| Qualitative | Categories (clusters, conditions) | Set1, tab10 |
viridis (Colorblind-Safe)
library(viridis)
# Continuous scale
ggplot(df, aes(x, y, color = value)) +
geom_point() +
scale_color_viridis_c()
# Discrete scale
ggplot(df, aes(x, y, color = group)) +
geom_point() +
scale_color_viridis_d()
# Options: viridis, magma, plasma, inferno, cividis, turbo
scale_color_viridis_c(option = 'magma')
import matplotlib.pyplot as plt
plt.scatter(x, y, c=values, cmap='viridis')
# Options: viridis, magma, plasma, inferno, cividis
RColorBrewer (R)
library(RColorBrewer)
# View all palettes
display.brewer.all()
# Sequential
scale_fill_brewer(palette = 'Blues')
scale_color_distiller(palette = 'YlOrRd', direction = 1)
# Diverging
scale_fill_brewer(palette = 'RdBu')
scale_color_gradient2(low = '#4DBBD5', mid = 'white', high = '#E64B35', midpoint = 0)
# Qualitative
scale_color_brewer(palette = 'Set1')
scale_fill_brewer(palette = 'Dark2')
# Get colors directly
brewer.pal(n = 5, name = 'Set1')
matplotlib/seaborn (Python)
import matplotlib.pyplot as plt
import seaborn as sns
# Sequential
plt.scatter(x, y, c=values, cmap='Blues')
# Diverging
plt.scatter(x, y, c=values, cmap='RdBu_r', vmin=-2, vmax=2)
# Qualitative
palette = sns.color_palette('Set1', n_colors=5)
sns.scatterplot(x=x, y=y, hue=group, palette='Set1')
# Custom palette
custom_palette = {'Control': '#4DBBD5', 'Treatment': '#E64B35'}
sns.scatterplot(x=x, y=y, hue=group, palette=custom_palette)
Scientific Journal Palettes
library(ggsci)
# Nature Publishing Group
scale_color_npg()
scale_fill_npg()
# AAAS Science
scale_color_aaas()
# Lancet
scale_color_lancet()
# JAMA
scale_color_jama()
# JCO
scale_color_jco()
Custom Palettes
# Define custom colors
my_colors <- c(
'Control' = '#4DBBD5',
'Treatment' = '#E64B35',
'Vehicle' = '#00A087'
)
scale_color_manual(values = my_colors)
scale_fill_manual(values = my_colors)
# Create gradient
colorRampPalette(c('blue', 'white', 'red'))(100)
from matplotlib.colors import LinearSegmentedColormap
colors = ['#4DBBD5', 'white', '#E64B35']
cmap = LinearSegmentedColormap.from_list('custom_diverging', colors)
plt.imshow(data, cmap=cmap)
Heatmap Colors
library(circlize)
# For ComplexHeatmap
col_fun <- colorRamp2(c(-2, 0, 2), c('#4DBBD5', 'white', '#E64B35'))
# For pheatmap
pheatmap(mat, color = colorRampPalette(rev(brewer.pal(9, 'RdBu')))(100))
import seaborn as sns
sns.heatmap(data, cmap='RdBu_r', center=0, vmin=-2, vmax=2)
Colorblind Simulation
library(colorspace)
# Check if palette is colorblind safe
demoplot(rainbow(5), type = 'map')
demoplot(viridis(5), type = 'map')
# Simulate colorblindness
cvd_colors <- deutan(c('#E64B35', '#4DBBD5', '#00A087')) # deuteranopia
cvd_colors <- protan(c('#E64B35', '#4DBBD5', '#00A087')) # protanopia
Recommended Palettes
| Data Type | Recommended | Avoid |
|---|---|---|
| Expression heatmap | RdBu (diverging) | Rainbow |
| Categories (<8) | Set1, Dark2, npg | Too many colors |
| Categories (>8) | tab20, Paired | Qualitative sets |
| Continuous | viridis, plasma | Jet, rainbow |
| p-values | viridis (reversed) | Red-green |
Transparency
# Add alpha
scale_color_manual(values = alpha(c('#E64B35', '#4DBBD5'), 0.7))
# In geom
geom_point(alpha = 0.6)
# Add alpha to hex
def add_alpha(hex_color, alpha):
return hex_color + format(int(alpha * 255), '02x')
color_with_alpha = add_alpha('#E64B35', 0.7)
# In scatter
plt.scatter(x, y, c='#E64B35', alpha=0.7)
Extract Colors from Palette
# Get discrete colors
pal <- brewer.pal(8, 'Set1')
pal[1:3] # First 3 colors
# Interpolate more colors
colorRampPalette(brewer.pal(8, 'Set1'))(20)
import seaborn as sns
palette = sns.color_palette('Set1', n_colors=8)
palette[:3] # First 3 colors
# As hex
palette.as_hex()
Related Skills
- data-visualization/ggplot2-fundamentals - Apply colors
- data-visualization/heatmaps-clustering - Heatmap colors
- data-visualization/specialized-omics-plots - Plot styling
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
vcf-annotator
Annotate VCF variants with VEP, ClinVar, gnomAD frequencies, and ancestry-aware context. Generates prioritised variant reports.
chemist-analyst
Analyzes events through chemistry lens using molecular structure, reaction mechanisms, thermodynamics, kinetics, and analytical techniques (spectroscopy, chromatography, mass spectrometry). Provides insights on chemical processes, material properties, reaction pathways, synthesis, and analytical methods. Use when: Chemical reactions, material analysis, synthesis planning, process optimization, environmental chemistry. Evaluates: Molecular structure, reaction mechanisms, yield, selectivity, safety, environmental impact.
bio-alignment-io
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.
sleep-analyzer
分析睡眠数据、识别睡眠模式、评估睡眠质量,并提供个性化睡眠改善建议。支持与其他健康数据的关联分析。
metabolomics-workbench-database
Access NIH Metabolomics Workbench via REST API (4,200+ studies). Query metabolites, RefMet nomenclature, MS/NMR data, m/z searches, study metadata, for metabolomics and biomarker discovery.
bio-hi-c-analysis-matrix-operations
Balance, normalize, and transform Hi-C contact matrices using cooler and cooltools. Apply iterative correction (ICE), compute expected values, and generate observed/expected matrices. Use when normalizing or transforming Hi-C matrices.
Didn't find tool you were looking for?