mcpField
U
uniprot-database

uniprot-database

github.com/jackspaceデータ・データベース1636 回インストール12 週間前に更新
リポジトリ

uniprot-database について

uniprot-database は、タンパク質解析向けの UniProt 検索スキルです。配列や機能注釈の取得、データベース間の ID 対応付けに加え、一括取得や大規模結果のストリーミングにも対応します。

主な機能

  1. 01名前、遺伝子、アクセッションで検索
  2. 02FASTA 配列と注釈の取得
  3. 03データベース間の ID 対応付け
  4. 04一括取得と結果のストリーミング
  5. 05検索フィールドと出力形式の指定

活用シーン

  1. 01遺伝子や生物種からタンパク質を検索
  2. 02解析用の配列をダウンロード
  3. 03Ensembl、RefSeq、PDB の ID を変換
  4. 04Swiss-Prot または TrEMBL データを一括取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jackspace/claudeskillz --skill uniprot-database

インストール後、Claude Code で/uniprot-databaseを入力して読み込まれたか確認します。

同梱ファイルSKILL.json

詳細

UniProt データベース

概要

UniProt は、タンパク質の配列と機能情報を網羅する世界有数のリソースです。名前、遺伝子、アクセッション番号でタンパク質を検索し、FASTA 形式で配列を取得し、データベース間で ID マッピングを実行し、REST API 経由で Swiss-Prot/TrEMBL のアノテーションにアクセスしてタンパク質解析に利用できます。

このスキルを使用する場合

このスキルは次の場合に使用してください:

  • 名前、遺伝子シンボル、アクセッション番号、または生物種でタンパク質エントリを検索する場合
  • FASTA やその他の形式でタンパク質配列を取得する場合
  • UniProt と外部データベース(Ensembl、RefSeq、PDB など)の間で識別子をマッピングする場合
  • GO ターム、ドメイン、機能の説明を含むタンパク質アノテーションにアクセスする場合
  • 複数のタンパク質エントリを効率的にまとめて取得する場合
  • レビュー済み(Swiss-Prot)と未レビュー(TrEMBL)のタンパク質データを照会する場合
  • 大規模なタンパク質データセットをストリーミングする場合
  • フィールド指定の検索構文でカスタムクエリを構築する場合

主な機能

1. タンパク質の検索

自然言語のクエリまたは構造化された検索構文を使って UniProt を検索します。

一般的な検索パターン:

# Search by protein name
query = "insulin AND organism_name:\"Homo sapiens\""

# Search by gene name
query = "gene:BRCA1 AND reviewed:true"

# Search by accession
query = "accession:P12345"

# Search by sequence length
query = "length:[100 TO 500]"

# Search by taxonomy
query = "taxonomy_id:9606"  # Human proteins

# Search by GO term
query = "go:0005515"  # Protein binding

API の検索エンドポイントを使用します: https://rest.uniprot.org/uniprotkb/search?query={query}&format={format}

対応形式: JSON, TSV, Excel, XML, FASTA, RDF, TXT

2. 個別のタンパク質エントリの取得

アクセッション番号を指定して、特定のタンパク質エントリを取得します。

アクセッション番号の形式:

  • 従来形式: P12345, Q1AAA9, O15530(6 文字: 英字 1 文字 + 英数字 5 文字)
  • 拡張形式: A0A022YWF9(新しいエントリでは 10 文字)

取得エンドポイント: https://rest.uniprot.org/uniprotkb/{accession}.{format}

例: https://rest.uniprot.org/uniprotkb/P12345.fasta

3. 一括取得と ID マッピング

異なるデータベースシステム間でタンパク質の識別子をマッピングし、複数のエントリを効率的に取得します。

ID マッピングのワークフロー:

  1. マッピングジョブを次の URL に送信します: https://rest.uniprot.org/idmapping/run
  2. ジョブの状態を確認します: https://rest.uniprot.org/idmapping/status/{jobId}
  3. 結果を取得します: https://rest.uniprot.org/idmapping/results/{jobId}

マッピングに対応するデータベース:

  • UniProtKB AC/ID
  • 遺伝子名
  • Ensembl、RefSeq、EMBL
  • PDB、AlphaFoldDB
  • KEGG、GO ターム
  • その他多数(詳細は /references/id_mapping_databases.md を参照)

制限事項:

  • 1 ジョブあたり最大 100,000 件の ID
  • 結果は 7 日間保存されます
4. 大規模な結果セットのストリーミング

ページネーションの上限を超える大規模なクエリには、ストリームエンドポイントを使用します:

https://rest.uniprot.org/uniprotkb/stream?query={query}&format={format}

ストリームエンドポイントは、ページネーションなしですべての結果を返すため、完全なデータセットのダウンロードに適しています。

5. 取得するフィールドのカスタマイズ

データ転送を効率化するために、取得するフィールドを正確に指定します。

一般的なフィールド:

  • accession - UniProt アクセッション番号
  • id - エントリ名
  • gene_names - 遺伝子名
  • organism_name - 生物種
  • protein_name - タンパク質名
  • sequence - アミノ酸配列
  • length - 配列長
  • go_* - Gene Ontology アノテーション
  • cc_* - コメントフィールド(機能、相互作用など)
  • ft_* - フィーチャーアノテーション(ドメイン、サイトなど)

例: https://rest.uniprot.org/uniprotkb/search?query=insulin&fields=accession,gene_names,organism_name,length,sequence&format=tsv

全フィールドの一覧は /references/api_fields.md を参照してください。

Python での実装

プログラムからアクセスする場合は、付属のヘルパースクリプト scripts/uniprot_client.py を使用してください。このスクリプトには次の機能が実装されています:

  • search_proteins(query, format) - 任意のクエリで UniProt を検索
  • get_protein(accession, format) - 個別のタンパク質エントリを取得
  • map_ids(ids, from_db, to_db) - 識別子の種類間でマッピング
  • batch_retrieve(accessions, format) - 複数のエントリを取得
  • stream_results(query, format) - 大規模な結果セットをストリーミング

その他の Python パッケージ:

  • Unipressed: UniProt REST API 向けのモダンで型付けされた Python クライアント
  • bioservices: 包括的なバイオインフォマティクス Web サービスのクライアント

クエリ構文の例

ブール演算子:

kinase AND organism_name:human
(diabetes OR insulin) AND reviewed:true
cancer NOT lung

フィールド指定の検索:

gene:BRCA1
accession:P12345
organism_id:9606
taxonomy_name:"Homo sapiens"
annotation:(type:signal)

範囲クエリ:

length:[100 TO 500]
mass:[50000 TO 100000]

ワイルドカード:

gene:BRCA*
protein_name:kinase*

包括的な構文ドキュメントについては、/references/query_syntax.md を参照してください。

ベストプラクティス

  1. 可能な場合はレビュー済みのエントリを使用する: Swiss-Prot(手作業でキュレーションされたエントリ)に絞り込むには reviewed:true でフィルタリングします
  2. 形式を明示的に指定する: 用途に最も適した形式を選択してください(配列にはFASTA、表形式データにはTSV、プログラムによる解析にはJSON)
  3. フィールドの選択を活用する: 必要なフィールドのみをリクエストすることで、帯域幅と処理時間を削減できます
  4. ページネーションを処理する: 大規模な結果セットの場合は、適切なページネーションを実装するか、ストリームエンドポイントを使用してください
  5. 結果をキャッシュする: 頻繁にアクセスするデータをローカルに保存し、API呼び出しを最小限に抑えてください
  6. レート制限への配慮: APIリソースに配慮し、大規模なバッチ処理では遅延を入れてください
  7. データ品質を確認する: TrEMBLのエントリは計算による予測であり、Swiss-Protのエントリは手作業でレビューされています

リソース

scripts/

uniprot_client.py - 検索、取得、ID マッピング、ストリーミングを含む、一般的な UniProt 操作のためのヘルパー関数を備えた Python クライアントです。

references/
  • api_fields.md - クエリをカスタマイズするために利用可能なフィールドの一覧
  • id_mapping_databases.md - ID マッピング操作でサポートされているデータベース
  • query_syntax.md - 高度な例を含む包括的なクエリ構文
  • api_examples.md - 複数の言語(Python、curl、R)によるコード例

追加リソース

コメント