| name | scientific-rcsb-pdb-search |
| description | RCSB PDB 構造検索スキル。RCSB PDB Search API および
Data API によるタンパク質立体構造検索・メタデータ取得・
リガンド情報・解像度フィルタリング。ToolUniverse 連携:
rcsb_pdb, rcsb_search。
|
| tu_tools | [{"key":"rcsb_pdb","name":"RCSB PDB Data","description":"PDB エントリデータ取得・構造メタデータ"},{"key":"rcsb_search","name":"RCSB PDB Search","description":"PDB 構造検索・テキスト/配列/構造類似検索"}] |
Scientific RCSB PDB Search
RCSB PDB Search API および Data API を活用したタンパク質立体構造
検索・メタデータ取得・リガンド情報パイプラインを提供する。
When to Use
- PDB のタンパク質立体構造をテキスト検索するとき
- 解像度・実験手法でフィルタリングするとき
- リガンド結合構造を検索するとき
- 構造のメタデータ (著者・引用・解像度) を取得するとき
- 配列類似性で構造を検索するとき
- PDB エントリからリガンド・結合サイト情報を取得するとき
Quick Start
1. テキスト検索・構造メタデータ
import requests
import pandas as pd
RCSB_SEARCH = "https://search.rcsb.org/rcsbsearch/v2/query"
RCSB_DATA = "https://data.rcsb.org/rest/v1/core"
def rcsb_text_search(query, method=None,
resolution_max=None, limit=50):
"""
RCSB PDB — テキスト検索。
Parameters:
query: str — 検索クエリ (例: "BRCA1", "kinase")
method: str — 実験手法フィルタ
(例: "X-RAY DIFFRACTION", "ELECTRON MICROSCOPY")
resolution_max: float — 最大解像度 (Å)
limit: int — 最大結果数
"""
search_query = {
: {
: ,
: ,
: [
{
: ,
: ,
: {: query},
}
],
},
: ,
: {
: {: , : limit},
: [{: , : }],
},
}
method:
search_query[][].append({
: ,
: ,
: {
: ,
: ,
: method,
},
})
resolution_max:
search_query[][].append({
: ,
: ,
: {
:
,
: ,
: resolution_max,
},
})
resp = requests.post(RCSB_SEARCH, json=search_query,
timeout=)
resp.raise_for_status()
data = resp.json()
pdb_ids = [r[]
r data.get(, [])]
total = data.get(, )
(
)
pdb_ids
():
url =
resp = requests.get(url, timeout=)
resp.raise_for_status()
data = resp.json()
info = data.get(, {})
citation = (data.get() {})
result = {
: pdb_id,
: data.get(, {}).get(, ),
: info.get(, ),
: info.get(, [])[],
: info.get(, ),
: info.get(
, ),
: info.get(
, ),
: citation.get(, ),
: citation.get(
, ),
}
result