Agent SkillsRunchuan-BU/BioClaw › query-pdb

query-pdb

GitHub

查询RCSB PDB数据库中的实验性蛋白质三维结构,支持关键词搜索、高级检索及PDB ID详情获取与文件下载。

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

Trigger Scenarios

用户询问晶体结构、X射线或冷冻电镜数据 用户提供或提及PDB ID 用户查找特定蛋白质的实验结构信息

Install

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

Non-standard path

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

Use without installing

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

指定 Agent (Claude Code)

npx skills add Runchuan-BU/BioClaw --skill query-pdb -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-pdb",
    "description": "Query RCSB PDB for experimental protein structures. Use when user asks about crystal structures, X-ray, cryo-EM, NMR structures, or PDB IDs. Triggers on \"pdb\", \"crystal structure\", \"cryo-em\", \"x-ray structure\", \"protein crystal\", \"experimental structure\"."
}

RCSB PDB Database Query

Query the RCSB Protein Data Bank for experimental 3D structures.

When to Use

  • User asks for experimental structures of a protein
  • User provides a PDB ID (e.g., "6LU7")
  • User wants to find structures solved by X-ray, cryo-EM, or NMR
  • User asks about resolution, ligands, or binding sites

How to Execute

import requests
import json

# 1. Text search (simple keyword)
def search_pdb(query_text, max_results=5):
    url = "https://search.rcsb.org/rcsbsearch/v2/query"
    query = {
        "query": {
            "type": "terminal",
            "service": "full_text",
            "parameters": {"value": query_text}
        },
        "return_type": "entry",
        "request_options": {"paginate": {"start": 0, "rows": max_results}}
    }
    r = requests.post(url, json=query)
    r.raise_for_status()
    return r.json()

# 2. Advanced search (by gene + organism + method)
def advanced_search_pdb(gene_name, organism="Homo sapiens", method=None, max_results=5):
    nodes = [
        {"type": "terminal", "service": "text",
         "parameters": {"attribute": "rcsb_entity_source_organism.rcsb_gene_name.value",
                        "operator": "exact_match", "value": gene_name}},
        {"type": "terminal", "service": "text",
         "parameters": {"attribute": "rcsb_entity_source_organism.ncbi_scientific_name",
                        "operator": "exact_match", "value": organism}}
    ]
    if method:
        nodes.append({"type": "terminal", "service": "text",
                      "parameters": {"attribute": "exptl.method", "operator": "exact_match", "value": method}})
    query = {
        "query": {"type": "group", "logical_operator": "and", "nodes": nodes},
        "return_type": "entry",
        "request_options": {"paginate": {"start": 0, "rows": max_results},
                           "sort": [{"sort_by": "rcsb_accession_info.deposit_date", "direction": "desc"}]}
    }
    r = requests.post("https://search.rcsb.org/rcsbsearch/v2/query", json=query)
    r.raise_for_status()
    return r.json()

# 3. Get entry details
def get_pdb_entry(pdb_id):
    url = f"https://data.rcsb.org/rest/v1/core/entry/{pdb_id}"
    r = requests.get(url)
    r.raise_for_status()
    return r.json()

# 4. Download structure
def download_pdb(pdb_id, output_dir="/workspace/group"):
    url = f"https://files.rcsb.org/download/{pdb_id}.pdb"
    r = requests.get(url)
    r.raise_for_status()
    path = f"{output_dir}/{pdb_id}.pdb"
    with open(path, 'w') as f:
        f.write(r.text)
    return path

# Example
results = search_pdb("human insulin")
for hit in results.get("result_set", []):
    pdb_id = hit["identifier"]
    details = get_pdb_entry(pdb_id)
    title = details.get("struct", {}).get("title", "N/A")
    method = details.get("exptl", [{}])[0].get("method", "N/A")
    resolution = details.get("rcsb_entry_info", {}).get("resolution_combined", ["N/A"])[0]
    print(f"{pdb_id}: {title}")
    print(f"  Method: {method}, Resolution: {resolution} Å")

Common Methods

  • X-RAY DIFFRACTION — crystal structures
  • ELECTRON MICROSCOPY — cryo-EM
  • SOLUTION NMR — NMR in solution

Follow-up Suggestions

  • "Want me to download this structure and analyze binding sites?"
  • "Should I compare with the AlphaFold prediction?"
  • "Want me to find ligands bound in this structure?"

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-ensembl/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-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

Metadata

Files
0
Version
a79b8c4
Hash
8b6b83a6
Indexed
2026-07-25 11:44

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-21 07:13
浙ICP备14020137号-1 $Гость$