Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Query NCBI ClinVar for variant clinical significance. Search by gene/position, interpret pathogenicity classifications, access via E-utilities API or FTP, annotate VCFs, for genomic medicine.
.claude/skills/clinvar-database/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
| case-03 | ✗→✓ | ▲ Improved | — | — |
| case-19 | ✗→✓ | ▲ Improved | — | — |
ClinVar is NCBI's freely accessible archive of reports on relationships between human genetic variants and phenotypes, with supporting evidence. The database aggregates information about genomic variation and its relationship to human health, providing standardized variant classifications used in clinical genetics and research.
This skill should be used when:
Search ClinVar using the web interface at https://www.ncbi.nlm.nih.gov/clinvar/
Common search patterns:
BRCA1[gene]pathogenic[CLNSIG]breast cancer[disorder]NM_000059.3:c.1310_1313del[variant name]13[chr]BRCA1[gene] AND pathogenic[CLNSIG]Access ClinVar programmatically using NCBI's E-utilities API. Refer to references/api_reference.md for comprehensive API documentation including:
Quick example using curl:
bash# Search for pathogenic BRCA1 variants curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=clinvar&term=BRCA1[gene]+AND+pathogenic[CLNSIG]&retmode=json"
Best practices:
Entrez.email when using BiopythonClinVar uses standardized terminology for variant classifications. Refer to references/clinical_significance.md for detailed interpretation guidelines.
Key germline classification terms (ACMG/AMP):
Review status (star ratings):
Critical considerations:
Download complete datasets from ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/
Refer to references/data_formats.md for comprehensive documentation on file formats and processing.
Update schedule:
XML files (most comprehensive):
xml/clinvar_variation/ - Variant-centric aggregationxml/RCV/ - Variant-condition pairsVCF files (for genomic pipelines):
vcf_GRCh37/clinvar.vcf.gzvcf_GRCh38/clinvar.vcf.gzTab-delimited files (for quick analysis):
tab_delimited/variant_summary.txt.gz - Summary of all variantstab_delimited/var_citations.txt.gz - PubMed citationstab_delimited/cross_references.txt.gz - Database cross-referencesExample download:
bash# Download latest monthly XML release wget ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/clinvar_variation/ClinVarVariationRelease_00-latest.xml.gz # Download VCF for GRCh38 wget ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz
Process XML files to extract variant details, classifications, and evidence.
Python example with xml.etree:
pythonimport gzip import xml.etree.ElementTree as ET with gzip.open('ClinVarVariationRelease.xml.gz', 'rt') as f: for event, elem in ET.iterparse(f, events=('end',)): if elem.tag == 'VariationArchive': variation_id = elem.attrib.get('VariationID') # Extract clinical significance, review status, etc. elem.clear() # Free memory
Annotate variant calls or filter by clinical significance using bcftools or Python.
Using bcftools:
bash# Filter pathogenic variants bcftools view -i 'INFO/CLNSIG~"Pathogenic"' clinvar.vcf.gz # Extract specific genes bcftools view -i 'INFO/GENEINFO~"BRCA"' clinvar.vcf.gz # Annotate your VCF with ClinVar bcftools annotate -a clinvar.vcf.gz -c INFO your_variants.vcf
Using PyVCF in Python:
pythonimport vcf vcf_reader = vcf.Reader(filename='clinvar.vcf.gz') for record in vcf_reader: clnsig = record.INFO.get('CLNSIG', []) if 'Pathogenic' in clnsig: gene = record.INFO.get('GENEINFO', [''])[0] print(f"{record.CHROM}:{record.POS} {gene} - {clnsig}")
Use pandas or command-line tools for rapid filtering and analysis.
Using pandas:
pythonimport pandas as pd # Load variant summary df = pd.read_csv('variant_summary.txt.gz', sep='\t', compression='gzip') # Filter pathogenic variants in specific gene pathogenic_brca = df[ (df['GeneSymbol'] == 'BRCA1') & (df['ClinicalSignificance'].str.contains('Pathogenic', na=False)) ] # Count variants by clinical significance sig_counts = df['ClinicalSignificance'].value_counts()
Using command-line tools:
bash# Extract pathogenic variants for specific gene zcat variant_summary.txt.gz | \ awk -F'\t' '$7=="TP53" && $13~"Pathogenic"' | \ cut -f1,5,7,13,14
When multiple submitters provide different classifications for the same variant, ClinVar reports "Conflicting interpretations of pathogenicity."
Resolution strategy:
Search query to exclude conflicts:
TP53[gene] AND pathogenic[CLNSIG] NOT conflicting[RVSTAT]Variant classifications may change over time as new evidence emerges.
Why classifications change:
Best practices:
Organizations can submit variant interpretations to ClinVar.
Submission methods:
references/api_reference.mdRequirements:
Contact: clinvar@ncbi.nlm.nih.gov for submission account setup.
Objective: Find pathogenic variants in CFTR gene with expert panel review.
Steps:
CFTR[gene] AND pathogenic[CLNSIG] AND (reviewed by expert panel[RVSTAT] OR practice guideline[RVSTAT])
Objective: Add clinical significance annotations to variant calls.
Steps:
bash wget ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz wget ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz.tbi
bash bcftools annotate -a clinvar.vcf.gz \ -c INFO/CLNSIG,INFO/CLNDN,INFO/CLNREVSTAT \ -o annotated_variants.vcf \ your_variants.vcf
bash bcftools view -i 'INFO/CLNSIG~"Pathogenic"' annotated_variants.vcf
Objective: Study all variants associated with hereditary breast cancer.
Steps:
hereditary breast cancer[disorder] OR "Breast-ovarian cancer, familial"[disorder]
Objective: Build a local ClinVar database for analysis pipeline.
Steps:
bash wget ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/clinvar_variation/ClinVarVariationRelease_YYYY-MM.xml.gz
This skill includes comprehensive reference documentation:
references/api_reference.md - Complete E-utilities API documentation with examples for esearch, esummary, efetch, and elink; includes rate limits, authentication, and Python/Biopython code samplesreferences/clinical_significance.md - Detailed guide to interpreting clinical significance classifications, review status star ratings, conflict resolution, and best practices for variant interpretationreferences/data_formats.md - Documentation for XML, VCF, and tab-delimited file formats; FTP directory structure, processing examples, and format selection guidanceFor questions about ClinVar or data submission: clinvar@ncbi.nlm.nih.gov
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
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 20 counted toward the lift figure. The other 2 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 +27 percentage points is the difference between those two pass rates over the 20 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.