概要
ChEMBL Webresource Client は、ChEMBL データとケモインフォマティクスツールにアクセスするために、ChEMBL グループが開発・サポートする Python ライブラリです。これは ChEMBL Web サービスへのプログラム用アクセス層であり、単独で利用できるデータベースや予測モデルではありません。ドキュメントに記載されたインターフェースが HTTPS 通信を処理するため、ユーザーは SQL を記述したり REST リクエストを直接管理したりせずに、サービスのリソースを利用できます。
クエリ設計は Django の QuerySet インターフェースに準拠しています。入力には、エンドポイント固有のフィールドフィルターと、返却するフィールドの任意のリストが含まれます。出力はサービスの結果であり、必要に応じてクライアントが取得し、ローカルファイルシステムにキャッシュします。サポートされる検索方法には、完全一致と大文字小文字を区別しない一致、メンバーシップ、数値比較、範囲、null チェック、正規表現、検索が含まれます。遅延評価では値が必要になるまでデータ要求を保留するため、レコードを利用する前にクエリを構築する Python ワークフローに適しています。
only メソッドを使うと返却フィールドを制限できますが、指定するフィールドは選択したエンドポイントに存在する必要があります。ネストしたフィールドの選択は、その粒度では保持されません。molecule_properties__alogp を選択すると、molecule_properties を選択したものとして扱われます。また README によると、多対多関係について only は SQL の結合最適化を提供しません。
設定項目には、ローカルキャッシュ、キャッシュの有効期限、再試行回数、リクエストの並行数、タイムアウトが含まれます。ドキュメントでは、FAST_SAVE 設定にキャッシュデータが失われる可能性があるとされています。これらの設定は、繰り返し取得するワークフローを計画する際の検討事項になりますが、出典の抜粋からは、測定済みの性能、エンドポイントごとの出力スキーマ、または検証済みの科学的結果は確認できません。
主な機能
- HTTPS 通信を処理しながら、ChEMBL データとケモインフォマティクスツールにアクセスする公式 Python インターフェースを提供します。
- 完全一致、大文字小文字を区別しないテキスト一致、メンバーシップ、比較、範囲、null チェック、正規表現、検索など、QuerySet 形式のフィルターをサポートします。
- 遅延評価を行い、値が必要になったときにのみデータを要求します。
- 取得した結果をローカルにキャッシュします。キャッシュの有効化、期限、SQLite キャッシュファイル名を設定できます。
- `only` で返却フィールドを制限できますが、エンドポイントでのフィールドの利用可否と、ドキュメントに記載されたネストフィールドの制限に従います。
- タイムアウト、HTTP 再試行、リクエストの並行数、キャッシュの保存動作に関する設定を利用できます。
用途
- 評価案:REST リクエスト処理を独自に実装せず、Python でフィルター付きの ChEMBL データ取得ワークフローを構築し、創薬データの準備に利用する。
- 評価案:後続の解析に使うレコードのフィールドを選んで取得し、ネストしたフィールドの挙動が必要な詳細度を提供するか確認する。
- 評価案:代表的なワークロードと選択したキャッシュ設定を使い、繰り返し行う探索的クエリに対するローカルキャッシュと遅延取得の適性を評価する。
使い方
- ライブラリを Python ワークフローに統合する前に、公式クライアント READMEを読み、クエリインターフェース、インストール方法、設定オプションを確認します。
- README に記載されたパッケージのインストール手順に従います。リンク先のサンプルノートブックを出発点となる参考資料として利用できますが、ここでは利用可能であることを確認していません。
- ChEMBL API ドキュメントを参照し、適切なエンドポイントとそのフィールドを特定します。取得する予定のレコードに合う、ドキュメントに記載された検索タイプを選択します。
- 返却フィールドを絞り込む場合は、そのエンドポイントで利用できるフィールドに
onlyを適用します。特定のプロパティを細かく指定して利用する前に、ネストフィールドの制限を確認します。 - README の指示に従い、クライアントを使用する前に設定を行います。キャッシュの有効期限、再試行、並行数、タイムアウトの要件を確認し、
FAST_SAVEに関して記載されたデータ損失のリスクも考慮します。 - ワークフローを拡張する前に、代表的な小規模クエリを評価し、返却フィールドと取得時の動作を確認します。これは提案する評価手順であり、テスト完了の報告ではありません。