bioservices
UniProt・KEGG・ChEMBL・PubChem・Reactome・QuickGOなど40以上のバイオインフォマティクスサービスを統一APIで操作できるPythonツールです。複数データベースにまたがるワークフロー、IDマッピング、パスウェイ解析などに最適です。個別データベースへの直接REST制御が必要な場合は、専用スキル(uniprot-database、kegg-databaseなど)を使用してください。
description の原文を見る
Primary Python tool for 40+ bioinformatics services. Preferred for multi-database workflows: UniProt, KEGG, ChEMBL, PubChem, Reactome, QuickGO. Unified API for queries, ID mapping, pathway analysis. For direct REST control, use individual database skills (uniprot-database, kegg-database).
SKILL.md 本文
BioServices
Overview
BioServices は、約 40 の生物情報学 Web サービスとデータベースへのプログラマティックアクセスを提供する Python パッケージです。生物学的データの取得、クロスデータベースクエリ、識別子のマッピング、配列解析、および Python ワークフロー内での複数の生物学的リソースの統合を実行できます。このパッケージは REST と SOAP/WSDL プロトコルの両方を透過的に処理します。
このスキルを使用する場合
このスキルは以下の場合に使用すべきです:
- UniProt、PDB、Pfam からタンパク質配列、注釈、または構造を取得する
- KEGG または Reactome 経由でメタボリック経路と遺伝子機能を解析する
- 化学情報のために化合物データベース (ChEBI、ChEMBL、PubChem) を検索する
- 異なる生物学的データベース間で識別子を変換する (KEGG↔UniProt、化合物 ID)
- 配列相同性検索を実行する (BLAST、MUSCLE アライメント)
- 遺伝子オントロジー用語をクエリする (QuickGO、GO アノテーション)
- タンパク質間相互作用データにアクセスする (PSICQUIC、IntactComplex)
- ゲノミックデータをマイニングする (BioMart、ArrayExpress、ENA)
- 単一のワークフロー内で複数の生物情報学リソースからデータを統合する
コア機能
1. タンパク質解析
タンパク質情報、配列、および機能アノテーションを取得します:
from bioservices import UniProt
u = UniProt(verbose=False)
# Search for protein by name
results = u.search("ZAP70_HUMAN", frmt="tab", columns="id,genes,organism")
# Retrieve FASTA sequence
sequence = u.retrieve("P43403", "fasta")
# Map identifiers between databases
kegg_ids = u.mapping(fr="UniProtKB_AC-ID", to="KEGG", query="P43403")
主要なメソッド:
search(): 柔軟な検索用語で UniProt をクエリするretrieve(): さまざまな形式 (FASTA、XML、tab) でタンパク質エントリを取得するmapping(): データベース間で識別子を変換する
参照: 完全な UniProt API の詳細については、references/services_reference.md を確認してください。
2. 経路発見と解析
遺伝子と生物についての KEGG 経路情報にアクセスします:
from bioservices import KEGG
k = KEGG()
k.organism = "hsa" # Set to human
# Search for organisms
k.lookfor_organism("droso") # Find Drosophila species
# Find pathways by name
k.lookfor_pathway("B cell") # Returns matching pathway IDs
# Get pathways containing specific genes
pathways = k.get_pathway_by_gene("7535", "hsa") # ZAP70 gene
# Retrieve and parse pathway data
data = k.get("hsa04660")
parsed = k.parse(data)
# Extract pathway interactions
interactions = k.parse_kgml_pathway("hsa04660")
relations = interactions['relations'] # Protein-protein interactions
# Convert to Simple Interaction Format
sif_data = k.pathway2sif("hsa04660")
主要なメソッド:
lookfor_organism()、lookfor_pathway(): 名前で検索するget_pathway_by_gene(): 遺伝子を含む経路を検出するparse_kgml_pathway(): 構造化された経路データを抽出するpathway2sif(): タンパク質相互作用ネットワークを取得する
参照: 完全な経路解析ワークフローについては、references/workflow_patterns.md を確認してください。
3. 化合物データベース検索
複数のデータベース間で化合物を検索およびクロスリファレンスします:
from bioservices import KEGG, UniChem
k = KEGG()
# Search compounds by name
results = k.find("compound", "Geldanamycin") # Returns cpd:C11222
# Get compound information with database links
compound_info = k.get("cpd:C11222") # Includes ChEBI links
# Cross-reference KEGG → ChEMBL using UniChem
u = UniChem()
chembl_id = u.get_compound_id_from_kegg("C11222") # Returns CHEMBL278315
一般的なワークフロー:
- KEGG で名前で化合物を検索する
- KEGG 化合物 ID を抽出する
- KEGG → ChEMBL マッピングに UniChem を使用する
- ChEBI ID は KEGG エントリで提供されることが多い
参照: 完全なクロスデータベース・マッピング・ガイドについては、references/identifier_mapping.md を確認してください。
4. 配列解析
BLAST 検索と配列アライメントを実行します:
from bioservices import NCBIblast
s = NCBIblast(verbose=False)
# Run BLASTP against UniProtKB
jobid = s.run(
program="blastp",
sequence=protein_sequence,
stype="protein",
database="uniprotkb",
email="your.email@example.com" # Required by NCBI
)
# Check job status and retrieve results
s.getStatus(jobid)
results = s.getResult(jobid, "out")
注: BLAST ジョブは非同期です。結果を取得する前にステータスを確認してください。
5. 識別子マッピング
異なる生物学的データベース間で識別子を変換します:
from bioservices import UniProt, KEGG
# UniProt mapping (many database pairs supported)
u = UniProt()
results = u.mapping(
fr="UniProtKB_AC-ID", # Source database
to="KEGG", # Target database
query="P43403" # Identifier(s) to convert
)
# KEGG gene ID → UniProt
kegg_to_uniprot = u.mapping(fr="KEGG", to="UniProtKB_AC-ID", query="hsa:7535")
# For compounds, use UniChem
from bioservices import UniChem
u = UniChem()
chembl_from_kegg = u.get_compound_id_from_kegg("C11222")
サポートされているマッピング (UniProt):
- UniProtKB ↔ KEGG
- UniProtKB ↔ Ensembl
- UniProtKB ↔ PDB
- UniProtKB ↔ RefSeq
- その他多数 (
references/identifier_mapping.mdを参照)
6. 遺伝子オントロジークエリ
GO 用語とアノテーションにアクセスします:
from bioservices import QuickGO
g = QuickGO(verbose=False)
# Retrieve GO term information
term_info = g.Term("GO:0003824", frmt="obo")
# Search annotations
annotations = g.Annotation(protein="P43403", format="tsv")
7. タンパク質間相互作用
PSICQUIC 経由で相互作用データベースをクエリします:
from bioservices import PSICQUIC
s = PSICQUIC(verbose=False)
# Query specific database (e.g., MINT)
interactions = s.query("mint", "ZAP70 AND species:9606")
# List available interaction databases
databases = s.activeDBs
利用可能なデータベース: MINT、IntAct、BioGRID、DIP、および 30 以上のその他。
マルチサービス統合ワークフロー
BioServices は、複数のサービスを組み合わせて包括的な解析を行う場合に優れています。一般的な統合パターンは以下の通りです:
完全なタンパク質解析パイプライン
完全なタンパク質特性評価ワークフローを実行します:
python scripts/protein_analysis_workflow.py ZAP70_HUMAN your.email@example.com
このスクリプトは以下を実証します:
- タンパク質エントリの UniProt 検索
- FASTA 配列の取得
- BLAST 相同性検索
- KEGG 経路発見
- PSICQUIC 相互作用マッピング
経路ネットワーク解析
生物のすべての経路を解析します:
python scripts/pathway_analysis.py hsa output_directory/
以下を抽出して解析します:
- 生物の全経路 ID
- 経路あたりのタンパク質間相互作用
- 相互作用タイプの分布
- CSV/SIF 形式へのエクスポート
クロスデータベース化合物検索
データベース間で化合物識別子をマップします:
python scripts/compound_cross_reference.py Geldanamycin
以下を取得します:
- KEGG 化合物 ID
- ChEBI 識別子
- ChEMBL 識別子
- 基本的な化合物特性
バッチ識別子変換
複数の識別子を一度に変換します:
python scripts/batch_id_converter.py input_ids.txt --from UniProtKB_AC-ID --to KEGG
ベストプラクティス
出力形式の処理
異なるサービスはさまざまな形式でデータを返します:
- XML: BeautifulSoup を使用して解析 (ほとんどの SOAP サービス)
- タブ区切り (TSV): 表形式データの Pandas DataFrame
- Dictionary/JSON: Python による直接操作
- FASTA: 配列解析の BioPython 統合
レート制限と詳細度
API リクエスト動作を制御します:
from bioservices import KEGG
k = KEGG(verbose=False) # Suppress HTTP request details
k.TIMEOUT = 30 # Adjust timeout for slow connections
エラーハンドリング
サービスコールを try-except ブロックでラップします:
try:
results = u.search("ambiguous_query")
if results:
# Process results
pass
except Exception as e:
print(f"Search failed: {e}")
生物コード
標準的な生物の略語を使用します:
hsa: ホモ・サピエンス (ヒト)mmu: ハツカネズミ (マウス)dme: キイロショウジョウバエsce: 酵母
すべての生物をリストする: k.list("organism") または k.organismIds
他のツールとの統合
BioServices は以下と組み合わせて使用できます:
- BioPython: 取得した FASTA データの配列解析
- Pandas: 表形式データ操作
- PyMOL: 3D 構造の可視化 (PDB ID を取得)
- NetworkX: 経路相互作用のネットワーク解析
- Galaxy: ワークフロー・プラットフォーム用のカスタムツール・ラッパー
リソース
scripts/
完全なワークフローを示す実行可能な Python スクリプト:
protein_analysis_workflow.py: エンドツーエンドのタンパク質特性評価pathway_analysis.py: KEGG 経路発見とネットワーク抽出compound_cross_reference.py: マルチデータベース化合物検索batch_id_converter.py: 一括識別子マッピングユーティリティ
スクリプトは直接実行するか、特定の用途に適応させることができます。
references/
必要に応じて読み込まれる詳細なドキュメント:
services_reference.md: すべての 40 以上のサービスと方法の包括的なリストworkflow_patterns.md: 詳細なマルチステップ解析ワークフローidentifier_mapping.md: クロスデータベース ID 変換の完全なガイド
特定のサービスまたは複雑な統合タスクで作業する場合、参照を読み込みます。
インストール
uv pip install bioservices
依存関係は自動的に管理されます。パッケージは Python 3.9-3.12 でテストされています。
追加情報
詳細な API ドキュメントと高度な機能については、以下を参照してください:
- 公式ドキュメント: https://bioservices.readthedocs.io/
- ソースコード: https://github.com/cokelaer/bioservices
references/services_reference.mdのサービス固有の参照
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。