"Use dense Hail MatrixTable workflows for VCF, PLINK, BGEN,
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill genomics-analysis --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Genomics Analysis?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-genomics-analysis)More formats (shields.io, HTML) on the badges page.
---
name: genomics-analysis
description: "Use dense Hail MatrixTable workflows for VCF, PLINK, BGEN,
variant/sample QC, multiallelic splitting, PCA, LD pruning, association tests,
VEP/Nirvana-style annotation, and reference genome or locus/call handling."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# Hail Genomics Analysis
Use this sub-skill when the task is about dense genotype data represented as a Hail `MatrixTable`: importing VCF, PLINK, or BGEN; reasoning about row, column, entry, and global axes; annotating samples or variants; filtering calls; running QC; splitting multiallelics; running PCA, LD pruning, relatedness, or association tests; applying VEP/Nirvana-style annotation; or diagnosing reference genome and contig issues.
## Start Here
- Read `references/matrixtable-workflows.md` for import-to-native-cache, annotation, filtering, QC, split, PCA, association, VEP, and export recipes.
- Read `references/genomic-methods.md` for task-to-method selection across QC, PCA, association, relatedness, VEP/Nirvana boundaries, reference genomes, `Locus`, `Call`, and `Pedigree`.
- Read `references/data-formats.md` before choosing import/export options or interpreting `locus`, `alleles`, `s`, `GT`, `DP`, `GQ`, `PL`, `info`, dosage, and phenotype fields.
- Read `references/troubleshooting.md` when imports fail, references mismatch, `split_multi_hts` produces surprising INFO fields, VEP/Nirvana cannot run, association covariates fail, or `collect`/`entries` is too expensive.
- Use `scripts/matrixtable_recipe_template.py --print-template` to generate a safe, editable dense MatrixTable recipe skeleton.
## Route Elsewhere
- Use `../variant-datasets/SKILL.md` for sparse GVCF, VDS, combiner, `hl.vds`, local allele fields, or VDS-to-dense conversion work.
- Use `../tables-and-expressions/SKILL.md` for generic `Table` pipelines, one-dimensional annotations, joins, aggregations, or expression-index errors that do not depend on MatrixTable axes.
- Use `../setup-and-backends/SKILL.md` for `hl.init`, Spark/local/Batch backend choice, package installation, Java/JAR/runtime problems, cloud credentials, logs, and storage configuration.
- Use `../batch-and-cli/SKILL.md` for `hailctl`, `hailtop.batch`, job DAGs, cloud Batch execution, Dataproc/HDInsight command families, or CLI automation.
## Core Mental Model
A dense `MatrixTable` has four axes:
- `row`: variant/site fields, usually keyed by `locus` and `alleles`.
- `column`: sample fields, usually keyed by `s`.
- `entry`: per-row-by-column values such as `GT`, `DP`, `GQ`, `AD`, `PL`, `GP`, or `dosage`.
- `global`: metadata shared by the full dataset.
Choose axis-specific methods deliberately: `annotate_rows`, `annotate_cols`, `annotate_entries`, `annotate_globals`, `filter_rows`, `filter_cols`, `filter_entries`, `select_rows`, `select_cols`, `select_entries`, and `select_globals`. Avoid converting to `entries()` unless the task truly needs coordinate-form rows.
## Verified API Anchors
The inspected package exposes these dense-genomics entry points: `hl.import_vcf`, `hl.import_plink`, `hl.import_bgen`, `hl.export_vcf`, `hl.variant_qc`, `hl.sample_qc`, `hl.split_multi_hts`, `hl.linear_regression_rows`, `hl.logistic_regression_rows`, `hl.pca`, `hl.ld_prune`, and `hl.vep`. Treat `hl.vep` and `hl.nirvana` as external annotation boundaries: Hail joins annotations back to row variants, but executables, configs, caches, schemas, and assembly compatibility are environment responsibilities.
## Safe Defaults
- Import external genetics formats with an explicit `reference_genome`, inspect `mt.describe()`, then write or checkpoint native `.mt` before iterative analysis.
- Use `hl.variant_qc` and `hl.sample_qc` only when `GT` is a `call` entry field and row keys represent variant-like `locus`/`alleles`.
- Run `hl.split_multi_hts` before biallelic-only HWE-sensitive QC, LD pruning, many association workflows, and allele-specific annotations.
- Include an intercept explicitly in association covariates, usually `covariates=[1, ...]`.
- Keep dense workflows separate from VDS workflows; do not force sparse GVCF data into dense MatrixTables unless the task explicitly calls for densification.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!