alphagenome について
alphagenomeスキルは、APIを介してAlphaGenome Atlasの事前計算済み変異スコアを照会するか、モデルでDNA配列の機能を予測します。ゲノム研究向けに変異の順位付け、特徴寄与、組織別トラック解析を行いますが、診断や医療判断には使用できません。
主な機能
- 01AtlasのAVIスコアと特徴寄与の照会
- 02変異・領域・組織によるトラックスコアの絞り込み
- 03Atlas対象外の変異スコアリング
- 04REFとALTの配列トラック予測
- 05AlphaGenomeポータルリンクの作成
活用シーン
- 01GRCh38の一塩基変異候補の順位付け
- 02指定組織における調節効果の確認
- 03indelやマウス変異の解析
- 04予測トラックによる変異効果仮説の検討
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill alphagenomeインストール後、Claude Code で/alphagenomeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/atlas.mdinterpretation.mdmodel-api.mdscripts/_common.pyatlas_link.pyatlas_query.pyscore_variants.py詳細
AlphaGenome と AlphaGenome Atlas
AlphaGenome は DeepMind の配列から機能を予測するモデルです。1 Mb の DNA を入力すると、数千のヒトおよびマウスのトラックにわたる 11 種類のアッセイについて、塩基対単位の予測を出力します。AlphaGenome Atlas(2026-09-08 リリース)は、このモデルを GRCh38 のあらゆる一塩基変化について一度実行したもので、約 90 億のバリアントを、単一のランキング値である **AlphaGenome Variant Impact(AVI)**スコア、ゲノム全体でのパーセンタイル、および影響要因を示す 18 種類の帰属情報とともに保存しています。どちらも、pip install alphagenome と 1 つの API キーで利用できます。
研究および理論モデリングのみを対象としています。出力を他のモデルのトレーニングに使用してはならず、診断手順や医療上の判断にも使用できません。
どちらを使うか
| 対象 | 使用するもの | 理由 |
|---|---|---|
| hg38 の SNV(VCF、信頼できるセット、最大約 1 kb の領域) | scripts/atlas_query.py 経由の Atlas | 事前計算済みで、割り当て量が多く、AVI と帰属情報を含みます |
| indel、マウスのバリアント、参照配列とは異なる背景、カスタムスコアラーやウィンドウ | scripts/score_variants.py または Python 経由の model | Atlas は SNV のみ、hg38 のみを対象としています |
| 解明したい仮説(どのモチーフか、どの組織か、REF と ALT のどちらのトラックか) | model の predict_variant +プロット、Atlas のトラックスコア、ポータルリンク | 単なる順位付けではなく、メカニズムの解明に使います |
| GRCh37 座標、rsID、正規化されていない indel | まず genomic-coordinates を使い、その後に戻ります | ビルドが間違っていたり REF が入れ替わっていたりすると、もっともらしい誤った結果になります |
| ClinVar のアサーション、遺伝子と疾患の妥当性、ACMG の枠組み | folklore-variant-evidence、database-lookup | AlphaGenome はエビデンスの一つであり、決定的な判断ではありません |
| DeepMind のキーなしでのプロモーター/エンハンサー/発現予測 | genomic-intelligence | 別のプロバイダーで、キー不要のデモ版を利用できます |
セットアップ
uv pip install alphagenome # PyPI; tested on Python 3.12 and 3.13, alphagenome 0.9.0
export ALPHAGENOME_API_KEY="..." # https://deepmind.google.com/science/alphagenome
cd skills/alphagenome/scripts
python atlas_query.py scorers # proves key + network in one call
キーをコマンドラインやコミットするファイルに記載しないでください。スクリプトは環境変数からのみ読み取ります。無効なキーの場合、権限エラーではなく ValueError: API key not valid が表示されます。
座標の仕様
- バリアントは 1-based の
chr:pos:ref>alt(chr22:36201698:A>C)形式です。gnomAD(22-36201698-A-C)、GTEx(chr22_36201698_A_C_b38)、Open Targets の表記も、スクリプトとgenome.Variant.from_strで受け付けます。 - コマンドラインでの区間は 1-based closed の
chr:start-end形式です。SDK のgenome.Intervalは 0-based half-open です。スクリプトが変換します。 - ヒトは GRCh38 のみに対応しています。Atlas のキーは
chr:pos:altです。REF は参照配列から暗黙的に決まるため、REF と ALT を入れ替えたバリアントや GRCh37 上のバリアントを指定すると、誤ったレコードが警告なく返されます。検索結果を信頼する前に、REF を FASTA と照合してください。 - rsID は API またはポータルでは受け付けられません。座標に変換してください。
chrプレフィックスを使用してください。MTはchrMになります。
Atlas のワークフロー
1. AVI で順位付けする
python atlas_query.py avi --variant chr22:36201698:A>C chr9:128225994:G>A
python atlas_query.py avi --input candidates.vcf --min-phred 20 -o avi.tsv
python atlas_query.py avi --interval chr11:5225727-5226575 --top-k 25 -o hbb_window.tsv
python atlas_query.py avi --input credible_set.tsv --with-tracks -o avi_tracks.tsv
バリアントごとに 1 行出力します。
| 列 | 意味 |
|---|---|
avi_raw | 複合モデルの出力(18 個のアトリビューションの合計値) |
avi_cdf_quantile | 全ゲノムの SNV に対する累積分位値(提供される値) |
avi_tail_quantile、avi_phred、avi_top_percent | tail = 1 - cdf、phred = -10 log10(tail)。Phred 20 は上位 1 %、30 は上位 0.1 % です |
top_feature、top_feature_value | SHAP アトリビューションの絶対値が最大の特徴量とその値 |
fi_MERGED_SPLICING ... fi_IS_DELETION | 18 個すべてのアトリビューション(キーは references/atlas.md を参照) |
top_track_*(--with-tracks 指定時) | 最上位の特徴量の背後にある最も強いトラック:スコアラー、トラック、バイオサンプル、オントロジー CURIE、遺伝子、未加工スコア |
atlas_url | ポータル上のバリアントへのディープリンク |
error | クラッシュの代わりに出力される、バリアントごとの検索失敗(indel、N 塩基、REF の不一致) |
Atlas レポートの推奨事項は、しきい値を設定せずに順位付けすること、そして領域や用途に応じてしきい値を選ぶことです。病原性の調節バリアントは、タンパク質短縮バリアントやスプライスモチーフバリアントよりも AVI の低いビンに位置するため、全ゲノムに対して単一のカットオフを設定すると、このリソースが検出するために構築されたバリアントをまさに過小評価してしまいます。
数値を見る前にアトリビューションを確認してください。MERGED_SPLICING または ALPHAMISSENSE が最上位なら、スプライスまたはコーディングのメカニズムです。MAX_ABS_DNASE、MAX_ABS_CHIP_TF、MAX_ABS_RNA_SEQ なら、トラックで詳細を確認できる調節メカニズムです。CACTUS_241_WAY または PHASTCONS_470_WAY が最上位なら、スコアは保存性に基づいており、分子メカニズムは特定されていません。
2. トラックでメカニズムを特定する
python atlas_query.py scorers # what the server serves right now
python atlas_query.py tracks --scorer RNA_SEQ --query colon # find ontology CURIEs
python atlas_query.py scores --variant chr22:36201698:A>C \
--scorers RNA_SEQ DNASE SPLICE_SITE_USAGE --ontology UBERON:0001157 -o colon.tsv
python atlas_query.py scores --interval chr11:5225727-5226575 --scorers CHIP_TF --gene HBB -o hbb_tf.tsv
バリアント × トラック(RNA_SEQ、POLYADENYLATION、SPLICE_* では × 遺伝子)ごとに 1 行を出力し、raw_score と、提供されている場合は quantile_score を含みます。トラックレベルのスコアラー名は ATAC、DNASE、CHIP_TF、CHIP_HISTONE、CAGE、PROCAP、RNA_SEQ、POLYADENYLATION、SPLICE_SITES、SPLICE_SITE_USAGE、SPLICE_JUNCTIONS、CONTACT_MAPS と、それぞれの *_ACTIVE バリアントです。最新の一覧については scorers が正式な情報源です。ゲノム全体の最大値ではなく、質問の対象となる組織で絞り込んでください。9,440 個のトラックがあれば、どこかでは常に極端な値が見つかります。
3. ポータルに案内する
python atlas_link.py variant chr22:36201698:A>C --biosample "colon" --modalities RNA_SEQ,DNASE,CHIP_TF
python atlas_link.py locus chr11:5225727-5226575 --tf GATA1
python atlas_link.py gene HBB --markdown
キーもネットワークも不要です。サイトでは、AVI トラック、すべてのバイオサンプルにわたるモダリティごとのヒートマップ、REF と ALT の予測トラック、モチーフのインスタンスを確認できます。報告するすべてのバリアントにリンクを付けてください。
Python での利用
import os
from alphagenome.atlas import atlas
from alphagenome.data import genome
client = atlas.create(os.environ["ALPHAGENOME_API_KEY"], timeout=30)
scores = client.query_variant(
genome.Variant.from_str("chr22:36201698:A>C"),
requested_scorers=["AVI_SCORE", "AVI_SCORE_FEATURE_IMPORTANCE", "RNA_SEQ"],
ontology_terms=["UBERON:0001157"], # optional; ignored for scorers without ontology metadata
)
avi = scores["AVI_SCORE"] # AnnData: X (1,1) raw; layers['quantiles'] (1,1) cdf
fi = scores["AVI_SCORE_FEATURE_IMPORTANCE"] # AnnData: X (1,18); var['name'] = feature keys
rna = scores["RNA_SEQ"] # AnnData: obs = variant x gene, var = tracks, X = log2 FC
client.query_interval(genome.Interval("chr11", 5225726, 5226575), requested_scorers=["AVI_SCORE"])
query_interval は、32 bp のチャンクごとに、1 塩基あたり 3 個すべての SNV を返します。ウィンドウは約 1 kb(3,000 バリアント)に収めてください。それを超える場合、atlas_query.py は --max-window の値を引き上げない限り拒否します。query_variants は最初の検索失敗時点で停止します。このスクリプトはバリアントを 1 つずつ検索するため、見つからないものは error セルになります。
モデルのワークフロー
Atlas に登録されていないバリアントのスコアを計算する
python score_variants.py --variant chr22:36201698:A>C -o scores.tsv # 12 recommended scorers, 1 Mb
python score_variants.py --input indels.vcf --scorers RNA_SEQ SPLICE_SITE_USAGE \
--ontology UBERON:0001157 --min-abs-quantile 0.99 -o colon.tsv
python score_variants.py --organism mouse --variant chr7:45000000:A>G --sequence-length 500KB
python score_variants.py --list-scorers
python score_variants.py --list-tracks --output-type RNA_SEQ --query liver -o tracks.tsv
出力は variant_scorers.tidy_scores による公式の整形済みテーブルです。バリアント × スコアラー × トラック(× 遺伝子)ごとに 1 行を出力し、raw_score と quantile_score を含み、|raw| の降順に並べます。デフォルトのスコアラーは推奨される 12 個の差分スコアラーです。--include-active を指定すると、7 個の *_ACTIVE アクティビティスコアラーが追加されます。1 回のリクエストで指定できるスコアラーは最大 20 個です。
from alphagenome.models import dna_client, variant_scorers
model = dna_client.create(os.environ["ALPHAGENOME_API_KEY"])
variant = genome.Variant.from_str("chr22:36201698:A>C")
interval = variant.reference_interval.resize(dna_client.SEQUENCE_LENGTH_1MB)
adatas = model.score_variant(interval, variant, variant_scorers=[variant_scorers.RECOMMENDED_VARIANT_SCORERS["RNA_SEQ"]])
df = variant_scorers.tidy_scores(adatas) # filter df.ontology_curie afterwards; score_variant takes no ontology_terms
トラックを予測して変異導入を行う
vo = model.predict_variant(interval, variant,
requested_outputs=[dna_client.OutputType.RNA_SEQ, dna_client.OutputType.DNASE],
ontology_terms=["UBERON:0001157"])
vo.reference.rna_seq.values, vo.alternate.rna_seq.values # (1048576, n_tracks)
window = genome.Interval("chr20", 3_753_000, 3_753_400).resize(dna_client.SEQUENCE_LENGTH_16KB)
ism = model.score_ism_variants(interval=window, ism_interval=window.resize(256),
variant_scorers=[variant_scorers.CenterMaskScorer(
requested_output=dna_client.OutputType.DNASE, width=501,
aggregation_type=variant_scorers.AggregationType.DIFF_MEAN)])
対応するウィンドウは 16 kb、100 kb、500 kb、1 Mb(2**14 から 2**20)です。デフォルトは 1 Mb で、遠位エンハンサーとコンタクトマップには 1 Mb が必要です。オントロジー用語は CURIE(UBERON:0002048 は肺、CL:0000084 は T 細胞)です。--list-tracks または model.output_metadata(...).concatenate() で確認してください。プロット、遺伝子アノテーション(GCS 上の GENCODE v46 Feather)、スプライシング、ハプロタイプのレシピについては、references/model-api.md を参照してください。
数値の読み方
スコアラー、トラック、バイオサンプルの CURIE、遺伝子とともに、未加工スコアと分位値または Phred を必ず報告してください。raw_score はスコアラーの尺度での効果量です(RNA_SEQ は log2 倍率変化で、-1 は半分を意味します)。quantile_score は一般的なバリアントに対する順位で、0.99999 付近で飽和します。|raw| < 0.1 で分位値が 0.99 を超える場合、静かな領域でよく見られるアーティファクトであり、効果なしを意味します。符号なしのスコアラー(SPLICE_*、POLYADENYLATION、CONTACT_MAPS、*_ACTIVE)には方向性がありません。ほとんどのバリアントは良性です。「AlphaGenome predicts no molecular effect」は十分な回答です。また、ピーク内にあるバリアントでも、REF トラックと ALT トラックが同一なら、何かを「破壊」しているわけではありません。完全なルール、組織のマッチング、報告チェックリストについては、references/interpretation.md を参照してください。
モデルが認識できないもの:トランス効果、ポリアデニル化されない RNA(RNU4-2 などの snRNA 遺伝子)、学習に含まれていない細胞種、タンパク質レベルでの影響(AlphaMissense はそのために AVI に統合されています)、RNA 構造と miRNA の生物学、二倍体の用量、発生時期、ヒトとマウス以外の種。
制限、クォータ、利用条件
- Atlas:現時点では GRCh38 の SNV のみです。論文用にインデルもスコアリングされましたが、後日提供予定です。参照配列の
N塩基はスコアリングされていません。 - クォータはキーごとに設定されていますが、公開されていません。Atlas のクエリレートは、オンデマンド予測より高いと記載されています。一時的な
RESOURCE_EXHAUSTEDとUNAVAILABLEは、クライアントが再試行します(5 回、最大 60 秒のバックオフ)。 - アクセス階層(Atlas レポート):AVI スコアは、https://alphagenome.google/downloads からダウンロードできる寛容なライセンスの Tabix ファイルとしても提供されています。特徴量の帰属とスプライシングスコアは非商用のダウンロードで提供されます。それ以外の未加工トラックスコアはすべて API のみで、非商用です。商用 API アクセスは、Google Cloud Model Garden を通じて「近日提供予定」です。
alphagenomeクライアントは Apache-2.0 です。モデルの重みと出力には DeepMind の利用条件が適用されます。Avsec et al., Nature 649:1206 (2026) および Atlas レポート(Cheng, Taylor, Nicolaisen, Pan, Bycroft, Perino, Ward et al., 2026)を引用してください。
参考資料
references/atlas.md- Atlas の内容、トラック数を含む 19 のスコアラー設定、AVI の学習と 18 個の特徴量、分位値から Phred への変換、クライアント API と AnnData のレイアウト、エラーマッピング、アクセス階層、ポータル URL の構文、GTF とダウンロード先。references/model-api.md-dna_clientチートシート:座標、配列長、出力タイプとトラック数、オントロジーメタデータ、予測とスコアリングの呼び出し、推奨スコアラー設定、ISM、遺伝子アノテーション、プロット。references/interpretation.md- 未加工スコアと分位値の違い、AVI のしきい値、組織のマッチング、陰性結果、モデルの盲点、座標の整合性、報告チェックリスト。- スクリプト:
scripts/atlas_query.py(Atlas:avi、scores、scorers、tracks)、scripts/score_variants.py(モデルのスコアリング、--list-scorers、--list-tracks)、scripts/atlas_link.py(ポータルへのディープリンク、オフライン)。
エージェントの作業手順
- 環境を確認します。 ツールのバージョン、参照ゲノム/アノテーションのビルド、入力形式(FASTQ、BAM、VCF、h5ad)を確認します。
- 入力を明確にします。 データまたはユーザーから、形式、識別子、パラメーターを確認します。結果に影響する値を推測せず、確認してください。
- まず小規模に実行します。 最初に、パイプラインを小さなサブセット(1サンプル、1染色体、数千細胞)で実行します。
- 上記の手順と参照情報に従って、タスク全体を実行します。
- 結果を検証します。 結果を解釈する前に、QC指標、サンプルの同一性、ゲノムビルドの整合性、バッチ効果を確認します。
- 報告します。 実行した内容(バージョン、コマンド、パラメーター)、確認した内容、未確定の点を明示します。
| 発生した場合 | 対応 |
|---|---|
| 入力間でゲノムビルドまたは識別子が一致しない | 続行する前に停止し、整合させます(リフトオーバー、IDマッピング)。 |
| インストール済みのバージョンに、これらの手順に記載された関数、フラグ、エンドポイントがない | インストール済みバージョンのドキュメント(help()、--help、公式ドキュメント)を確認して対応し、ユーザーに伝えます。APIを捏造しないでください。 |
| 必須の入力、識別子、パラメーターが曖昧 | ユーザーに確認するか、実行前に前提を明示します。 |
完全性に関するルール
- 結果、パラメーター、識別子、引用、統計値を決して捏造しないでください。実行または検証できない場合は、その旨を明確に伝えます。
- 統計的な裏付けを超えて生物学的意義を解釈しないでください。多重検定補正について報告します。
- ここに記載されたバージョン固有の情報は古くなっている可能性があるため、インストール済みバージョンの公式ドキュメントで確認します。
- 費用が発生する操作、共有GPUまたはクラウドクォータを消費する操作、個人データまたは患者データを扱う操作、取り消せない操作を行う前に、必ず確認します。
関連スキル
shap:SHAPを使用して、機械学習の予測を説明および監査します。