Agent Native

clinvar-database

This skill queries ClinVar, the NCBI database of clinical variant classifications, to retrieve pathogenicity labels, clinical significance, evidence…

by GoogleOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (flutter, google)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
License
Apache-2.0 (permissive)
Pin
6883275pinned Oct 9, 2026
Context cost
about 3,800 tokenswhen the skill loads
GitHub stars
3,224on google-deepmind/science-skills
Scripts
1 script

What it does

“Use when needing clinical significance, pathogenicity classifications (e.g., Pathogenic, Benign, VUS), clinical evidence rationales, or finding "hard positive" benchmark controls for human genomic variants.”
The author's description, from SKILL.md

Generated summary from the skill's own text

This skill queries ClinVar, the NCBI database of clinical variant classifications, to retrieve pathogenicity labels, clinical significance, evidence rationales, and genomic coordinates for human genetic variants. It uses a Python wrapper around the NCBI E-utilities API with built-in rate limiting, pagination, and XML parsing to provide reliable access to consensus clinical interpretations.

When to use it

  • Finding pathogenicity classifications (Pathogenic, Benign, VUS) for specific variants
  • Retrieving clinician rationales, submitter notes, and assertion criteria for variants
  • Locating variant controls or benchmarks within genes or genomic regions
  • Checking for conflicting clinical interpretations across laboratories

When not to

  • Need allele frequencies in populations; use gnomAD instead
  • Predicting mechanistic effects like frameshifts; use AlphaGenome instead
  • Seeking protein function or inheritance patterns; use OMIM instead

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add google-deepmind/science-skills --skill clinvar-database

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install google-deepmind/science-skills clinvar-database@68832757cbbf941c620b71df5756cf6e5cc287b0

Installs the commit we checked (6883275).

Copy by hand

Download the folder at 6883275 and put it in .claude/skills/clinvar-database for Claude Code and in .agents/skills/clinvar-database for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at 6883275

Claude Code plugin

/plugin install chrome-devtools-mcp@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Claude Code plugin

/plugin install alloydb-omni@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Claude Code plugin

/plugin install bigquery-data-analytics@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "clinvar-database" by Google.

Source, pinned to commit 68832757cbbf941c620b71df5756cf6e5cc287b0:
https://github.com/google-deepmind/science-skills/tree/68832757cbbf941c620b71df5756cf6e5cc287b0/skills/clinvar_database

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/clinvar-database/ for Claude Code and .agents/skills/clinvar-database/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/google/clinvar-database

SKILL.md at the pin

---
name: clinvar-database
description: >
  Use when needing clinical significance, pathogenicity classifications (e.g.,
  Pathogenic, Benign, VUS), clinical evidence rationales, or finding "hard
  positive" benchmark controls for human genomic variants.
---

# ClinVar Database

## Prerequisites

1.  **`uv`**: Read the `uv` skill and follow its Setup instructions to ensure
    `uv` is installed and on PATH.
2.  **User Notification**: If .licenses/clinvar_database_LICENSE.txt does not
    already exist in the workspace root directory then (1) prominently notify
    the user to check the terms at https://www.ncbi.nlm.nih.gov/clinvar/, then
    (2) create the file recording the notification text and timestamp.
3.  **`.env` file**: Make sure the `.env` file exists in your home directory.
    Create one if it does not exist.
4.  **`NCBI_API_KEY`** (optional): Raises the NCBI rate limit from 3 to 10
    requests/second. The skill works without it, but a key is recommended if the
    user plans many queries or encounters a 429 error. You can register for a
    key for free at https://www.ncbi.nlm.nih.gov/account/settings/. You **MUST**
    use the safe credentials protocol in the `credentials` skill to check for
    and request this key if this skill looks relevant to the user's request.

## Overview

ClinVar is the primary consensus record for clinical classifications of human
genomic variations. It provides the "clinical ground truth" for pathogenicity
labels (Pathogenic, Likely Pathogenic, Benign, VUS) based on assertions from
global laboratories.

## When to Use

**Use when you need to:**

-   Find the current clinical significance and star rating (review status) for a
    specific variant.
-   Fetch clinician notes, assertion criteria, or rationales for previous
    clinical laboratory classifications.
-   Retrieve the preferred condition name and associated HPO terms for a
    specific variant.
-   Find a list of variant controls (e.g., "Find all Pathogenic variants in the
    HBB gene within 50bp of a signal").
-   Check for conflicting interpretations for a given variant and identify the
    organizations submitting each classification.

**Do NOT use when you need to:**

-   Find specific allele frequencies in global populations (use **gnomAD**).
-   Describe the normal biological role of a protein and typical inheritance
    patterns (use **OMIM**).
-   Predict mechanistic effects of novel mutations, like frameshifts or exon
    skipping (use **AlphaGenome**).
-   Find recommended surveillance schedules for patients with a pathogenic
    variant (use **GeneReviews**).
-   Generate or view 3D structural models of affected proteins (use **PDB /
    AlphaFold**).

## Quick Start

ClinVar queries are executed via a robust Python wrapper script to handle strict
rate limiting and XML/JSON parsing.

Example: Search for BRCA1 variants

```bash
uv run scripts/clinvar_api.py search --query "BRCA1[gene]" --output results.json
```

## Core Rules

-   **Retmax Constraint**: The search command defaults to `--retmax 200`. For
    any "List all" or gene-wide request, you MUST explicitly set `--retmax`
    higher (e.g., 1000) to ensure data completeness.
-   **Use the Wrapper**: Prefer the wrapper script for standard queries. It
    handles rate limiting, retries, and the complex XML parsing for you. If the
    script's parsed output does not contain the specific fields you need, you
    may modify the script or query the NCBI E-utilities API directly — but be
    aware that the raw XML schemas are complex and vary between record types.
-   If the rate limit is hit, the script will throw a clear error. You **MUST**
    use the safe credentials protocol in the `credentials` skill to check for
    and request the `NCBI_API_KEY` to help the user add it to their `.env` file.
-   **Notification**: If this skill is used, ensure this is mentioned in the
    output.

## Utility Scripts

### 1. `count` — Count Matching Variants

**Purpose:** Check how many variants match a query without fetching IDs. Use to
decide whether a full `search` is warranted.

*Arguments:*

-   `--query`: (Required) NCBI Entrez search query string.
-   `--output`: (Required) Output JSON file path.

*Example:* `uv run scripts/clinvar_api.py count \ --query "TP53[gene] AND
\"uncertain significance\"[clinsig]" \ --output count.json` *Output:*
`{"total_count": <int>}`

### 2. `search` — Search Variants

**Purpose:** Identify variants based on genomic location, gene symbols, or
clinical attributes using NCBI Entrez search syntax. The search command
**automatically paginates** through all matching results to ensure complete,
deterministic retrieval.

```bash
# Fetch ALL matching variants (default behavior)
uv run scripts/clinvar_api.py search \
  --query "BRCA1[gene]" --output results.json

# Search by Chromosome and Position Range
uv run scripts/clinvar_api.py search \
  --query "11[chr] AND 5225000:5226000[chrpos]" --output results.json

# Combine terms using Entrez syntax
uv run scripts/clinvar_api.py search \
  --query "HBB[gene] AND pathogenic[clinsig]" --output results.json

# Cap results at 50
uv run scripts/clinvar_api.py search \
  --query "TP53[gene]" --retmax 50 --output results.json
```

*Arguments:*

-   `--query`: (Required) NCBI Entrez search query string.
-   `--retmax`: Maximum total number of variant IDs to return. **Default is 0,
    which means "fetch all matching results."** Set to a positive integer to cap
    the result set.
-   `--page_size`: Number of IDs to fetch per API request (default: 500, max:
    10000 per NCBI limits).
-   `--output`: (Required) Output JSON file path.

*Output:* A JSON object containing:

-   `total_count` — Total number of matching variants in ClinVar.
-   `fetched_count` — Number of IDs actually retrieved.
-   `variant_ids` — List of ClinVar Variation ID strings.

### 3. `summary` — Get Interpretation Summary

**Purpose:** Retrieve top-line clinical significance labels, star ratings
(review status), and basic phenotype data for rapid variant screening.

```bash
# Get summary for one or more Variation IDs
uv run scripts/clinvar_api.py summary \
  --variant_ids 12345 67890 --output summary.json
```

*Arguments:*

-   `--variant_ids`: (Required) One or more ClinVar Variation IDs.
-   `--output`: (Required) Output JSON file path.

*Output:* A JSON list of summary objects, each containing:

-   `variant_id`, `title`, `clinical_significance`, `review_status`, \
    `last_evaluated`, `phenotypes`
-   `genes` — list of `{gene_id, symbol, strand}`
-   `variation_type` — e.g., single nucleotide variant, Deletion, Insertion
-   `molecular_consequences` — list of strings (e.g., ["missense variant", \
    "nonsense"])

### 4. `evidence` — Get Clinical Evidence

**Purpose:** Fetch the full clinical record for a single variant, including
free-text clinician rationales, assertion methods, and specific submitter notes.

```bash
# Get full evidence for a single Variation ID
uv run scripts/clinvar_api.py evidence \
  --variant_id 12345 --output evidence.json
```

*Arguments:*

-   `--variant_id`: (Required) A single ClinVar Variation ID.
-   `--output`: (Required) Output JSON file path.

*Output:* A JSON object containing:

-   `variant_id`
-   `allele_info` — `{chromosome, position_start, position_stop,
    reference_allele, alternate_allele, cytogenetic_band, dbsnp_rsid}` (GRCh38
    preferred)
-   `conditions` — list of `{name, medgen_cui, omim_id, orphanet_id, hpo_terms}`
-   `functional_consequences` — list of `{value, sequence_ontology_id}`
-   `structural_variant_details` — `{outer_start, inner_start, inner_stop,
    outer_stop, copy_number}` (present only for CNVs, otherwise null)
-   `citation_references` — list of PubMed IDs cited in the global "Citations"
    section
-   `submissions` — list of per-submitter records, each containing:
    -   `submitter_name`, `classification`, `curator_notes`,
        `assertion_criteria`
    -   `date_last_evaluated` — when the submitter last reviewed the
        classification

## Typical Workflows

### Count-First Workflow (Recommended)

For large or unknown result sets, use `count` first to decide whether to
proceed, then `search` (which auto-paginates and returns `total_count` /
`fetched_count`), then `summary` to screen.

```bash
# Step 1: Gauge size (optional — search also returns total_count)
uv run scripts/clinvar_api.py count \
  --query "HBB[gene] AND pathogenic[clinsig]" --output count.json

# Step 2: Fetch all variant IDs (auto-paginates)
uv run scripts/clinvar_api.py search \
  --query "HBB[gene] AND pathogenic[clinsig]" --output ids.json

# Step 3: Get summaries (extract variant_ids from search output)
uv run scripts/clinvar_api.py summary \
  --variant_ids 12345 67890 --output summary.json
```

### Deep Dive: search → evidence

When you need the full clinical picture for a specific variant — including
submitter rationales, PubMed citations, ontology-linked conditions, and allele
coordinates — use `evidence`.

```bash
uv run scripts/clinvar_api.py evidence \
  --variant_id 12345 --output evidence.json
```

### Workflow: Robust Variant Discovery (Triangulation)

ClinVar metadata is inconsistent. To fulfill "List all" requests, do not rely on
a single filter. Perform the following in a single turn and merge results:

1.  **Search by exact label** (e.g., `"3 prime UTR
    variant"[molecular_consequence]`).
2.  **Search by HGVS nomenclature pattern** (e.g., `c.*`).
3.  **Search by genomic coordinate range** (using `[chrpos]`).

This "triangulation" ensures structural variants with missing labels are not
overlooked.

### Verifying Coding vs. Non-Coding Status via HGVS

`molecular_consequences` alone can be ambiguous (e.g., `splice donor variant`
appears in both coding and non-coding contexts). Always cross-check the `title`
field for HGVS patterns:

-   `c.-…` — 5' UTR (non-coding)
-   `c.*…` — 3' UTR (non-coding)
-   `c.123+N` / `c.123-N` — intronic (non-coding)
-   `p.Trp146Arg` etc. — protein effect (coding)

A variant with UTR/intronic HGVS and no `p.` annotation is non-coding, even with
splicing labels. Conversely, any `p.` annotation indicates a coding effect.

### ClinVar Metadata Reference

-   **3' UTR**
    -   Search String: `"3 prime UTR variant"[mol_consequence]`
    -   HGVS: `c.*`
-   **5' UTR**
    -   Search String: `"5 prime UTR variant"[mol_consequence]`
    -   HGVS: `c.-`
-   To find "high-confidence" variants or expert-reviewed consensus, use the
    `review_status` filter. This is the most efficient way to distinguish
    between single-laboratory assertions and panel-reviewed ground truth.

### When to Use Which Fields

-   **Quick pathogenicity label** — Use `summary` → `clinical_significance`
-   **Gene symbol and strand** — Use `summary` → `genes`
-   **Variant type (SNV, del, etc.)** — Use `summary` → `variation_type`
-   **Protein-level effect** — Use `summary` → `molecular_consequences`
-   **Genomic coordinates (GRCh38)** — Use `evidence` → `allele_info`
-   **Linked conditions (ontology)** — Use `evidence` → `conditions`
-   **SO functional consequence** — Use `evidence` → `functional_consequences`
-   **CNV breakpoints/copy number** — Use `evidence` →
    `structural_variant_details`
-   **PubMed references** — Use `evidence` → `citation_references`
-   **Date of last lab review** — Use both → `last_evaluated`
-   **Clinician rationales** — Use `evidence` → `submissions[].curator_notes`

### Retrieving Genomic Coordinates (Default HG38/GRCh38)

To get precise genomic coordinates in the format `<chrom>:<pos>:<ref>><alt>`
(e.g., `chr5:70951945:G>A`), you must use the `evidence` command, as these
details are not available in the `summary` output.

**You MUST always include genomic coordinates in the format
`<chrom>:<pos>:<ref>><alt>` when listing or presenting variants, even if not
explicitly requested by the user. If coordinates are missing from the summary,
use the `evidence` command or dbSNP fallback to retrieve them.**

1.  **Fetch Evidence**: Use `uv run scripts/clinvar_api.py evidence --variant_id
    <ID> --output evidence.json`.
2.  **Extract VCF Attributes**: The `evidence` command parses the XML. Extract:
    *   Chromosome: `Chr`
    *   Position: `positionVCF` (or `start`)
    *   Ref: `referenceAlleleVCF` (or `referenceAllele`)
    *   Alt: `alternateAlleleVCF` (or `alternateAllele`) from the
        `SequenceLocation` element with `Assembly="GRCh38"`.

**Fallback for Imprecise Coordinates (Gene Range):** ClinVar often returns the
full gene range for non-coding variants. If the extracted coordinates correspond
to the gene range instead of a specific position, use the `dbsnp-database` skill
to resolve the precise coordinates using the `dbsnp_rsid` or HGVS title: 1.Check
for `dbsnp_rsid` in the `evidence` output. 2. Run `uv run scripts/dbsnp_cli.py
resolve-rsid {rsid}` to get precise GRCh38 coordinates. 3. Format as
`<chrom>:<pos>:<ref>><alt>` using the SPDI or HGVS data from dbSNP.

### Structural Variant Note

The `structural_variant_details` field is **only populated for copy number
variants (CNVs)**. For standard SNVs and small indels this field will be `null`.
Use the `allele_info` fields (`position_start`, `position_stop`,
`reference_allele`, `alternate_allele`) instead.

### CNV / Large Deletion Note

Large copy-number variants (CNVs) frequently have empty
`molecular_consequences`. If a variant title mentions "del" and coordinates
overlap your target region, it is relevant regardless of missing labels.

### Obtaining and Using an API Key

You can register for a key for free at
https://www.ncbi.nlm.nih.gov/account/settings/. You **MUST** use the safe
credentials protocol in the `credentials` skill to check for and request this
key if this skill looks relevant to the user's request.

## Best Practices

-   Always use `uv run` to execute `python`.
-   If `jq` is unavailable pivot immediately to using Python one-liners for
    processing JSON (e.g., `uv run python3 -c "import json; ..."`).
-   Use `count` before `search` to understand the result set size.
-   The `search` command fetches all results by default and includes
    `total_count` and `fetched_count` in the output — always verify these match
    to confirm complete retrieval.
-   Entrez results are **unsorted**. To order by date, fetch all results and
    sort locally by `last_evaluated`.

## Common Mistakes

-   **Attempting to parse the E-utilities XML yourself** — Always use the
    provided `clinvar_api.py` client which handles the unpredictable XML schemas
    robustly.
-   **Getting HTTP 429 Too Many Requests** — The client throws an exception
    telling you to pause. You **MUST** use the safe credentials protocol in the
    `credentials` skill to check for and request the `NCBI_API_KEY` to help the
    user add it to their `.env` file, then retry.
-   **Sending raw DNA sequences to the API** — The API expects HGVS
    nomenclature, RS IDs, or proper Entrez coordinate syntax (`11[chr] AND
    1234[chrpos]`), not raw ATCG strings.
-   **For synonymous or non-coding variants** — HGVS nomenclature (e.g., CAPN3
    AND "c.551C>T") is more reliable than coordinate searches ([chrpos]), as
    many ClinVar records for these types lack precise genomic mappings.
-   **Case sensitivity in molecular consequences** — ClinVar returns mixed-case
    strings. Always use case-insensitive matching (`.lower()`) when filtering.
-   **Parsing `search` output as a bare list** — `search` returns a JSON object
    with `total_count`, `fetched_count`, and `variant_ids` — not a bare list.

From google-deepmind/science-skills at 6883275, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at 6883275

Files

3 files, 41 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at 6883275
All 50 skills from Google

More from Google

  • skill-creator

    This skill guides agents through creating new skills that extend Gemini CLI with specialized knowledge, workflows, and tool integrations.

    Contains scripts

    Gemini CLI · about 5K tokens · pinned 6 days ago

  • chrome-devtools-cli

    This skill enables agents to automate browser interactions and inspect web pages using Chrome DevTools via command-line interface.

    Claude Code, Codex, Cursor +4 · about 2.9K tokens · pinned 6 days ago

  • cloud-run-basics

    Deploys and manages Google Cloud Run services, jobs, and worker pools for running containerized applications or source code.

    Claude Code, Codex, Cursor +4 · about 3.9K tokens · pinned 6 days ago

  • retail-virtual-tryon

    Creates virtual try-on agents on Google Cloud using Gemini image models and Veo video generation, supporting static image try-ons and catwalk animations.

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 3.3K tokens · pinned 6 days ago

  • site-md

    This skill analyzes project briefs and generates a .stitch/SITE.md constitution file that documents the project's identity, visual direction, architecture…

    Claude Code, Codex, Cursor +4 · about 730 tokens · pinned 6 days ago

  • stitch::code-to-design

    This skill converts existing frontend code (React, Vue, Angular, etc.) into a Stitch Design by extracting HTML, analyzing design systems, and uploading both…

    Claude Code, Codex, Cursor +4 · about 760 tokens · pinned 6 days ago

  • data-table-manager

    This skill manages n8n Data Tables through creation, import, querying, and mutation operations.

    by n8nOfficial publisher

    Claude Code, Codex, Cursor +3 · about 2.1K tokens · pinned 6 days ago

  • algolia-automation

    This skill automates Algolia search and indexing operations through the Rube MCP interface.

    by ComposioOfficial publisher

    Claude Code, Codex, Cursor +3 · about 690 tokens · pinned 6 days ago

  • expo-sqlite

    This skill enables SQLite database operations in Expo and React Native apps for structured data storage, offline queues, and persistent caches.

    by ExpoOfficial publisher

    Claude Code, Codex, Cursor +4 · about 2.6K tokens · pinned 6 days ago

  • prisma-8

    This skill helps agents work with Prisma 8, a contract-first data layer for TypeScript projects.

    by PrismaOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 3.5K tokens · pinned 6 days ago

  • analyzing-experiment-session-replays

    This skill enables agents to analyze session recordings from experiment variants to identify behavioral differences between control and test groups.

    by PostHogOfficial publisher

    Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago

  • auditing-warehouse-view-health

    Audits materialized views in a PostHog data warehouse to identify failed views and flag unused ones that waste compute resources.

    by PostHogOfficial publisher

    Claude Code, Codex, Cursor +4 · about 1.4K tokens · pinned 6 days ago

Open roles at Google

No open roles at Google on the Agent Native jobs board right now.

Browse the jobs board

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use