mcpField
T
tooluniverse-variant-interpretation

tooluniverse-variant-interpretation

github.com/mims-harvardデータ・データベース1.8k352 回インストール2 日前に更新
リポジトリ

tooluniverse-variant-interpretation について

変異の正規化やデータベース検索から ACMG 分類までを案内する、ToolUniverse の臨床変異解釈スキルです。集団・臨床エビデンスと計算・構造予測を組み合わせ、結果には専門家による確認を求めています。

主な機能

  1. 01HGVS の正規化と転写産物・変異の影響の特定
  2. 02臨床・集団データベースのエビデンス収集
  3. 03コーディング変異と非コーディング変異の影響評価
  4. 04必要に応じた構造・発現コンテキストの利用
  5. 05ACMG エビデンスコードの適用と推奨事項の提示

活用シーン

  1. 01臨床レビュー用の VCF 変異注釈
  2. 02ACMG エビデンスに基づく変異分類
  3. 03ミスセンス変異の構造的影響の評価
  4. 04非コーディング変異の調節エビデンスの調査

MCP 対応

このスキルは ToolUniverse のツールを検出して使用し、変異効果予測の一部にはリモート MCP サーバー上のツールを利用します。汎用的な MCP サーバーインターフェースは明記されていません。

インストール

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

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-variant-interpretation

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

ACMG_CLASSIFICATION.md
CHECKLIST.md
CODE_PATTERNS.md
EXAMPLES.md
TOOLS_REFERENCE.md

詳細

臨床バリアント解釈

ToolUniverse を使用した体系的なバリアント解釈です。生のバリアントコールから、構造的影響の分析を含む ACMG 分類済みの臨床的推奨事項を導き出します。

使用するタイミング

次のような場合にこのスキルを使用します。

  • バリアントの解釈、分類、病原性について質問された場合
  • 臨床アノテーションが必要な VCF データがある場合
  • バリアントの ACMG 分類が必要な場合
  • ミスセンスバリアントの構造的影響分析を希望する場合

主な原則

  1. ACMG に準拠 - 明示的なエビデンスコードを用いて ACMG/AMP 2015 ガイドラインに従います
  2. 構造的エビデンス - AlphaFold2 を使用して、新規の構造的影響を分析します
  3. 集団背景 - 祖先集団別のデータを含む gnomAD の頻度を使用します
  4. 実用的な出力 - 分類だけでなく、明確な推奨事項を提示します
  5. 英語を優先したクエリ - ツール呼び出しでは常に英語の用語を使用し、ユーザーの言語で応答します

推測せず、調べる

バリアントの意義について尋ねられたら、まず ClinVar/gnomAD/CIViC を照会します。データベースを確認せずにバリアントを分類してはいけません。事実が不確かな場合は、記憶を頼りにさらに考えるのではなく、まずツールを使って検索してください。


ワークフローの概要

Phase 1: VARIANT IDENTITY        → Normalize HGVS, map gene/transcript/consequence, resolve ClinGen CA ID
Phase 2: CLINICAL DATABASES       → ClinVar, gnomAD, OMIM, ClinGen, COSMIC, SpliceAI
Phase 2.5: REGULATORY CONTEXT     → ChIPAtlas/ENCODE annotation + DL variant-effect (AlphaGenome/Enformer/Borzoi/ChromBPNet/Evo2) (non-coding only)
Phase 3: COMPUTATIONAL PREDICTIONS → CADD, AlphaMissense, EVE, SIFT/PolyPhen
Phase 4: STRUCTURAL ANALYSIS      → PDB/AlphaFold2, domains, functional sites (VUS/novel)
Phase 4.5: EXPRESSION CONTEXT     → CELLxGENE, GTEx tissue expression
Phase 5: LITERATURE EVIDENCE      → PubMed, EuropePMC, BioRxiv, MedRxiv
Phase 6: ACMG CLASSIFICATION      → Evidence codes, classification, recommendations

フェーズ 1:バリアントの同定

ツール:MyVariant_query_variants、EnsemblVar_get_variant_consequences、NCBIGene_search、VariantValidator_gene2transcripts、VariantValidator_validate_variant、Tark_get_mane_transcripts、Tark_get_transcript、ClinGenAllele_lookup_hgvs、ClinGenAllele_get_allele

VariantValidator_gene2transcripts:遺伝子の MANE Select および MANE Plus Clinical トランスクリプトを検索します。バリアントをアノテーションする前に、正しい標準トランスクリプトを特定するために使用します。

  • パラメーター:gene_symbol(例:「TP53」)、transcript_set(「mane」|「refseq」|「ensembl」|「all」)、genome_build(デフォルトは「GRCh38」)
  • 戻り値:{current_symbol, transcripts: [{reference, annotations: {mane_select, mane_plus_clinical}}]} の配列
  • エイリアス:gene と gene_name も gene_symbol として受け付けます

Tark_get_mane_transcripts:Ensembl Tark から、ENST↔RefSeq の対応付けを含む MANE Select/MANE Plus Clinical を軽量に検索します(例:gene="BRCA2" → ENST00000380152.8 / NM_000059.4)。VariantValidator と併用して標準トランスクリプトの名前空間を手早く相互確認したり、ENST↔NM アクセッションを変換したりする際に使用します。Tark_get_transcript(パラメーター stable_id、例:「ENST00000380152」)は、特定のトランスクリプトバージョンを解決する必要がある場合に、アーカイブされたトランスクリプトレコード(アセンブリ、生物型、座標、リリースごとのバージョン)を返します。

VariantValidator_validate_variant:HGVS バリアント記述を検証し、ゲノム/トランスクリプト/タンパク質への影響を含む正規化表記を取得します。

  • パラメーター:genome_build(「GRCh37」|「GRCh38」)、variant_description(HGVS、例:「NM_007294.4:c.5266dup」)、select_transcripts(トランスクリプトまたは「all」)
  • 戻り値:検証済み HGVS、タンパク質への影響、ゲノム座標、遺伝子 ID

ClinGenAllele_lookup_hgvs/ClinGenAllele_get_allele:ゲノム(NC_*)、コーディング(NM_*)、またはタンパク質(NP_*)の HGVS 表記を ClinGen Allele Registry の標準アレル ID(CA ID)に解決し、ClinVar、dbSNP、COSMIC、gnomAD への相互参照を 1 回の呼び出しで取得します。ライブでの検証済み事例では、NM_000546.6:c.743G>A(TP53 p.Arg248Gln)は CA000387 に解決され、ClinVarVariations、dbSNP、COSMIC の ID が付与されています。CA ID を取得した後(すでに CA ID を記載している ClinVar レコードから取得した場合など)は、ClinGenAllele_get_allele(ca_id=...) を使って同じレコードを再取得します。異なるアクセッションをキーとするデータベース間でバリアントを照合する際に、同定情報をすばやく標準化するのに便利です。API キーは不要です。座標に関する注意点:genomic_alleles[].start/end は 0 ベースの interbase(半開区間)であり、HGVS g./VCF/gnomAD で使用される 1 ベースの位置ではありません。HGVS のゲノム位置を得るには、start に 1 を加えてください。各行の coordinate_system フィールドにこの点が明記されています。

記録する項目:HGVS 表記(c. および p.)、遺伝子シンボル、標準トランスクリプト(VariantValidator 経由の MANE Select)、影響の種類、アミノ酸変化、エクソン/イントロンの位置。

フェーズ 2:臨床データベース

ツール:ClinVar_search_variants、gnomad_search_variants、gnomad_get_variant、OMIM_search、OMIM_get_entry、ClinGen_search_gene_validity、ClinGen_search_dosage_sensitivity、ClinGen_search_actionability、COSMIC_search_mutations、COSMIC_get_mutations_by_gene、DisGeNET_search_gene、DisGeNET_get_vda、SpliceAI_predict_splice、SpliceAI_get_max_delta、civic_get_variants_by_gene、civic_search_evidence_items、civic_search_assertions。オプトインの Folklore MCP が接続されている場合(folklore_*、FOLKLORE_MCP_URL が必要)、出典が文献に紐付いた、公開 GRCh38 生殖細胞系列バリアントのエビデンスが追加されます。患者・表現型・家族のデータは受け付けません。また、上記のすべてと同様に、出力は資格を持つ専門家による確認が必要であり、それだけで診断を下すものではありません。

gnomAD の 2 段階ワークフロー:gnomad_search_variants が受け付けるのは rsID またはバリアント ID のみです(遺伝子名は受け付けません)。まず rsID で検索し、返された variant_id を gnomad_get_variant に渡して、集団ごとのアレル頻度を取得します。

CIViC:civic_search_genes(query="<gene_symbol>") を使って、CIViC の遺伝子 ID を動的に検索します(ハードコードされたルックアップテーブルに依存しないでください)。次に civic_get_variants_by_gene(gene_id=<id>) と civic_search_evidence_items を使って、アクショナビリティの詳細を確認します。civic_search_genes で結果が返されない場合、その遺伝子は CIViC でキュレーションされていない可能性があります。この点を記録してください。

OncoKB に関する注意:デモモードでサポートされるのは BRAF、TP53、ROS1 のみです。他の遺伝子を使用するには、環境変数 ONCOKB_API_TOKEN を設定してください。

次の場合は SpliceAI を使用してください:スプライス部位近傍のイントロンバリアント、同義バリアント、スプライスジャンクション近傍のエクソンバリアント。

実装の詳細については、CODE_PATTERNS.md を参照してください。

フェーズ 2.5:調節領域のコンテキスト(非コード領域のみ)

疾患関連遺伝子の近傍にあるイントロン(スプライシング以外)、プロモーター、UTR、または遺伝子間領域のバリアントに適用します。

アノテーション — ここにある調節エレメントは何か: ChIPAtlas_enrichment_analysis、ChIPAtlas_get_peak_data、ENCODE_search_experiments、ENCODE_get_experiment。これらを使うと、バリアントが既知の TF 結合ピーク、エンハンサー、またはオープンクロマチン領域に位置するかどうかがわかります。

予測 — バリアントが調節に及ぼす影響: アノテーションでわかるのはエレメントの存在であり、この特定のアレルがそれを破壊するかどうかではありません。配列ベースのディープラーニングモデルは、参照 DNA ウィンドウと代替 DNA ウィンドウを読み取り、調節シグナルの変化を予測することで、その点に直接答えます。これにより、「バリアントはエンハンサー内にある」という情報を、「該当組織でアクセシビリティ/発現を低下させると予測される」という情報に変換できます。これは、SIFT/PolyPhen/AlphaMissense が適用されない非コードバリアントについて、ACMG PS3/PP3 が実際に必要とする機序的エビデンスです。

ツール予測内容コンテキストアクセス
AlphaGenome_atlas_lookup_variant既知の SNV に対する事前計算済み AVI_SCORE(AlphaGenome + AlphaMissense の統合影響スコア)とトラックごとのスコア — ライブモデルの実行なしゲノム全体の事前計算済みデータホステッド API — ALPHA_GENOME_API_KEY が必要(同じキーで、クエリレートが高くなります)
AlphaGenome_score_variantRNA-seq/ATAC/CAGE/スプライストラック全体の Δ(最先端の精度、単一塩基)最大 1 Mbホステッド API — ALPHA_GENOME_API_KEY が必要
run_enformer_variant_effect5,313 個のヒトトラック(発現、クロマチン、TF 結合)全体の Δ196 kbリモート MCP サーバー
run_borzoi_variant_effectRNA-seq カバレッジの Δ(発現/polyA/スプライシングを重視)524 kbリモート MCP サーバー
run_chrombpnet_variant_effectクロマチンアクセシビリティ(ATAC/DNase)の Δ、塩基解像度約 2 kbリモート MCP サーバー
Evo2_score_variantゲノム基盤モデルによる対数尤度の差分。コード領域と非コード領域に対応最大 1 Mbホステッド NIM — NVIDIA_API_KEY が必要
スコアの読み方: これらのほとんどが返すのは、Δ(alt − ref)の効果量であり、較正済みの病原性確率ではありません。組織に関連するトラックで予測された大きな変化は、非コード変異の機序的な裏付け(PS3_supporting / PP3)となります。全トラックでほぼゼロであれば、BP4を支持します。既知の調節変異を基準に順位付けまたは較正し、絶対的なカットオフを適用しないでください。AlphaGenome_atlas_lookup_variantのAVI_SCOREは例外で、すでに統合された影響スコア(AlphaGenomeの調節シグナルとAlphaMissenseのコード領域モデルを融合したもの)なので、より直接的に解釈できます。ただし、単独の分類器として扱わず、他の根拠と照合してください。

どれを選ぶか: 既知の一塩基変異の場合は、まずAlphaGenome_atlas_lookup_variantを確認してください。これは事前計算済みのデータベース検索であり、すべての約9B個のヒトSNVを対象としているため、ライブ呼び出しよりはるかに低コストです。挿入・欠失変異の場合、またはトラックごとの詳細な内訳やカスタム配列が必要な場合は、AlphaGenome_score_variantを使用してください(最も広範なライブ出力、最長のコンテキスト、最先端の精度)。run_enformer_variant_effect / run_borzoi_variant_effectは、名前付きのセルフホスト可能な同等ツールです(一般的な調節にはEnformer、発現やスプライシングが問題となる場合はBorzoi)。仮説が特にクロマチンアクセシビリティに関するものであればrun_chrombpnet_variant_effectを使用してください。コード領域変異にも対応する配列のみのチェックにはEvo2_score_variantを使用します。キー/サーバーが設定されていない場合は、上記のChIPAtlas/ENCODEアノテーションを代わりに使用し、推測するのではなく、予測上の限界を明記してください。

入力: AlphaGenome_atlas_lookup_variantとAlphaGenome_score_variantはいずれもchromosome + position + reference_bases/alternate_basesを受け取ります(Atlasはさらにscorersも受け取り、デフォルトは["AVI_SCORE"]です。score_variantはoutput_type/sequence_lengthを受け取ります)。Evo2_score_variantは、sequence + position + alternateでDNAウィンドウ(点置換)を受け取るか、ref_sequence/alt_sequenceを受け取ります。また、任意でmodelも指定できます(デフォルトはevo2-40b、より高速なものはevo2-7bです)。Enformer/Borzoi/ChromBPNetのリモートツールは変異座位を受け取り、出力トラック全体で変化をスコアリングします。

Phase 2.9: 早期確認

ACMG分類を本格的に行う前に、ClinVarでその変異がすでに専門家パネルによって分類されているか確認してください。rsIDまたはHGVS表記を使ってMyVariant_query_variantsを実行します。応答のclinvarフィールドには、臨床的意義、レビュー状況、RCVレコードが含まれます。専門家パネルがすでにその変異を病原性または良性と分類している場合は、その点を目立つ形で記載し、新たな分類を行うのではなく、確認と文脈付けに重点を置いてください。

Phase 3: 計算予測

主な方法: fields=dbnsfp,clinvar,cadd,gnomad_genomeを指定してMyVariant_query_variantsを実行すると、15種類以上の予測スコア(SIFT、PolyPhen、CADD、REVEL、AlphaMissense、MetaRNN、FATHMM、GERP、PhyloPなど)を1回の呼び出しで取得できます。通常はこれで十分です。

REVEL/AlphaMissenseの代替手段:MyVariant_query_variantsがdbnsfpブロックを返さない場合は、専用ツールを使用してください。

  1. MyVariant_get_pathogenicity_scores(推奨する代替手段)— 事前設定済みのdbnsfpフィールドを使い、REVEL、AlphaMissense、SIFT、PolyPhen2、MetaRNN、GERP、PhyloPなどを1回の呼び出しで返します。入力:variant_id(rsIDまたはゲノムHGVS)。
  2. CADD_get_variant_score(PHRED 0-99)— ほとんどの変異に対応
  3. AlphaMissense_get_variant_score(0-1、UniProt IDが必要)— ミスセンス変異のみ
  4. EVE_get_variant_score(0-1)— ミスセンス変異のみ
  5. EnsemblVEP_annotate_hgvs(共在変異を含むVEP)— SIFT/PolyPhenを含む
  6. それでもREVELを利用できない場合は、その制約を記載し、CADD + SIFT + PolyPhenのコンセンサスに基づいてください。REVELがないことは分類の妨げにはなりません。

コンセンサス:CADD(すべての変異)+ AlphaMissense + EVE(ミスセンス変異)を実行します。有害とする結果が2つ以上一致すれば、強いPP3の根拠となります。良性とする結果が2つ以上一致すれば、強いBP4の根拠となります。

閾値についてはACMG_CLASSIFICATION.mdを参照してください。

フェーズ 4:構造解析(VUS/新規ミスセンス変異)

ツール:PDBe_get_uniprot_mappings、NvidiaNIM_alphafold2(NVIDIA_API_KEY 環境変数が必要です。無料キーは build.nvidia.com で取得できます)、alphafold_get_prediction(パラメーター:qualifier、例:UniProt アクセッション)、InterPro_get_protein_domains、UniProt_get_function_by_accession

ワークフロー:構造を取得 -> 残基をマッピング -> ドメイン/機能部位を評価 -> 不安定化を予測します。

AlphaFold のサイズ制限:非常に大きなタンパク質(2,700 aa 超。例:3,418 aa の BRCA2)では、標準 API を介した AlphaFold 予測を利用できない場合があります。その場合は、公表済みの構造研究、または実験構造を取得できる PDBe_get_uniprot_mappings に切り替えてください。

フェーズ 4.2:影響のメカニズム(VUS ミスセンス変異、ESMC-6B SAE)

AlphaMissense/REVEL/CADD は病原性スコアを示しますが、メカニズムは示しません。「この変異はどのようにタンパク質の機能を損なうのか」という問いに答える必要がある場合(例:VUS の記述、臨床レポート、または一致しない予測結果のコンセンサスを多角的に検証する場合)、ESMC-6B Sparse Autoencoder を使用して、変異によってどの解釈可能なタンパク質言語モデルの特徴が損なわれるかを特定します。

1 回の呼び出しによるメカニズムの要約(推奨される開始方法):

mech = tu.tools.ESM_explain_variant_mechanism(
    sequence=wt_aa_sequence,   # full reference protein sequence
    position=600,              # 1-indexed
    ref_aa="V",
    alt_aa="E",
    top_k_features=5,          # describe top 5 lost + top 5 gained
)
# mech["data"]["mechanism_summary"] e.g.:
#   "Disrupted feature categories (lost): catalytic=2, ligand-binding=1;
#    Induced feature categories (gained): structural-stability=1"

mechanism_summary、特徴ごとの喪失/獲得テーブル、およびカテゴリー別の集計を返します。レポートで病原性の判定を裏付けたり、条件を付けたりするには、カテゴリー別の集計を使用してください。

  • catalytic/ligand-binding/ptm の喪失 → PP3 を裏付けるメカニズム上の根拠
  • 安定した WT 領域での secondary-structure/structural-stability の獲得 → 「不安定化」の主張を裏付けるメカニズム上の根拠
  • 上位 K 件に解釈可能な変化がない → それだけで AlphaMissense の結果が弱まるわけではありませんが、注意が必要であることを明記してください

飽和変異スキャンが必要な場合(例:「残基 600 の 19 種類の置換すべてをスコアリングして、最も影響の大きいものを特定する」):ESM_score_variant_sae_batch を使用します。参照配列に対する Forge 呼び出し 1 回と、各変異に対する呼び出し 1 回で済み、変異ごとに 2 回呼び出す必要はありません。

重要なのが領域である場合(例:「キナーゼ活性化ループ(残基 754~771)の SAE シグネチャは何か」):ESM_get_region_sae_features を使用し、その後、上位のヒットに対して ESM_describe_sae_feature を使用します。

必要なもの:ESM_API_KEY 環境変数(無料の非商用トークンは https://forge.evolutionaryscale.ai で取得できます)と、pip install 'esm @ git+https://github.com/evolutionaryscale/esm@ee891c52'(SAE のサポートはまだマージされていない機能ブランチにあります。PyPI の esm 3.2.x には SAEConfig は含まれていません)。ライセンス:EvolutionaryScale Cambrian Inference License — 非商用利用のみ。

フェーズ 4.5:発現コンテキスト

ツール:CELLxGENE_get_expression_data、CELLxGENE_get_cell_metadata、GTEx_get_median_gene_expression

疾患に関連する組織での遺伝子発現を確認します。発現が高度に限定されている場合は PP4 を裏付け、影響を受けた組織で発現していない場合は分類に異議を唱える根拠となります。

フェーズ 5:文献エビデンス

ツール:PubMed_search_articles、EuropePMC_search_articles、BioRxiv_list_recent_preprints、MedRxiv_get_preprint、openalex_search_works、SemanticScholar_search_papers

プレプリントには、査読を受けていないことを必ず明記してください。

フェーズ 6:ACMG 分類

該当するすべてのエビデンスコードを適用します(病原性:PVS1、PS1、PS3、PM1、PM2、PM5、PP3、PP5。良性:BA1、BS1、BS3、BP4、BP7)。アルゴリズムの全容については、ACMG_CLASSIFICATION.md を参照してください。

遺伝子固有の集団頻度閾値

BS1(疾患に対してアレル頻度が高すぎる)は、普遍的なカットオフではなく、遺伝子ごとの調整が必要です。

  • 浸透率の高い遺伝子(BRCA1、TP53):BS1 閾値は約 0.0001
  • 浸透率が中程度の遺伝子(PALB2、ATM、CHEK2):BS1 閾値は約 0.001
  • 浸透率が低い遺伝子/一般的な疾患の遺伝子:BS1 閾値はより高く、疾患有病率によって異なります
  • 計算式:BS1 閾値 =(疾患有病率 × 最大アレル寄与 × 最大遺伝的寄与)/ 浸透率
  • 判断に迷う場合は、同じ遺伝子で既知の病原性変異のうち最も高い AF と、その変異の AF を比較してください。これを上回る場合、BS1 が適用される可能性が高いです。
相反するエビデンスへの対処:機能的エビデンスと疫学的エビデンス

これは、バリアント解釈で最も難しいシナリオの一つです。生化学的アッセイで機能障害が示される一方、集団データ/疫学データでは疾患との関連が示されない場合は、次のように対応します。

  1. 臨床分類では、一般に疫学データをin vitroアッセイより重視します。疾患との関連がないまま、4万件を超える症例で約0.1%の頻度で見つかるバリアントは、試験管内でタンパク質機能を低下させる場合でも、臨床的に重要である可能性は低いです。
  2. PS3/BS3は慎重に適用します。ClinGenのSVIは、PS3(病原性を示す機能的エビデンス)の適用には、既知の病原性コントロールと既知の良性コントロールの両方を用いてアッセイが検証されていることが必要だと推奨しています。そのような検証を伴わない単一の生化学的研究は、せいぜいPS3_Supportingにとどまります。
  3. 低機能バリアント:一部のバリアントは、実際にタンパク質機能を低下させます(高感度アッセイで検出可能)が、疾患を引き起こすほどではありません。これは生物学的に実際に起こることであり、病原性を意味するものではありません。
  4. 報告書では相反するエビデンスを明示的に記載します。「生化学的アッセイXでは[結果]が示されましたが、N例を対象とした症例対照研究Yでは、疾患との有意な関連は認められませんでした。ACMGガイドラインに基づき、臨床分類では疫学的エビデンスをより重く評価しています」と記載します。
ベイズ型ACMGポイントシステム(Tavtigian et al. 2018)

現在の臨床検査機関では、従来のルール数え上げ方式の代わりにポイント方式が使われています。

エビデンスレベル病原性ポイント良性ポイント
非常に強い(PVS1)+8--
強い(PS1-PS4)+4ずつ-4ずつ(BS1-BS4)
中程度(PM1-PM6)+2ずつ--
補助的(PP1-PP5)+1ずつ-1ずつ(BP1-BP7)
単独(BA1)---8

合計ポイントによる分類:

  • 病原性:10ポイント以上
  • 病原性の可能性が高い:6~9ポイント
  • 意義不明のバリアント(VUS):-5~5ポイント
  • 良性の可能性が高い:-6~-9ポイント
  • 良性:-10ポイント以下

このシステムでは、相反するエビデンスを自然に扱えます。たとえば、PS3(+4)、BS1(-4)、BP4(-1)のあるバリアントは、合計が-1となり、VUSに分類されます。従来のルールベース方式では、このシナリオへの対応が困難です。

計算手順:ACMGベイズ分類

# Automated ACMG point calculation
# Input: dict of evidence codes with their applied strength

def classify_acmg(evidence: dict) -> dict:
    """
    Classify a variant using the Bayesian ACMG point system.

    Args:
        evidence: dict mapping ACMG codes to strength levels.
            Pathogenic codes: 'very_strong', 'strong', 'moderate', 'supporting'
            Benign codes: 'stand_alone', 'strong', 'supporting'

    Example:
        evidence = {
            'BS1': 'strong',       # AF too high
            'BS3': 'supporting',   # Epidemiological evidence against pathogenicity
            'BP6': 'supporting',   # ClinVar benign consensus
            'PP3': 'supporting',   # Computational predictors say damaging
        }
    """
    pathogenic_points = {
        'very_strong': 8, 'strong': 4, 'moderate': 2, 'supporting': 1
    }
    benign_points = {
        'stand_alone': -8, 'strong': -4, 'supporting': -1
    }

    total = 0
    details = []
    for code, strength in evidence.items():
        if code.startswith(('PVS', 'PS', 'PM', 'PP')):
            pts = pathogenic_points.get(strength, 0)
        elif code.startswith(('BA', 'BS', 'BP')):
            pts = benign_points.get(strength, 0)
        else:
            pts = 0
        total += pts
        details.append(f"{code} ({strength}): {pts:+d}")

    if total >= 10:
        classification = "Pathogenic"
    elif 6 <= total <= 9:
        classification = "Likely Pathogenic"
    elif -5 <= total <= 5:
        classification = "VUS"
    elif -9 <= total <= -6:
        classification = "Likely Benign"
    else:
        classification = "Benign"

    return {
        'classification': classification,
        'total_points': total,
        'evidence_breakdown': details
    }

# Example: PALB2 c.2816T>G (from test case)
result = classify_acmg({
    'BS1': 'strong',       # gnomAD AF 0.00105 exceeds threshold
    'BS3': 'supporting',   # Case-control study shows no association
    'BP6': 'supporting',   # ClinVar 13 submitters say benign/likely benign
})
# Output: Likely Benign, total_points=-6, evidence: BS1(strong):-4, BS3(supporting):-1, BP6(supporting):-1

フェーズ1~5でエビデンスをすべて収集した後、この手順を使って最終分類を算出します。

遺伝子固有のVCEP基準

ClinGen Variant Curation Expert Panels(VCEP)は、遺伝子固有のACMG修正基準を公開しています。分類の前に、VCEPが存在するか確認してください。

  • ClinGen_search_gene_validity(gene="<gene_symbol>") — 妥当性が「Definitive」または「Strong」の場合、VCEPが存在する可能性が高いです
  • 主なVCEP:BRCA1/2(Enigma)、TP53、PTEN、CDH1、PALB2、RASopathies、Lynch syndrome genes
  • VCEP基準は一般的なACMG基準に優先します(例:PALB2 VCEPには、PM1に関する特定のホットスポット領域があります)
予測ツールの重み付け

すべての計算予測ツールが同等というわけではありません。ミスセンスバリアントの場合:

  • REVEL(AUC約0.95) — 単独のメタ予測ツールとして最良で、最も高く重み付けします
  • AlphaMissense(AUC約0.94) — 高性能で、構造を考慮します
  • CADD(AUC約0.85) — あらゆる種類のバリアントに有用ですが、ミスセンスバリアントに対する特異性はやや低いです
  • SIFT/PolyPhen(AUC約0.80) — 従来型のツールです。コンセンサスの判断には有用ですが、個別の結果だけで決定的な判断はできません

予測ツールの結果が一致しない場合:REVELが許容されると判定し、SIFT/PolyPhenが機能障害を示すと判定した場合は、REVELを重視します。REVELを利用できない場合、PP3/BP4の適用には、3つ以上の予測結果が一致していることを求めます。

ツールが失敗した場合の代替手段

主要ツールが失敗した場合は、次の代替手段を使ってください。

  • ClinVar_search_variantsの検索結果が0件の場合:rsIDまたはHGVSを指定してMyVariant_query_variantsを使います。MyVariantのclinvarフィールドは、バリアント検索においてNCBI Entrez検索より信頼性が高いです
  • gnomad_search_variantsが失敗した場合:共局在バリアントを介したgnomAD頻度を含むEnsemblVEP_annotate_hgvsを使います
  • CADD_get_variant_scoreが失敗した場合:CADD PHREDスコアは、MyVariantのdbnsfpブロックからも取得できます
  • AlphaFoldの予測を利用できない場合(2700aaを超える大型タンパク質):実験で得られた構造にはPDBe_get_uniprot_mappingsを使います

特別なシナリオ

新規ミスセンスVUS:PM5(同じ残基における別の病原性バリアント)を確認し、AlphaFold2の構造を取得して、適切にPM1/PP3を適用します。

トランケーティングバリアント:機能喪失のメカニズム、NMDの回避、代替アイソフォーム、ClinGenの機能喪失キュレーションを確認します。適切な強度でPVS1を適用します。

スプライスバリアント:SpliceAIを実行し、標準スプライス部位からの距離と、インフレームスキッピングの可能性を評価します。スコアに基づいてPP3/BP7を適用します。


出力構成

# Variant Interpretation Report: {GENE} {VARIANT}
## Executive Summary
## 1. Variant Identity
## 2. Population Data
## 3. Clinical Database Evidence
## 4. Computational Predictions
## 5. Structural Analysis
## 6. Literature Evidence
## 7. ACMG Classification
## 8. Clinical Recommendations
## 9. Limitations & Uncertainties
## Data Sources

ファイル名:{GENE}_{VARIANT}_interpretation_report.md


臨床上の推奨事項

病原性/病原性の可能性が高い:強化スクリーニング、リスク低減の選択肢、薬剤投与量の調整、生殖に関するカウンセリング、家族へのカスケードスクリーニング。

VUS:医療上の判断には使用しないでください。1~2年後に再解釈してください。機能解析と分離データの取得を進めてください。

良性/良性の可能性が高い:疾患の原因になるとは予想されません。カスケード検査は不要です。


定量的な最低要件

セクション要件
集団頻度gnomADの全体頻度と、少なくとも3つの祖先集団
予測少なくとも3つの計算予測ツール
文献検索少なくとも2つの検索戦略
ACMGコード該当するコードをすべて記載

スキル間の参照

バリアント位置のアミノ酸特性を調べるには、次を実行します:python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type amino_acid --code X


参考資料

  • ACMG_CLASSIFICATION.md - エビデンスコード、分類アルゴリズム、予測のしきい値、構造/制御領域への影響を示す表
  • CODE_PATTERNS.md - ワークフローの各フェーズで再利用できるコードパターン
  • CHECKLIST.md - 納品前の確認
  • EXAMPLES.md - 解釈例
  • TOOLS_REFERENCE.md - ツールのパラメーターとフォールバック

コメント