Query RegulomeDB v2 GET REST API to score variants for regulatory function and retrieve overlapping evidence (TF binding, histone marks, DNase peaks, footprints, motifs, eQTLs, chromatin state). Scores range 1a (strongest) to 7 (none).
SkillScore100Maintained
Automatic
◆Research pack
Last verified 8/24/2026
What it changes
Passed 22 of 22 test cases with the skill, and 11 of 22 without it.
Without skill50%
With skill100%
Checks it passed that the model alone missed
Function reads maf field from items in nearby_snps.
Function reads dataset attribute inside @graph items.
Query string formats regions as chr17:7670000-7670001.
and 12 more in the full report
11 fixed11 passed either way0 still failing0 broke
Pass-rate lift
+50 pp
Tokens
+186%
Agent turns
0%
Response time
-44%
Model gemini-3.6-flashMeasured 8/24/2026v122 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 11
Prompt
I have a single-base variant at chromosome 17 position 7670000 (GRCh38). How should the coordinate range be formatted for the `regions` parameter when calling RegulomeDB GET endpoint?
What was checked, without and with the skill
Checked
Without skill
With skill
Query string formats regions as chr17:7670000-7670001.
Missed
Passed
case-16 · gemini-3.6-flash · 8/24/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md497 linessingle file
RegulomeDB Database
Overview
RegulomeDB integrates large-scale functional genomics data (ENCODE, Roadmap Epigenomics) to score genetic variants for regulatory potential. Each variant receives a ranking from 1a (highest regulatory confidence: eQTL + TF + DNase + motif + chromatin) to 7 (no known regulatory function). The v2 API is exposed as GEThttps://regulomedb.org/regulome-search/; the legacy POST /regulome-search/, POST /regulome-summary/, and GET /regulome-datasets/ JSON endpoints are no longer functional (return regulome-notfound stubs or 500). Access is free and requires no authentication.
When to Use
Prioritizing GWAS hits for regulatory follow-up — identify which SNPs land in active regulatory elements
Annotating a VCF or variant list with regulatory scores to filter to functionally relevant variants
Identifying which transcription factors bind near a variant of interest (via the @graph evidence rows)
Checking whether a non-coding variant overlaps a QTL and active chromatin simultaneously (features.QTL)
Retrieving all annotated rsIDs in a genomic region for cis-regulatory analysis (region query with nearby_snps)
Use clinvar-database instead when you need clinical pathogenicity classifications; RegulomeDB scores regulatory function, not germline disease association
Use gwas-database instead when you want published GWAS associations with traits
Prerequisites
Python packages: requests, pandas, matplotlib
Data requirements: rsIDs (e.g., rs4946036), genomic positions (chr1:1000000), or region coordinates (chr1:1000000-2000000)
Genome build: GRCh38 (default) or GRCh37; specify in all requests
Rate limits: No published rate limits; use time.sleep(0.3) between requests in batch workflows
pip install requests pandas matplotlib
Quick Start
import requests
BASE = "https://regulomedb.org"
def regulome_score(variant, genome="GRCh38"):
"""Score a single variant (rsID or chr:pos-pos) via the GET /regulome-search/ endpoint."""
r = requests.get(
f"{BASE}/regulome-search/",
params={"regions": variant, "genome": genome, "format": "json"},
timeout=30,