
ENCODE Database Skill
FreeEfficiently query regulatory elements from ENCODE.
Free · Opens the source repo
What ENCODE Database Skill does
The ENCODE Database Skill provides a streamlined way to access the ENCODE Registry of candidate cis-Regulatory Elements (cCREs) through the SCREEN GraphQL API. This skill is particularly useful for researchers and developers who need to identify functional non-coding DNA elements, such as promoters and enhancers, by analyzing biochemical signatures like DNase and H3K4me3. By leveraging this skill, users can efficiently gather regulatory annotations and raw experimental data across various human cell types.
To utilize this skill, users must follow specific prerequisites, including ensuring the uv skill is installed and that they are aware of the licensing terms associated with the ENCODE data. The skill comes with a set of helper scripts that enforce rate limits and facilitate the querying process, ensuring users do not overwhelm the API. It is important to parse the output correctly using tools like jq to handle potentially large JSON files, which is a critical aspect of working with this skill.
The skill supports various commands such as searching for cCREs by genomic coordinates, retrieving details for specific cCREs, and obtaining metadata about biosamples. Additionally, users can explore nearby genes, linked genes, and gene expression data, making it a comprehensive tool for genomic research. The ability to specify assemblies further enhances its utility, allowing for targeted queries in different genomic contexts.
Overall, this skill is designed for bioinformaticians, geneticists, and researchers looking to integrate regulatory element data into their workflows, providing a robust interface for accessing and analyzing complex genomic data.
When to use it
Use this skill when you need to query regulatory annotations or raw experimental data from the ENCODE database.
When not to use it
This skill is not suitable for users who require direct access to the ENCODE database without using the provided scripts, or for those who do not have the necessary prerequisites installed.
What you can build with it
Searching for cCREs
Use the search command to find candidate cis-Regulatory Elements by specifying genomic coordinates.
Retrieving Biosample Metadata
Get detailed metadata for biosamples to understand the data completeness and characteristics.
Analyzing Gene Expression
Query gene expression data across different biosamples to study the expression levels of specific genes.
How to install ENCODE Database Skill
View source1. Install with the skills CLI
npx skills add google-deepmind/science-skills/encode_ccres_database --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by google-deepmindENCODE Database Skill
This skill allows you to query the ENCODE Registry of cCREs (candidate cis-Regulatory Elements) via the SCREEN GraphQL API. It helps identify functional non-coding DNA elements (like Promoters, Enhancers, and insulators) by analyzing biochemical signatures (DNase, H3K4me3, H3K27ac, CTCF).
Prerequisites
uv: Read theuvskill and follow its Setup instructions to ensureuvis installed and on PATH.- User Notification: If .licenses/encode_ccres_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.encodeproject.org/help/rest-api/, then (2) create the file recording the notification text and timestamp.
Core Rules
- Use the Wrapper: ALWAYS execute the provided helper scripts to query the database rather than accessing the database directly. The scripts automatically enforce the required rate limit gracefully.
- Parsing Output: Do NOT use
catto read the entire JSON output file into context, as it can be extremely large. You MUST usejqto efficiently parse and extract relevant fields. - Notification: If this skill is used, ensure this is mentioned in the output.
Quick Start
# Search cCREs by coordinates
uv run scripts/screen_api.py search --chromosome chr11 \
--start 5205263 --end 5207263 \
--output /tmp/search.json
# Get details for a specific cCRE
uv run scripts/screen_api.py details EH38E2941922 \
--output /tmp/details.json
All subcommands write JSON to disk. Always save output in a temporary location
like /tmp/.
Identifying High-Confidence ("Type A") Biosamples
Biosamples in ENCODE are often categorized by their data completeness. "Type A" (or high-confidence) biosamples are those that have experimental data for all four core epigenetic markers: DNase, H3K4me3, H3K27ac, and CTCF.
The biosamples and details commands automatically enrich their output with
an is_type_a boolean flag for each biosample.
Example: Finding high-confidence cell types
uv run scripts/screen_api.py biosamples --output /tmp/biosamples.json
# Use jq to filter for Type A biosamples
jq '.data.ccREBiosampleQuery.biosamples[] | select(.is_type_a == true) | .displayname' /tmp/biosamples.json
Parsing Output (CRITICAL)
Do NOT use cat to read the entire JSON output file into context, as it
can be extremely large. Instead, you MUST use jq to efficiently parse and
extract the relevant fields from the JSON file saved by the script. If jq is
not available on the system, write your own Python filtering code (e.g.,
python3 -c "import json...") to extract the necessary data.
For a complete reference of the JSON structure returned by eachmcommand (so you
know which fields to query with jq), read
references/json_output_structure.md.
Available Commands
-
search: Search cCREs by coordinates, accessions, or epigenetic signals.uv run scripts/screen_api.py search \ --chromosome chr11 --start 5205263 --end 5207263 \ --output /tmp/search.json -
nearby-genes: Find nearby genes for given cCRE accessions.uv run scripts/screen_api.py nearby-genes \ EH38E1516972 --output /tmp/nearby.json -
details: Get detailed information and biosample-specific max Z-scores for a specific cCRE.uv run scripts/screen_api.py details EH38E2941922 \ --output /tmp/details.json -
biosamples: Get biosample metadata for an assembly.uv run scripts/screen_api.py biosamples \ --output /tmp/biosamples.json -
orthologs: Get orthologous cCREs in another assembly.uv run scripts/screen_api.py orthologs EH38E2941922 \ --output /tmp/orthologs.json -
linked-genes: Find linked genes via methods like HiC or eQTLs.uv run scripts/screen_api.py linked-genes \ EH38E1516972 --output /tmp/linked.json -
gene-expression: Get gene expression (TPM) across all biosamples for a named gene. Internally resolves the gene symbol to an Ensembl gene ID, then queries per-biosample RNA-seq quantifications.uv run scripts/screen_api.py gene-expression GAPDH \ --output /tmp/gene_expr.json -
entex: Get ENTEx data for a cCRE or genomic region.uv run scripts/screen_api.py entex \ --accession EH38E1310345 \ --output /tmp/entex.jsonuv run scripts/screen_api.py entex \ --region chr1:1000068:1000409 \ --output /tmp/entex.json -
gwas: Query genome-wide association studies, SNPs, or enrichment data.uv run scripts/screen_api.py gwas studies \ --output /tmp/gwas.jsonuv run scripts/screen_api.py gwas snps --study \ Ahola-Olli_AV-27989323-Eotaxin_levels \ --output /tmp/gwas_snps.json
You can supply the --assembly mm10 or --assembly grch38 flag to explicitly
request a specific assembly for most commands. By default, the script targets
grch38 but will automatically fall back to mm10 if no results are found or
if the query fails.
ENCODE Portal REST API (Direct Access)
For accessing raw experiments, ChIP-seq peaks, or other datasets that are not
represented as cCREs in SCREEN, use the scripts/encode_portal_api.py script.
It allows custom queries to the ENCODE Portal REST API.
Usage
uv run scripts/encode_portal_api.py search "type=Experiment&target.label=ZNF549" --output /tmp/znf549_experiments.json
Data Analysis Tips
When analyzing .bed or .bigBed files downloaded from ENCODE, standard
bioinformatics tools are highly recommended for finding overlaps (e.g., between
gene promoters and peaks):
bedtools: For fast mathematical operations on genomic intervals.bigBedToBed: For converting binary BigBed files to readable BED format.pybedtools: A Python wrapper forbedtools.
Write custom logic if these tools are not pre-installed.
Custom Queries (SCREEN GraphQL)
If you need to make a complex GraphQL query that the script does not support,
read references/graphql_schema.md for a reference of available queries,
arguments, and return fields in the SCREEN GraphQL API.
Frequently asked questions about ENCODE Database Skill
Similar skills
Scientific Problem Selection
Streamline your research problem selection process.
Nextflow Development
Run nf-core bioinformatics pipelines with ease.
Nature Reviewer Assessment
Simulate peer review for scientific manuscripts.
Research Writing Pipeline
Streamline your scientific writing with structured proposal-first methodologies.
Nature Literature Downloader
Efficiently download academic literature from various sources.
Auto Research
Streamline your NeMo-RL experiments with automated workflows.
