Agent SkillsRunchuan-BU/BioClaw › query-ensembl

query-ensembl

GitHub

封装Ensembl REST API,用于查询基因坐标、序列、变异位点及跨物种同源信息。支持通过符号或ID获取基因详情、检索DNA/蛋白序列、查询rsID变异及区域重叠特征,适用于基因组学数据检索场景。

container/skills/query-ensembl/SKILL.md Runchuan-BU/BioClaw

Trigger Scenarios

查询基因坐标 查找rsID或变异位点 获取基因组序列 询问外显子或转录本结构 跨物种基因比较

Install

npx skills add Runchuan-BU/BioClaw --skill query-ensembl -g -y
More Options

Non-standard path

npx skills add https://github.com/Runchuan-BU/BioClaw/tree/main/container/skills/query-ensembl -g -y

Use without installing

npx skills use Runchuan-BU/BioClaw@query-ensembl

指定 Agent (Claude Code)

npx skills add Runchuan-BU/BioClaw --skill query-ensembl -a claude-code -g -y

安装 repo 全部 skill

npx skills add Runchuan-BU/BioClaw --all -g -y

预览 repo 内 skill

npx skills add Runchuan-BU/BioClaw --list

SKILL.md

Frontmatter
{
    "name": "query-ensembl",
    "description": "Query Ensembl for genomic data. Use when user asks about gene coordinates, genomic sequences, variants, gene structure, exons, transcripts, or species comparison. Triggers on \"ensembl\", \"gene coordinates\", \"genomic location\", \"exon\", \"transcript\", \"variant location\", \"rsid\", \"rs number\"."
}

Ensembl REST API Query

Query the Ensembl REST API for genomic annotations, sequences, and variants.

When to Use

  • User asks about a gene's genomic location, exons, or transcripts
  • User wants to look up an rsID or variant
  • User needs genomic/cDNA/protein sequences
  • User asks about gene structure or regulatory features
  • User wants cross-species gene information

How to Execute

import requests
import json

BASE_URL = "https://rest.ensembl.org"
HEADERS = {"Content-Type": "application/json", "Accept": "application/json"}

# 1. Gene lookup by symbol
def lookup_gene(symbol, species="homo_sapiens"):
    url = f"{BASE_URL}/lookup/symbol/{species}/{symbol}"
    r = requests.get(url, headers=HEADERS, params={"expand": 1})
    r.raise_for_status()
    return r.json()

# 2. Get sequence
def get_sequence(ensembl_id, seq_type="genomic"):
    url = f"{BASE_URL}/sequence/id/{ensembl_id}"
    r = requests.get(url, headers=HEADERS, params={"type": seq_type})
    r.raise_for_status()
    return r.json()

# 3. Variant lookup by rsID
def lookup_variant(rsid, species="homo_sapiens"):
    url = f"{BASE_URL}/variation/{species}/{rsid}"
    r = requests.get(url, headers=HEADERS)
    r.raise_for_status()
    return r.json()

# 4. Get overlapping features in a region
def overlap_region(species, chrom, start, end, feature="gene"):
    url = f"{BASE_URL}/overlap/region/{species}/{chrom}:{start}-{end}"
    r = requests.get(url, headers=HEADERS, params={"feature": feature})
    r.raise_for_status()
    return r.json()

# 5. Cross-species homologs
def get_homologs(ensembl_id, target_species=None):
    url = f"{BASE_URL}/homology/id/{ensembl_id}"
    params = {}
    if target_species:
        params["target_species"] = target_species
    r = requests.get(url, headers=HEADERS, params=params)
    r.raise_for_status()
    return r.json()

# Example: look up BRCA2
gene = lookup_gene("BRCA2")
print(f"Gene: {gene['display_name']}")
print(f"Ensembl ID: {gene['id']}")
print(f"Location: chr{gene['seq_region_name']}:{gene['start']}-{gene['end']}")
print(f"Strand: {'+' if gene['strand'] == 1 else '-'}")
print(f"Biotype: {gene['biotype']}")
print(f"Description: {gene.get('description', 'N/A')}")

Key Endpoints

Endpoint Use
/lookup/symbol/{species}/{symbol} Gene info by symbol
/lookup/id/{id} Info by Ensembl ID
/sequence/id/{id}?type=genomic Get sequence
/variation/{species}/{rsid} Variant info
/overlap/region/{species}/{chr}:{start}-{end} Features in region
/homology/id/{id} Orthologs/paralogs
/vep/{species}/hgvs/{hgvs} Variant effect prediction

Notes

  • Region queries max 4,900,000 bp
  • Species: homo_sapiens, mus_musculus, danio_rerio, drosophila_melanogaster
  • Always use application/json Accept header

Follow-up Suggestions

  • "Want me to get the protein sequence for this gene?"
  • "Should I check for known pathogenic variants?"
  • "Want me to find orthologs in mouse?"

Version History

  • a79b8c4 Current 2026-07-25 11:44

Same Skill Collection

.claude/skills/add-figure/SKILL.md
.claude/skills/add-gmail/SKILL.md
.claude/skills/add-omics-runtime-pack/SKILL.md
.claude/skills/add-telegram-swarm/SKILL.md
.claude/skills/add-telegram/SKILL.md
.claude/skills/add-voice-transcription/SKILL.md
.claude/skills/convert-to-docker/SKILL.md
.claude/skills/customize/SKILL.md
.claude/skills/debug/SKILL.md
.claude/skills/setup/SKILL.md
.claude/skills/x-integration/SKILL.md
container/skills/agent-browser/SKILL.md
container/skills/atac-seq/SKILL.md
container/skills/bio-tools/SKILL.md
container/skills/blast-search/SKILL.md
container/skills/cell-annotation/SKILL.md
container/skills/chip-seq/SKILL.md
container/skills/differential-expression/SKILL.md
container/skills/metagenomics/SKILL.md
container/skills/proteomics/SKILL.md
container/skills/pubmed-search/SKILL.md
container/skills/query-alphafold/SKILL.md
container/skills/query-clinvar/SKILL.md
container/skills/query-geo/SKILL.md
container/skills/query-interpro/SKILL.md
container/skills/query-kegg/SKILL.md
container/skills/query-opentarget/SKILL.md
container/skills/query-pdb/SKILL.md
container/skills/query-reactome/SKILL.md
container/skills/query-stringdb/SKILL.md
container/skills/query-uniprot/SKILL.md
container/skills/report-template/SKILL.md
container/skills/scrna-preprocessing-clustering/SKILL.md
container/skills/sds-gel-review/SKILL.md
container/skills/sec-report/SKILL.md
container/skills/sequence-analysis/SKILL.md
container/skills/skills-hub/SKILL.md
container/skills/structural-biology/SKILL.md
container/skills/query-genomic-intelligence/SKILL.md

Metadata

Files
0
Version
50a7d9b
Hash
ae2df7eb
Indexed
2026-07-25 11:44

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-02 04:49
浙ICP备14020137号-1 $bản đồ khách truy cập$