Annotate and filter VCF variants with SnpEff and SnpSift. SnpEff predicts functional effects (HIGH/MODERATE/LOW/MODIFIER), genes, transcripts, AA changes, HGVS; SnpSift filters and adds ClinVar/dbSNP. Java CLI with Python subprocess integration. Use ANNOVAR for multi-database annotation; Ensembl VEP for REST API; SnpEff for fast CLI with pre-built genomes.
SkillScore73Maintained
Automatic
◆Research pack
Last verified 9/3/2026
What it changes
Passed 16 of 22 test cases with the skill, and 12 of 22 without it.
Without skill55%
With skill73%
Checks it passed that the model alone missed
Specifies -s ',' for multi-value field separation.
Uses SnpSift extractFields with -e '.' to represent missing values.
Uses SnpSift annotate to add ClinVar fields and dbSNP identifiers to the VCF.
and 5 more in the full report
5 fixed11 passed either way5 still failing1 broke
Pass-rate lift
+18 pp
Tokens
+205%
Agent turns
0%
Response time
-24%
Model gemini-3.6-flashMeasured 9/3/2026v2 · latest is v316 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
See it in action
One of 5 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 5
Prompt
We want to filter an annotated VCF file with SnpSift to isolate rare functional variants while explicitly excluding any variant flagged as Benign or Likely_benign in ClinVar. The ClinVar annotations are present in the CLNSIG INFO tag. What is the logical operator syntax in SnpSift to filter out records matching 'Benign'?
What was checked, without and with the skill
Checked
Without skill
With skill
Uses SnpSift filter syntax with !(CLNSIG has 'Benign') to exclude benign classifications.
Missed
Passed
case-17 · gemini-3.6-flash · 9/3/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md497 linessingle file
SnpEff + SnpSift — Variant Annotation and Filtering
Overview
SnpEff annotates variants in VCF files by predicting their functional consequences: impact level (HIGH, MODERATE, LOW, MODIFIER), affected gene and transcript, amino acid change, and HGVS notation. SnpSift is the companion tool for filtering, sorting, and enriching annotated VCFs with external databases such as ClinVar and dbSNP. Together they form a fast, self-contained pipeline for going from raw variant calls to biologically interpretable, filtered variant sets. Both tools are Java-based and are invoked from the command line or Python subprocess; pre-built genome databases (hg38, GRCh37, mm10, and 100+ others) are downloaded with a single command.
When to Use
Annotating VCF files from GATK, DeepVariant, bcftools, or other callers with predicted gene-level functional consequences before manual review or downstream filtering
Prioritizing clinically relevant variants by filtering to HIGH-impact stop-gain, frameshift, and splice-site variants for rare disease or cancer gene panel analysis
Adding ClinVar pathogenicity classifications and dbSNP rsIDs to a variant set for cross-study comparison or clinical reporting
Extracting structured, tab-delimited fields (gene, protein change, AF, ClinSig) from annotated VCFs into pandas DataFrames for statistical analysis
Identifying candidate de novo variants in trio analysis by combining allele frequency thresholds, impact filters, and parent VCF exclusion
Use omics-plotting SKILL to render consequence/impact bar charts from the annotated variant tables
Use ANNOVAR instead when comprehensive annotation from multiple databases (gnomAD, CADD, SpliceAI) in a single run is required
Use Ensembl VEP instead when REST API access or VEP-specific plugins (CADD, LOFTEE, SpliceRegion) are needed
Prerequisites
Java: Java 11+ (required for SnpEff 5.x)
SnpEff JAR: downloaded from the SnpEff releases page or via conda/bioconda
Python packages (optional): cyvcf2, pandas, matplotlib, seaborn for Python-side parsing and visualization
Reference genome database: downloaded once per assembly (e.g., hg38, GRCh37, mm10)
Check before installing: The tool may already be available in the current environment (e.g., inside a pixi / conda env). Run command -v snpEff first and skip the install commands below if it returns a path. When running inside a pixi project, invoke the tool via pixi run snpEff rather than bare snpEff.
# Download SnpEff JAR
wget https://snpeff.blob.core.windows.net/versions/snpEff_latest_core.zip
unzip snpEff_latest_core.zip
# JAR is at snpEff/snpEff.jar and snpEff/SnpSift.jar
# Or via conda (recommended for reproducibility)
conda install -c bioconda snpeff
# Verify
java -jar snpEff/snpEff.jar -version
# SnpEff 5.2a (build 2024-02-06)
# Install Python packages for downstream parsing