Communitygithub.com

google-deepmind/science-skills

AlphaGenome APIを使用して遺伝子発現(RNA-seq)、クロマチンアクセシビリティ(DNASE)、ヒストン修飾(ChIP)、転写因子に対する遺伝的バリアントの影響を分析します。

science-skills とは?

このスキルは、Google DeepMindのAlphaGenome APIを利用して、非コード領域バリアントの機能的影響を詳細に解析するための強力なツールです。ユーザーがバリアントの病原性、臨床的意義、疾患関連性、遺伝子発現変化、スプライシングへの影響、プロモーターやエンハンサーなどの調節領域に関する質問をした際に自動的に起動します。スキルは、シングルバリアントおよびマルチバリアントのワークフローを提供し、`score_variant` による広範なディスカバリースキャンから、`visualize_variant_effects` による可視化、`report.md` テンプレートを用いたレポート生成までをカバーします。実行には有効なAPIキーが必要であり、すべてのPythonコードは `uv run` で実行するよう設計されており、外部API(MyGene.infoなど)に依存せず、ローカルのGTFファイルを使用することを徹底しています。また、生物学的用語からUBERON/CLなどの組織/細胞型オントロジーへの解決もサポートします。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/google-deepmind/science-skills/tree/HEAD/skills/alphagenome_single_variant_analysis

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

AlphaGenomeを用いたバリアント解析

前提条件

  1. uv: uv スキルを読み、そのセットアップ手順に従って uv がインストールされ、PATH が通っていることを確認してください。

  2. ユーザー通知: ワークスペースルートディレクトリに .licenses/alphagenome_single_variant_analysis_LICENSE.txt が存在しない場合は、(1) https://deepmind.google.com/science/alphagenome/ の利用規約を確認するようユーザーに明示的に通知し、(2) 通知テキストとタイムスタンプを記録したファイルを作成してください。

  3. .env ファイル: ホームディレクトリに .env ファイルが存在することを確認してください。存在しない場合は作成します。

  4. ALPHAGENOME_API_KEY: このスキルが機能するにはAPIキーが必要です。

    https://deepmind.google.com/science/alphagenome/ からキーを登録できます。 このスキルがユーザーのリクエストに関連していると思われる場合は、credentials スキルの安全な認証情報プロトコルを使用してこのキーを確認し、要求する必要があります。

  5. ALPHAGENOME_GTF_PATH (オプション): GCSからダウンロードする代わりに、ローカルコピーのGTF featherファイルを指定して、遺伝子/転写産物のルックアップを高速化します。

    echo "ALPHAGENOME_GTF_PATH=/path/to/local/gencode.v46.annotation.gtf.gz.feather" >> ~/.env
    

基本ルール

  • 決して python3 または python3 -c を直接実行しないでください。 システムのPythonにはpandas、numpyなどの主要な依存関係が必ずしも含まれているとは限りません。すべてのPythonコード(スクリプト、アドホックな解析ファイル、ワンライナーを含む)を実行するには、常に uv run を使用してください。pip install や新しいvenvの作成を試みないでください。uv が自動的に分離された環境を管理します。
  • オフラインのみ: 遺伝子/転写産物のルックアップには、外部API(例:MyGene.info、Ensembl REST)を決して使用しないでください。ローカルのGTFと共に lookup_gene_info.py を使用してください。失敗した場合は、環境/パスを修正し、外部APIに切り替えないでください。
  • APIキー必須: スクリプトを実行する前に ALPHAGENOME_API_KEY を設定する必要があります。
  • 通知: このスキルを使用した場合は、出力にその旨を明記してください。
  • レポート形式: 解析レポートを生成する際は、常に docs/report-templates.md のテンプレートを使用し、ディスカバリースキャンからのトップヒットの表を含めることを確認してください。

環境セットアップとトラブルシューティング

Python環境

すべてのスクリプトは uv run を使用して実行する必要があります。これにより、uv を介して正しい依存関係を持つ分離された仮想環境が管理されます。

uv run <script_name> [args...]

アドホックスクリプト(例:一時ファイルに保存されたインライン解析コード)の場合は、短い名前ではなくフルパスを渡します。

uv run --project $SKILL_DIR /tmp/my_analysis.py --arg1 val1

[!NOTE] 最初の呼び出しで依存関係が解決およびインストールされます(約10秒)。 以降の実行ではキャッシュされた環境が使用され、即座に起動します。キャッシュは ~/.cache/uv/ にあります。

一般的な問題

  • カラム名: tidy_scores とメタデータは、しばしば gene_name(gene_symbol ではない)と output_type(modality ではない)を使用します。フィルタリングする前に常に df.columns を確認してください。
  • 大きな遺伝子: 500kbを超える遺伝子(例:USH2A)は whole_gene ビューで問題が発生します。代わりに --view detail または手動のリージョナルウィンドウを使用してください。
  • Sashimiストランドエラー: plot_components.Sashimi は strand 引数を直接受け付けません。代わりに入力トラックをフィルタリングしてください。
  • KeyError: 'ontology_curie': すべてのトラックに ontology_curie があるわけではありません。フィルタリングする前に track.metadata.columns を確認してください。
  • Pythonパス: exec: "python": executable file not found が発生した場合は、ベア python/python3 の代わりに uv run を使用していることを確認してください。
  • NotImplementedError(pandas):「整数型のiLocationベースのブールインデックスは利用できません」。これは、新しいバージョンのpandasで、整数インデックスのDataFrameに対して .iloc でブールマスクを使用する場合に発生します。修正方法: np.flatnonzero(mask) を使用してブールマスクを整数インデックスに変換します。
  • GTF Featherの大文字小文字の区別: AlphaGenome GTF Featherファイルは、標準のGTFファイルとは異なり、大文字のカラム名(Feature、Start、End、Strand)を使用します。KeyErrorが発生した場合は、常に df.columns を確認してください。
  • score_variant のオントロジーフィルタリング: score_variant は引数として ontology_terms を受け付けません。返されたAnnDataオブジェクトを手動でフィルタリングするには、adata.var カラムを検査する必要があります。対照的に、predict_variant は ontology_terms を直接受け付けます。
  • Sashimiズームロジック: 「スキッピング」アークを確実に表示するには、ジャンクションの重複のみに依存するのではなく、フランキングエクソンを含むようにズームを拡張します。
  • ジャンクションスコア: prediction からの生の Junction オブジェクトは単純なIntervalである場合があります。.k(存在量/スコア)属性を持つオブジェクトを取得するには、junction_data.get_junctions_to_plot(predictions=..., name=...) を使用します。
  • uv が見つからない: exec: uv: not found の場合は、前提条件のインストール手順に従ってください。
  • レジストリ認証エラー(401): プライベートレジストリに対して uv が401 Unauthorizedで失敗する場合は、スクリプトを実行する前に UV_INDEX_URL=https://pypi.org/simple を設定します。

リファレンス

  • alphagenome-api.md — APIリファレンスとコードパターン
  • interpretation-guide.md — 解釈ガイド、スコアの大きさのルール、ISM、チェックリスト。
  • report-templates.md — 完全なレポートテンプレート
  • scripts/visualize_variant_effects.py — シングルバリアント可視化テンプレート(Ref/Alt比較、スプライシング)。
    • スプライシングズーム戦略: 最適な可視性のためにハイブリッドアプローチを使用します。
      1. 基本間隔: バリアント +/- 1 下流および上流エクソン(構造的コンテキスト)。
      2. ジャンクション拡張: 任意の重要なスプライシングジャンクション(例:複数のエクソンにまたがるエクソンスキッピングイベント)の全スパンを含むように拡張します。
      3. アンカー強制: これらの長いジャンクションをアンカーするエクソンが完全に表示されるようにします。教訓: 単純な固定ウィンドウ(例:2kb)や最近接エクソンロジックは、スキッピングイベントではしばしば失敗します。ズームレベルを決定するには、常に観測されたジャンクションデータを使用してください。
  • examples/splicing/ — スプライシング解析の例
  • examples/model_limitation_RNU4ATAC/ — ncRNA構造の制限に関するケーススタディ
  • examples/polyadenylation_HBA2/ — 3' UTR / ポリアデニル化のケーススタディ
  • examples/regulatory/ — 調節バリアントの例
  • examples/negative_result_GATA4/ — 否定的結果(数学的アーティファクト)
  • examples/negative_result_TGFB3/ — 否定的結果(プロキシ)
  • scripts/lookup_gene_info.py — 遺伝子および転写産物のルックアップ
  • scripts/resolve_ontology_terms.py — オントロジー用語の解決(UBERON/CL ID)

コードパターン

広範なディスカバリースキャン

score_variant を差動スコアラーのみで使用して、予期しない組織への影響を発見します。

from alphagenome.models import dna_client
from alphagenome.models import variant_scorers
from alphagenome.data import genome
import os
import pandas as pd
import dotenv

# ~/.env から環境変数を読み込む
dotenv.load_dotenv(os.path.expanduser('~/.env'))

# APIキーとクライアントのセットアップ
dna_model = dna_client.create(api_key=os.environ.get('ALPHAGENOME_API_KEY'),
                              address='dns:///gdmscience.googleapis.com:443')

# バリアントの定義 (例)
variant_str = "chr2:1234:A>C"
chrom, pos_str, ref_alt = variant_str.split(':')
ref, alt = ref_alt.split('>')
pos = int(pos_str)

# サポートされているシーケンス長を使用 (例:最適なパフォーマンスのために 2**20)
SEQ_LENGTH = 2**20
interval = genome.Interval(chrom, pos - SEQ_LENGTH // 2, pos + SEQ_LENGTH // 2)
variant = genome.Variant(chrom, pos, ref, alt)

scorers = [
    variant_scorers.RECOMMENDED_VARIANT_SCORERS[m]
    for m in variant_scorers.RECOMMENDED_VARIANT_SCORERS
    if "ACTIVE" not in m and "CAGE" not in m and "PROCAP" not in m
]

print(f"バリアント {variant_str} をスコアリング中...")
scores_list = dna_model.score_variant(interval=interval, variant=variant, variant_scorers=scorers)

# 結果の処理と表示
all_dfs = []
for score_adata in scores_list:
    df = variant_scorers.tidy_scores([score_adata], match_gene_strand=True)
    if df is not None:
        all_dfs.append(df)

if all_dfs:
    df = pd.concat(all_dfs)
    significant = df[df['quantile_score'].abs() > 0.995]
    ranked = significant.sort_values('raw_score', key=abs, ascending=False)
    print("トップの有意なヒット:")
    print(ranked[['biosample_name', 'gene_name', 'output_type', 'quantile_score', 'raw_score']])

疾患関連組織の拡張検索

# 疾患のコンテキストに基づいてキーワードを定義
disease_keywords = ["liver", "hepatocyte"]

# いずれかのキーワードに一致するものをフィルタリング
mask = df['biosample_name'].str.contains('|'.join(disease_keywords), case=False, na=False)

relevant_hits = df[mask].sort_values('raw_score', key=abs, ascending=False)
print(f"\n--- 拡張分析 (キーワード: {disease_keywords}) ---")
print(relevant_hits.head(20)[['biosample_name', 'output_type', 'raw_score', 'quantile_score']])

ワークフローチェックリスト

バリアント解析の進捗:
- [ ] ステップ 0: ゴールデンサンプルを確認 (必須)
- [ ] ステップ 1: 出力フォルダとセットアップを作成
- [ ] ステップ 2: ユーザークエリを解析 & 調査
- [ ] ステップ 3: 組織とモダリティを解決
- [ ] ステップ 4: プロットを可視化 & 保存
- [ ] ステップ 5: 予測を分析 (プロットを確認、コードなし)。必須: 結果を解釈する前に [interpretation-guide.md](docs/interpretation-guide.md) を読んでください。
- [ ] ステップ 6: レポートを作成し、`report.md` として保存 (必須)
- [ ] ステップ 7: 自己批評 (`report.md` を確認してリンクと主張を検証)
- [ ] ステップ 8: `report.md` をアーティファクトとして出力

マルチバリアントワークフロー

複数のバリアントが指定された場合は、サブエージェントを生成して各バリアントの解析を実行させ、その後各 report.md を1つのレポートに統合します。

スクリプトリファレンス

スクリプト目的
lookup_gene_infoGTFデータを使用した包括的な遺伝子および転写産物のルックアップ
: : :
resolve_ontology_terms生物学用語 → UBERON/CL/EFO ID
visualize_variant_effectsREF/ALT可視化 (発現、調節、スプライシング)
: : :
analyze_ismIn-Silico Mutagenesis SeqLogo生成
interpret_splicing定量的スプライシング解析 (デルタスコア、ジャンクション)
: : :
visualize_genome_tracksゲノムトラックの領域可視化

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル