Skip to content
ensembl-database logo

Ensembl Database

ensembl-database

Query Ensembl genome database REST API for 250+ species. Gene lookups, sequence retrieval, variant analysis, comparative genomics, orthologs, VEP predictions, for genomic research.

ljchg12-hue/dotfiles0installs1stars

SKILL.md

Full skill instructions

Ensembl Database

Overview

Access and query the Ensembl genome database, a comprehensive resource for vertebrate genomic data maintained by EMBL-EBI. The database provides gene annotations, sequences, variants, regulatory information, and comparative genomics data for over 250 species. Current release is 115 (September 2025).

When to Use This Skill

This skill should be used when:

  • Querying gene information by symbol or Ensembl ID
  • Retrieving DNA, transcript, or protein sequences
  • Analyzing genetic variants using the Variant Effect Predictor (VEP)
  • Finding orthologs and paralogs across species
  • Accessing regulatory features and genomic annotations
  • Converting coordinates between genome assemblies (e.g., GRCh37 to GRCh38)
  • Performing comparative genomics analyses
  • Integrating Ensembl data into genomic research pipelines

Core Capabilities

1. Gene Information Retrieval

Query gene data by symbol, Ensembl ID, or external database identifiers.

Common operations:

  • Look up gene information by symbol (e.g., "BRCA2", "TP53")
  • Retrieve transcript and protein information
  • Get gene coordinates and chromosomal locations
  • Access cross-references to external databases (UniProt, RefSeq, etc.)

Using the ensembl_rest package:

from ensembl_rest import EnsemblClient

client = EnsemblClient()

# Look up gene by symbol
gene_data = client.symbol_lookup(
    species='human',
    symbol='BRCA2'
)

# Get detailed gene information
gene_info = client.lookup_id(
    id='ENSG00000139618',  # BRCA2 Ensembl ID
    expand=True
)

Direct REST API (no package):

import requests

server = "https://rest.ensembl.org"

# Symbol lookup
response = requests.get(
    f"{server}/​lookup/​symbol/​homo_sapiens/​BRCA2",
    headers={"Content-Type": "application/​json"}
)
gene_data = response.json()

2. Sequence Retrieval

Fetch genomic, transcript, or protein sequences in various formats (JSON, FASTA, plain text).

Operations:

  • Get DNA sequences for genes or genomic regions
  • Retrieve transcript sequences (cDNA)
  • Access protein sequences
  • Extract sequences with flanking regions or modifications

Example:

# Using ensembl_rest package
sequence = client.sequence_id(
    id='ENSG00000139618',  # Gene ID
    content_type='application/​json'
)

# Get sequence for a genomic region
region_seq = client.sequence_region(
    species='human',
    region='7:140424943-140624564'  # chromosome:start-end
)

3. Variant Analysis

Query genetic variation data and predict variant consequences using the Variant Effect Predictor (VEP).

Capabilities:

  • Look up variants by rsID or genomic coordinates
  • Predict functional consequences of variants
  • Access population frequency data
  • Retrieve phenotype associations

VEP example:

# Predict variant consequences
vep_result = client.vep_hgvs(
    species='human',
    hgvs_notation='ENST00000380152.7:c.803C>T'
)

# Query variant by rsID
variant = client.variation_id(
    species='human',
    id='rs699'
)

4. Comparative Genomics

Perform cross-species comparisons to identify orthologs, paralogs, and evolutionary relationships.

Operations:

  • Find orthologs (same gene in different species)
  • Identify paralogs (related genes in same species)
  • Access gene trees showing evolutionary relationships
  • Retrieve gene family information

Example:

# Find orthologs for a human gene
orthologs = client.homology_ensemblgene(
    id='ENSG00000139618',  # Human BRCA2
    target_species='mouse'
)

# Get gene tree
gene_tree = client.genetree_member_symbol(
    species='human',
    symbol='BRCA2'
)

5. Genomic Region Analysis

Find all genomic features (genes, transcripts, regulatory elements) in a specific region.

Use cases:

  • Identify all genes in a chromosomal region
  • Find regulatory features (promoters, enhancers)
  • Locate variants within a region
  • Retrieve structural features

Example:

# Find all features in a region
features = client.overlap_region(
    species='human',
    region='7:140424943-140624564',
    feature='gene'
)

6. Assembly Mapping

Convert coordinates between different genome assemblies (e.g., GRCh37 to GRCh38).

Important: Use https://grch37.rest.ensembl.org for GRCh37/​hg19 queries and https://rest.ensembl.org for current assemblies.

Example:

from ensembl_rest import AssemblyMapper

# Map coordinates from GRCh37 to GRCh38
mapper = AssemblyMapper(
    species='human',
    asm_from='GRCh37',
    asm_to='GRCh38'
)

mapped = mapper.map(chrom='7', start=140453136, end=140453136)

API Best Practices

Rate Limiting

The Ensembl REST API has rate limits. Follow these practices:

  1. Respect rate limits: Maximum 15 requests per second for anonymous users
  2. Handle 429 responses: When rate-limited, check the Retry-After header and wait
  3. Use batch endpoints: When querying multiple items, use batch endpoints where available
  4. Cache results: Store frequently accessed data to reduce API calls

Error Handling

Always implement proper error handling:

import requests
import time

def query_ensembl(endpoint, params=None, max_retries=3):
    server = "https://rest.ensembl.org"
    headers = {"Content-Type": "application/​json"}

    for attempt in range(max_retries):
        response = requests.get(
            f"{server}{endpoint}",
            headers=headers,
            params=params
        )

        if response.status_code == 200:
            return response.json()
        elif response.status_code == 429:
            # Rate limited - wait and retry
            retry_after = int(response.headers.get('Retry-After', 1))
            time.sleep(retry_after)
        else:
            response.raise_for_status()

    raise Exception(f"Failed after {max_retries} attempts")

Installation

Python Package (Recommended)

pip install ensembl_rest

The ensembl_rest package provides a Pythonic interface to all Ensembl REST API endpoints.

Direct REST API

No installation needed - use standard HTTP libraries like requests:

pip install requests

Resources

references/

  • api_endpoints.md: Comprehensive documentation of all 17 API endpoint categories with examples and parameters

scripts/

  • ensembl_query.py: Reusable Python script for common Ensembl queries with built-in rate limiting and error handling

Common Workflows

Workflow 1: Gene Annotation Pipeline

  1. Look up gene by symbol to get Ensembl ID
  2. Retrieve transcript information
  3. Get protein sequences for all transcripts
  4. Find orthologs in other species
  5. Export results

Workflow 2: Variant Analysis

  1. Query variant by rsID or coordinates
  2. Use VEP to predict functional consequences
  3. Check population frequencies
  4. Retrieve phenotype associations
  5. Generate report

Workflow 3: Comparative Analysis

  1. Start with gene of interest in reference species
  2. Find orthologs in target species
  3. Retrieve sequences for all orthologs
  4. Compare gene structures and features
  5. Analyze evolutionary conservation

Species and Assembly Information

To query available species and assemblies:

# List all available species
species_list = client.info_species()

# Get assembly information for a species
assembly_info = client.info_assembly(species='human')

Common species identifiers:

  • Human: homo_sapiens or human
  • Mouse: mus_musculus or mouse
  • Zebrafish: danio_rerio or zebrafish
  • Fruit fly: drosophila_melanogaster

Additional Resources

More skills from ljchg12-hue

labarchive-integration logo
ljchg12-hue/dotfiles

labarchive-integration

Electronic lab notebook API integration. Access notebooks, manage entries/attachments, backup notebooks, integrate with Protocols.io/Jupyter/REDCap, for programmatic ELN workflows.

1 0
View
llm-evaluation logo
ljchg12-hue/dotfiles

llm-evaluation

Implement comprehensive evaluation strategies for LLM applications using automated metrics, human feedback, and benchmarking. Use when testing LLM performance, measuring AI application quality, or establishing evaluation frameworks.

1 0
View
requesting-code-review logo
ljchg12-hue/dotfiles

requesting-code-review

Use when completing tasks, implementing major features, or before merging to verify work meets requirements - dispatches superpowers:code-reviewer subagent to review implementation against plan or requirements before proceeding

1 0
View
uspto-database logo
ljchg12-hue/dotfiles

uspto-database

Access USPTO APIs for patent/trademark searches, examination history (PEDS), assignments, citations, office actions, TSDR, for IP analysis and prior art searches.

1 0
View
scientific-writing logo
ljchg12-hue/dotfiles

scientific-writing

Write scientific manuscripts. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), abstracts, for research papers and journal submissions.

1 0
View
kegg-database logo
ljchg12-hue/dotfiles

kegg-database

Direct REST API access to KEGG (academic use only). Pathway analysis, gene-pathway mapping, metabolic pathways, drug interactions, ID conversion. For Python workflows with multiple databases, prefer bioservices. Use this for direct HTTP/REST work or KEGG-specific control.

1 0
View
database-migration logo
ljchg12-hue/dotfiles

database-migration

Execute database migrations across ORMs and platforms with zero-downtime strategies, data transformation, and rollback procedures. Use when migrating databases, changing schemas, performing data transformations, or implementing zero-downtime deployment strategies.

1 0
View
internal-comms logo
ljchg12-hue/dotfiles

internal-comms

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident ...

1 0
View
meeting-transcript-analysis logo
ljchg12-hue/dotfiles

meeting-transcript-analysis

Analyze meeting transcripts to extract action items, decisions, key points, and generate summaries

1 0
View
neurokit2 logo
ljchg12-hue/dotfiles

neurokit2

Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable ...

1 0
View
shap logo
ljchg12-hue/dotfiles

shap

Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias ...

1 0
View
sql-optimization-patterns logo
ljchg12-hue/dotfiles

sql-optimization-patterns

Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries. Use when debugging slow queries, designing database schemas, or optimizing application performance.

1 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View