关于 pdb-database
PDB Database 技能帮助结构生物学、药物发现和蛋白质工程研究者搜索并获取 RCSB PDB 的大分子三维结构与元数据。支持文本、属性、序列和结构相似性检索,并可批量处理结构条目。
主要功能
- 01按文本和属性搜索结构
- 02进行序列与结构相似性检索
- 03获取结构元数据和质量指标
- 04下载多种结构文件格式
- 05批量获取多个结构条目
适用场景
- 01查找药物靶点及其结构
- 02寻找同源结构以辅助建模
- 03比较蛋白质与配体复合物
- 04下载结构用于计算分析
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jackspace/ claudeskillz --skill pdb-database安装后在 Claude Code 中输入/pdb-database确认已加载。
附带文件SKILL.json
详细介绍
PDB 数据库
概述
RCSB PDB 是全球生物大分子三维结构数据存储库。你可以搜索结构、获取坐标和元数据,并在 200,000 多个实验测定的结构和计算模型中进行序列及结构相似性搜索。
何时使用此技能
以下情况应使用此技能:
- 按文本、序列或结构相似性搜索蛋白质或核酸的三维结构
- 下载 PDB、mmCIF 或 BinaryCIF 格式的坐标文件
- 获取结构元数据、实验方法或质量指标
- 对多个结构执行批量操作
- 将 PDB 数据集成到药物发现、蛋白质工程或结构生物学研究的计算工作流中
核心功能
1. 搜索结构
使用各种搜索条件查找 PDB 条目:
文本搜索: 按蛋白质名称、关键词或描述搜索
from rcsbapi.search import TextQuery
query = TextQuery("hemoglobin")
results = list(query())
print(f"Found {len(results)} structures")
属性搜索: 查询特定属性(生物体、分辨率、方法等)
from rcsbapi.search import AttributeQuery
from rcsbapi.search.attrs import rcsb_entity_source_organism
# Find human protein structures
query = AttributeQuery(
attribute=rcsb_entity_source_organism.scientific_name,
operator="exact_match",
value="Homo sapiens"
)
results = list(query())
序列相似性: 查找与给定序列相似的结构
from rcsbapi.search import SequenceQuery
query = SequenceQuery(
value="MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHHYREQIKRVKDSEDVPMVLVGNKCDLPSRTVDTKQAQDLARSYGIPFIETSAKTRQGVDDAFYTLVREIRKHKEKMSKDGKKKKKKSKTKCVIM",
evalue_cutoff=0.1,
identity_cutoff=0.9
)
results = list(query())
结构相似性: 查找具有相似三维几何结构的条目
from rcsbapi.search import StructSimilarityQuery
query = StructSimilarityQuery(
structure_search_type="entry",
entry_id="4HHB" # Hemoglobin
)
results = list(query())
组合查询: 使用逻辑运算符构建复杂搜索
from rcsbapi.search import TextQuery, AttributeQuery
from rcsbapi.search.attrs import rcsb_entry_info
# High-resolution human proteins
query1 = AttributeQuery(
attribute=rcsb_entity_source_organism.scientific_name,
operator="exact_match",
value="Homo sapiens"
)
query2 = AttributeQuery(
attribute=rcsb_entry_info.resolution_combined,
operator="less",
value=2.0
)
combined_query = query1 & query2 # AND operation
results = list(combined_query())
2. 获取结构数据
访问特定 PDB 条目的详细信息:
基本条目信息:
from rcsbapi.data import Schema, fetch
# Get entry-level data
entry_data = fetch("4HHB", schema=Schema.ENTRY)
print(entry_data["struct"]["title"])
print(entry_data["exptl"][0]["method"])
聚合物实体信息:
# Get protein/nucleic acid information
entity_data = fetch("4HHB_1", schema=Schema.POLYMER_ENTITY)
print(entity_data["entity_poly"]["pdbx_seq_one_letter_code"])
使用 GraphQL 进行灵活查询:
from rcsbapi.data import fetch
# Custom GraphQL query
query = """
{
entry(entry_id: "4HHB") {
struct {
title
}
exptl {
method
}
rcsb_entry_info {
resolution_combined
deposited_atom_count
}
}
}
"""
data = fetch(query_type="graphql", query=query)
3. 下载结构文件
获取各种格式的坐标文件:
下载方式:
- PDB 格式(旧版文本格式):
https://files.rcsb.org/download/{PDB_ID}.pdb - mmCIF 格式(现代标准):
https://files.rcsb.org/download/{PDB_ID}.cif - BinaryCIF(压缩二进制格式):使用 ModelServer API 高效访问
- 生物学组装体:
https://files.rcsb.org/download/{PDB_ID}.pdb1(用于组装体 1)
下载示例:
import requests
pdb_id = "4HHB"
# Download PDB format
pdb_url = f"https://files.rcsb.org/download/{pdb_id}.pdb"
response = requests.get(pdb_url)
with open(f"{pdb_id}.pdb", "w") as f:
f.write(response.text)
# Download mmCIF format
cif_url = f"https://files.rcsb.org/download/{pdb_id}.cif"
response = requests.get(cif_url)
with open(f"{pdb_id}.cif", "w") as f:
f.write(response.text)
4. 使用结构数据
处理获取到的结构时的常见操作:
解析和分析坐标: 使用 BioPython 或其他结构生物学库处理下载的文件:
from Bio.PDB import PDBParser
parser = PDBParser()
structure = parser.get_structure("protein", "4HHB.pdb")
# Iterate through atoms
for model in structure:
for chain in model:
for residue in chain:
for atom in residue:
print(atom.get_coord())
提取元数据:
from rcsbapi.data import fetch, Schema
# Get experimental details
data = fetch("4HHB", schema=Schema.ENTRY)
resolution = data.get("rcsb_entry_info", {}).get("resolution_combined")
method = data.get("exptl", [{}])[0].get("method")
deposition_date = data.get("rcsb_accession_info", {}).get("deposit_date")
print(f"Resolution: {resolution} Å")
print(f"Method: {method}")
print(f"Deposited: {deposition_date}")
5. 批量操作
高效处理多个结构:
from rcsbapi.data import fetch, Schema
pdb_ids = ["4HHB", "1MBN", "1GZX"] # Hemoglobin, myoglobin, etc.
results = {}
for pdb_id in pdb_ids:
try:
data = fetch(pdb_id, schema=Schema.ENTRY)
results[pdb_id] = {
"title": data["struct"]["title"],
"resolution": data.get("rcsb_entry_info", {}).get("resolution_combined"),
"organism": data.get("rcsb_entity_source_organism", [{}])[0].get("scientific_name")
}
except Exception as e:
print(f"Error fetching {pdb_id}: {e}")
# Display results
for pdb_id, info in results.items():
print(f"\n{pdb_id}: {info['title']}")
print(f" Resolution: {info['resolution']} Å")
print(f" Organism: {info['organism']}")
Python 包安装
安装官方 RCSB PDB Python API 客户端:
# Current recommended package
pip install rcsb-api
# For legacy code (deprecated, use rcsb-api instead)
pip install rcsbsearchapi
rcsb-api 包通过 rcsbapi.search 和 rcsbapi.data 模块,统一提供对 Search 和 Data API 的访问。
常见用例
药物发现
- 搜索药物靶点的结构
- 分析配体结合位点
- 比较蛋白质-配体复合物
- 识别相似的结合口袋
蛋白质工程
- 查找同源结构以用于建模
- 分析序列与结构之间的关系
- 比较突变体结构
- 研究蛋白质稳定性和动态特性
结构生物学研究
- 下载结构以进行计算分析
- 构建基于结构的比对
- 分析结构特征(二级结构、结构域)
- 比较实验方法和质量指标
教育与可视化
- 获取结构用于教学
- 生成分子可视化图像
- 探索结构与功能之间的关系
- 研究进化保守性
关键概念
PDB ID: 每个结构条目的唯一 4 个字符标识符(例如,“4HHB”)。AlphaFold 和 ModelArchive 条目的前缀为“AF_”或“MA_”。
mmCIF/PDBx: 采用键值结构的现代文件格式,取代了旧版 PDB 格式,可用于大型结构。
生物学组装体: 大分子的功能形式,可能包含来自不对称单元的多个链副本。
分辨率: 衡量晶体结构细节程度的指标(数值越低,细节越丰富)。高质量结构的典型范围为 1.5-3.5 Å。
实体: 结构中的独特分子组分(蛋白质链、DNA、配体等)。
资源
此技能在 references/ 目录中包含参考文档:
references/api_reference.md
全面的 API 文档,涵盖:
- 详细的 API 端点规范
- 高级查询模式和示例
- 数据架构参考
- 速率限制和最佳实践
- 常见问题的故障排除
当你需要深入了解 API 功能、构建复杂查询或详细了解数据架构时,请使用此参考文档。
其他资源
- RCSB PDB 网站: https://www.rcsb.org
- PDB-101 教育门户: https://pdb101.rcsb.org
- API 文档: https://www.rcsb.org/docs/programmatic-access/web-apis-overview
- Python 包文档: https://rcsbapi.readthedocs.io/
- 数据 API 文档: https://data.rcsb.org/
- GitHub 仓库: https://github.com/rcsb/py-rcsb-api