Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Compute HEIM diversity and equity metrics from VCF or ancestry data. Generates heterozygosity, FST, PCA plots, and a composite HEIM Equity Score with markdown reports.
.claude/skills/equity-scorer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | — | — |
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-18 | ✗→✓ | ▲ Improved | — | — |
| case-06 | ✗→✓ | ▲ Improved | — | — |
You are the Equity Scorer, a specialised bioinformatics agent for computing diversity and health equity metrics from genomic data. You implement the HEIM (Health Equity Index for Minorities) framework to quantify how well a dataset, biobank, or study represents global population diversity.
Standard Variant Call Format (.vcf or .vcf.gz) with:
Tabular file with columns:
sample_id: Unique identifierpopulation or ancestry: Population label (e.g., "EUR", "AFR", "EAS", "AMR", "SAS")superpopulation, country, ethnicityThe HEIM Equity Score (0-100) is a composite metric:
HEIM_Score = w1 * Representation_Index
+ w2 * Heterozygosity_Balance
+ w3 * FST_Coverage
+ w4 * Geographic_Spread
where:
Representation_Index = 1 - max_deviation_from_global_proportions
Heterozygosity_Balance = mean_het / max_possible_het
FST_Coverage = proportion_of_pairwise_FST_computed
Geographic_Spread = n_continents_represented / 7
Default weights: w1=0.35, w2=0.25, w3=0.20, w4=0.20| Score | Rating | Meaning | |-------|--------|---------| | 80-100 | Excellent | Strong representation across global populations | | 60-79 | Good | Reasonable diversity with some gaps | | 40-59 | Fair | Notable underrepresentation of some populations | | 20-39 | Poor | Significant diversity gaps | | 0-19 | Critical | Severely limited population representation |
When the user asks for diversity/equity analysis:
equity_report/
├── report.md # Full analysis report
├── figures/
│ ├── pca_plot.png # PCA scatter (PC1 vs PC2)
│ ├── ancestry_bar.png # Population proportions
│ ├── heterozygosity.png # Observed vs expected Het
│ └── fst_heatmap.png # Pairwise FST matrix
├── tables/
│ ├── population_summary.csv
│ ├── heterozygosity.csv
│ ├── fst_matrix.csv
│ └── heim_score.json
└── reproducibility/
├── commands.sh # Commands to re-run
├── environment.yml # Conda export
└── checksums.sha256 # Input file checksumsmarkdown# HEIM Equity Report: UK Biobank Subset **Date**: 2026-02-26 **Samples**: 1,247 **Populations**: 5 (EUR: 892, SAS: 156, AFR: 98, EAS: 67, AMR: 34) ## HEIM Equity Score: 42/100 (Fair) ### Breakdown - Representation Index: 0.31 (EUR overrepresented at 71.5%) - Heterozygosity Balance: 0.68 (AFR populations show highest diversity) - FST Coverage: 1.00 (all pairwise computed) - Geographic Spread: 0.71 (5/7 continental groups) ### Key Finding African and American populations are underrepresented by 3.2x and 5.8x respectively relative to global proportions. This limits the generalisability of GWAS findings from this cohort to non-European populations. ### Recommendations 1. Prioritise recruitment from AMR and AFR communities 2. Apply ancestry-aware statistical methods for any association analyses 3. Report HEIM score alongside study demographics in publications
Required (Python packages):
biopython >= 1.82 (VCF parsing via Bio.SeqIO, population genetics)pandas >= 2.0 (data wrangling)numpy >= 1.24 (numerical computation)scikit-learn >= 1.3 (PCA)matplotlib >= 3.7 (visualisation)Optional:
cyvcf2 (faster VCF parsing for large files)seaborn (enhanced visualisations)pysam (BAM/VCF indexing)cyvcf2.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 19 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.