概要
RCSB PDB Data API は、PDB 内の実験構造、一部の計算構造モデル(CSMs)、および統合構造を対象とするメタデータサービスです。構造生物学のワークフロー向けに、分子名、配列、実験の詳細、関連する注釈を提供します。その役割は、特定された構造とその構成要素に関する文書化された情報の取得であり、構造予測や分子シミュレーションではありません。公式ドキュメントでは、両インターフェースと、それらが共有する基盤データについて説明しています。
リクエストでは、エントリー、エンティティ、チェーン、アセンブリー、化学成分の識別子を使用し、応答は JSON です。REST はリソース別エンドポイントを通じて、固定されたオブジェクト表現を取得します。GraphQL ではフィールドを選択し、複数の特定オブジェクトを含め、1 回のリクエストで階層間の関係をたどることができます。この階層では、化学的に固有の分子と個々のチェーンインスタンスを区別し、配列レベルの情報とインスタンス固有の構造注釈との差を保っています。
利用できる情報には、引用文献、分類情報、配列の特徴、化学記述子、参照データベース識別子が含まれます。計算モデルの品質注釈、および統合構造の構成と入力データセットについても、別途例が示されています。対象範囲は一般的に使われる注釈に限られ、PDBx/mmCIF 辞書の全項目を網羅するものではありません。GraphQL では明示的な識別子が必要で、全オブジェクトを対象とするクエリは提供されません。そのため、アーカイブ全体の取得は、別の Holdings サービスから識別子を取得し、バッチ処理で進めます。また、アプリケーションでは HTTP ステータスだけでなく、GraphQL 応答内のエラーも確認する必要があります。ドキュメントで紹介されている Python パッケージ rcsb-api は Search API と Data API 用の独立したクライアントであり、Data API サービス自体ではありません。
主な機能
- REST GET エンドポイントは、エントリー、分子エンティティ、エンティティインスタンス、アセンブリー、化学成分の JSON オブジェクトを返します。
- GraphQL はフィールド選択、単一または複数オブジェクトの識別子、および構造階層内の関連するレベル間の移動をサポートします。
- ポリマー注釈には、配列、分類情報、配列クラスターの所属、位置ごとの特徴、参照配列へのクロスリファレンスが含まれます。
- 化学成分レコードでは、SMILES や InChI などの記述子、化学式、系統的化学名を利用できます。分岐エンティティの例では、糖質の記述子も扱っています。
- エントリーレベルの取得には、実験の詳細、主要な引用文献、公開情報、構成エンティティへのリンクが含まれます。
- ドキュメントのクエリ例では、計算モデルの全体的な品質評価指標、および統合構造の構成、入力データセット、ソースデータベースを扱っています。
用途
- 推奨される用途:既知の PDB 識別子群に実験方法、公開日、主要な引用文献を補い、構造選定レポートを作成する。
- 推奨される用途:タンパク質配列、分類情報、ドメイン、チェーンレベルの特徴注釈をまとめ、後続の構造生物学的解析に利用する。
- 推奨される用途:創薬データキュレーションのワークフローへの入力として、リガンドの化学記述子と関連する構造メタデータを取得する。ただし、これらを結合活性の証拠として扱わない。
- 推奨される評価:アーカイブ全体のメタデータをバッチで収集する手順を構築し、フィールドの網羅性、欠落したクロスリファレンス、実験・計算・統合の各レコードの区別を確認する。
使い方
- データ構成ガイドを読み、適切なオブジェクトレベルを選びます。エンティティ識別子とチェーン識別子を区別してください。ポリマーインスタンスでは label_asym_id を使用します。
- 固定されたオブジェクト応答には REST を、関連するフィールドの選択には GraphQL を選びます。REST リファレンスを参照するか、GraphiQLでスキーマを確認してください。
- エントリー 4HHBなどのドキュメントにある例から始め、返される JSON をワークフローに必要なフィールドと照合します。注釈の利用可否は Data Attributes ページで確認してください。
- API のガイダンスに従って応答チェックを実装します。HTTP ステータスが成功でも、REST のステータス失敗と JSON 応答に含まれる GraphQL エラーを区別してください。
- アーカイブ全体を取得する場合は、現在の holdings エンドポイントから識別子を取得し、バッチ処理とキャッシュのガイダンスに従います。Python クライアントを使う場合は、独立した rcsb-api ドキュメントを参照してください。