protein-sequence-similarity-search について
アミノ酸配列または FASTA ファイルから相同配列を探す、タンパク質比較研究者向けのスキルです。既定では ColabFold API 経由で MMseqs2 を使い、指定時または失敗時には EBI BLAST を利用できます。
主な機能
- 01MMseqs2 または BLAST による相同配列検索
- 02指定リストから BLAST データベースを選択
- 03ヒットとアラインメント指標の要約
- 04Markdown と JSON の結果ファイル生成
活用シーン
- 01タンパク質配列の相同配列検索
- 02選択した BLAST データベースでの検索
- 03ヒットのカバレッジと配列同一性の比較
- 04後続解析用の結果保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google-deepmind/ science-skills --skill protein-sequence-similarity-searchインストール後、Claude Code で/protein-sequence-similarity-searchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/citation.bibscripts/mmseqs2_search.pyuniprot_blast.py詳細
前提条件
uv:uvのスキルを読み、セットアップの手順に従って、uvがインストールされ、PATH 上にあることを確認します。- ユーザーへの通知:ワークスペースのルートディレクトリに .licenses/protein_sequence_similarity_search_LICENSE.txt がまだ存在しない場合は、(1)https://www.ebi.ac.uk/jdispatcher/sss/ncbiblast および https://colabfold.com の利用条件を確認するようユーザーに目立つ形で通知し、次に(2)通知文とタイムスタンプを記録したファイルを作成します。
.envファイル:ホームディレクトリに.envファイルがあることを確認します。存在しない場合は作成します。USER_EMAIL(任意ですが推奨):EBI は BLAST ジョブの追跡に推奨していますが、このスキルは指定しなくても動作します。このスキルがユーザーのリクエストに関連すると思われる場合は、credentialsスキルの安全な認証情報プロトコルを必ず使用して、この認証情報の有無を確認し、必要に応じてユーザーに提示を求めます。
目標
ユーザーが提供したアミノ酸配列(または .fasta ファイルのパス)を使い、利用可能な最速の方法で配列ホモログを検索し、上位ヒットの Markdown 形式の表を作成し、主要なアラインメント指標を解釈して、推定されるタンパク質機能を要約し、今後のプログラムによる解析に備えて結果をローカルに保存します。
基本ルール
- 厳密な検証:BLAST では、下の表に記載されているデータベースコードのみを使用します。
- 幻覚の禁止:スクリプトがエラーを出した場合、またはヒットがなかった場合は、ユーザーにはっきり伝えます。配列ホモログを捏造してはいけません。
- 出力ファイルを解析しない:JSON、a3m、その他の生出力ファイルを解析してはいけません。要約には、生成された
.mdファイルを使用します。JSON やその他の出力は、後続のツールで使用するためのものです。 - 検索方法を必ず明記する:すべてのレポートで、検索に高速な MMseqs2(ColabFold API)を使用したか、低速な EBI BLAST を使用したかを明確に示します。
- 通知:このスキルを使用した場合は、その旨を出力に記載します。使用したプログラム(MMSEQS2 または EBI BLAST)と配列データベースを明示します。
検索方法の選択
ユーザーのリクエストに基づいて検索方法を選択します。
ユーザーが「quick search」または「fast search」と言った場合、特定の方法を指定していない場合/一般的なホモログ検索の場合、または判断できない場合は、mmseqs2_search.py を使用して MMseqs2(高速、デフォルト)を実行します。
MMseqs2 が失敗した場合(終了コード 2:RATELIMIT または API エラー)、ユーザーが「BLAST」を明示的にリクエストした場合、または特定の BLAST データベース(例:uniprotkb_swissprot、pdb、uniprotkb_human)を指定した場合は、uniprot_blast.py を使用して BLAST を実行します。
手順
-
ユーザーからのクエリを特定します。生の配列文字列(例:「MKVLY...」)またはローカルファイルへのパス(例:「./data/sequence.fasta」)を指定できます。
-
上記のリストを使用して、検索方法を決定します。
パス A:MMseqs2 検索(デフォルト)
-
**ファイル名を生成する:**入力に基づいて、内容が分かる出力ファイル名を生成します(例:
proteinA_mmseqs2.jsonおよびproteinA_mmseqs2.md)。 -
MMseqs2 スクリプトを実行します。
- デフォルト:
uv run scripts/mmseqs2_search.py <SEQUENCE_OR_FILE> -o <generated-filename.md> -j <generated-filename.json>- mgnify を含める場合:
uv run scripts/mmseqs2_search.py <SEQUENCE_OR_FILE> -o <generated-filename.md> -j <generated-filename.json> --include-mgnify -
スクリプトは ColabFold MMseqs2 API にクエリを送信し、完了するまでポーリングします。通常は高速で、2 分以内に完了します。
-
スクリプトがコード 2 で終了した場合(API 障害、レート制限)は、BLAST(以下のパス B)に自動的にフォールバックします。ユーザーには「MMseqs2 search failed, falling back to BLAST.」と伝えます。
-
**結果を読む:**生成された
.mdファイルを開いて読みます。
パス B:BLAST 検索(明示的な指定またはフォールバック)
-
データベースの選択と検証: ユーザーのプロンプトに基づいて、最も適切なデータベースを選択します。
- 以下の利用可能な BLAST データベース表を参照します。
- ユーザーが分類群を指定した場合(例:「微生物で相同配列を検索」)、対応する
Database Code(例:uniprotkb_bacteria)を選択します。 - ユーザーがキュレーション済みのヒットを明示的に要求した場合は、
uniprotkb_swissprotを使用します。 - 特定のデータベースが要求されていない場合は、
--databasesを指定しないでください。 - 検証: データベースコードが表の項目と完全に一致していることを確認します。ユーザーがリストにないデータベースを要求した場合は、処理を進めず、使用可能なリストを提示してください。
-
ファイル名を生成:(例:
proteinA_ebi_blast.json、proteinA_ebi_blast.md)。 -
この API では、リクエストヘッダーに含めるユーザーのメールアドレスを USER_EMAIL 環境変数に設定する必要があります。このスキルがユーザーのリクエストに関連すると考えられる場合は、
credentialsスキルの安全な認証情報プロトコルを必ず使用して、この認証情報の有無を確認し、必要に応じて要求してください。 -
BLAST スクリプトを実行します。
- デフォルト(uniprotkb):
uv run scripts/uniprot_blast.py <SEQUENCE_OR_FILE> -o <generated-filename.md> -j <generated-filename.json>- カスタムデータベース:
uv run scripts/uniprot_blast.py <SEQUENCE_OR_FILE> -o <generated-filename.md> -j <generated-filename.json> --databases <db1,db2> -
スクリプトは EBI BLAST API にクエリを送信し、サーバーをポーリングします。注: 最大 15 分かかる場合があります。完了までお待ちください。
-
結果を読む: 生成された
.mdファイルを開いて読みます。
共通の手順(どちらの方法でも)
- 指標を解釈: 上位 3~5 件の配列相同体を要約します。以下を使用して一致の品質を評価します。
- Q-Cov(クエリカバレッジ): パーセンテージが高いほど、クエリ配列の大部分を一致がカバーしていることを示します。
- E-value: E-value が低いほど(例:
1e-50)、統計的有意性が非常に高いことを示します。 - Seq Identity: 進化的背景を示します(高度に保存されているか、遠縁の相同体か)。
- 機能分析を実施:
- 結果の表にタンパク質の説明が含まれている場合は、説明を直接分析します。上位の相同体の具体的なタンパク質名と機能を報告し、見つかった機能、ドメイン、タンパク質ファミリーの多様性を要約します。
- 結果に説明のない UniProt アクセッション ID しか含まれていない場合(MMseqs2 でよくあります)、要約する前に、uniprot-databaseスキルまたはその他の適切な方法を使って、上位 3~5 件のヒットのタンパク質名と機能を調べます。
- 新たに作成された 2 つのファイル(
.jsonと.md)とその保存場所をユーザーに伝えます。
利用可能なBLASTデータベース
uniprotkb– UniProt Knowledgebase(UniProt KnowledgebaseにはUniProtKB/Swiss-ProtとUniProtKB/TrEMBLが含まれます):UniProt Knowledgebase(UniProtKB)は、機能、分類、相互参照を含む、幅広くキュレーションされたタンパク質情報への中心的なアクセスポイントです。特定の配列について「既知のすべての情報」を取得するには、UniProtKBを検索してくださいuniprotkb_swissprot– UniProtKB/Swiss-Prot(UniProtKBの手動注釈セクション):UniProt Knowledgebaseの手動キュレーションされたサブセクションuniprotkb_swissprotsv– UniProtKB/Swiss-Protアイソフォーム(UniProtKB/Swiss-Protの手動注釈済みアイソフォーム):UniProt Knowledgebaseの手動キュレーションされたサブセクションに含まれるアイソフォーム配列uniprotkb_reference_proteomes– UniProtKB Reference Proteomes:UniProtKB Reference Proteomesの分類学的サブセットuniprotkb_trembl– UniProtKB/TrEMBL(UniProtKBの自動注釈セクション):ENA Sequence(旧EMBL-Bank)のコーディング配列翻訳データから派生し、自動プロセスによって注釈が付与されたUniProt Knowledgebaseのサブセクションuniprotkb_refprotswissprot– UniProtKB Reference ProteomesとSwiss-Prot:UniProtKB Reference ProteomesとSwiss-Protuniprotkb_archaea– UniProtKB Archaea:古細菌を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_arthropoda– UniProtKB Arthropoda:節足動物を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_bacteria– UniProtKB Bacteria:細菌を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_complete_microbial_proteomes– UniProtKB Complete Microbial Proteomes:完全な微生物プロテオームを対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_eukaryota– UniProtKB Eukaryota:真核生物を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_fungi– UniProtKB Fungi:菌類を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_human– UniProtKB Human:ヒトを対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_mammals– UniProtKB Mammals:哺乳類を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_nematoda– UniProtKB Nematoda:線虫を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_rodents– UniProtKB Rodents:げっ歯類を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_vertebrates– UniProtKB Vertebrates:脊椎動物を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_viridiplantae– UniProtKB Viridiplantae:緑色植物を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_viruses– UniProtKB Viruses:ウイルスを対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_enzyme– UniProtKB Enzyme:酵素を対象とするUniProt Knowledgebaseの分類学的サブセットuniprotkb_covid19– UniProtKB COVID-19:COVID-19を対象とするUniProt Knowledgebaseの分類学的サブセットuniref100– UniProt Clusters 100%(UniRef100):配列が100%同一のものを含むUniProt Reference Clusters(UniRef)uniref90– UniProt Clusters 90%(UniRef90):配列が90%同一のものを含むUniProt Reference Clusters(UniRef)uniref50– UniProt Clusters 50%(UniRef50):配列が50%同一のものを含むUniProt Reference Clusters(UniRef)pdb– タンパク質構造配列(PDBeタンパク質構造配列):Brookhaven Protein Data Bank(PDB)に記載された構造由来のタンパク質配列