mcpField
V
variant-calling

variant-calling

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

variant-calling について

GATK4 のバリアントコールを支援する判断ロジックと注意事項をまとめたスキルです。生殖細胞系列・体細胞解析の設定やトラブル対応向けに、フィルタ選択、WESとWGSの差、よくある誤りを扱います。

主な機能

  1. 01コホート規模に応じたVQSRとハードフィルターの選択
  2. 02WESとWGSのパラメーター差の整理
  3. 03生殖細胞系列コール手順の要点確認
  4. 04Mutect2の体細胞コール入力の確認
  5. 05リファレンスとサンプルタグの不整合検出

活用シーン

  1. 01規模の異なるコホートのフィルター選択
  2. 02WESまたはWGS向けGATK4設定
  3. 03Mutect2の腫瘍コール設定のトラブル対応

インストール

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

$npx skills add https://github.com/awslabs/hcls-agent-skills --skill variant-calling

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

同梱ファイルscripts/filter_by_acmg.pyscripts/run_germline_pipeline.sh

詳細

バリアントコーリング(GATK4)— パイプラインスキル(簡易スキャフォールド)

概要

VQSR とハードフィルターの選択、WES と WGS のパラメーターの違い、LLM が頻繁に誤る GATK4 固有の注意点(フィルターのしきい値、GVCF の要件、リファレンスの整合性)に関する判断ロジックを追加します。

使用方法

  • コホートサイズに応じて VQSR とハードフィルターを選択するときに有効化します
  • WES と WGS のパイプラインパラメーターを設定するときに有効化します
  • Mutect2 で腫瘍/正常または腫瘍のみの体細胞変異コールを実行するときに有効化します

中核となる概念

判断ロジック

Germline calling strategy:
├── Single sample, no future joint calling → HaplotypeCaller direct VCF
└── Cohort (≥2 samples) → HaplotypeCaller -ERC GVCF → GenomicsDBImport → GenotypeGVCFs

Filtering strategy:
├── ≥30 WGS samples OR ≥30 WES exomes → VQSR
└── <30 samples OR single sample → Hard filters

Somatic calling:
├── Tumor + matched normal → Mutect2 with both BAMs
└── Tumor-only → Mutect2 + PoN (MANDATORY) + gnomAD germline resource

WES と WGS のパラメーターの違い:

ステップWGSWES
BQSR / HaplotypeCaller-L なし-L capture.bed -ip 100
BQSR の既知サイトゲノム全体ゲノム全体(サブセット化しないこと)
フィルタリングVQSR(30 サンプル以上)30 エクソーム以上でない限りハードフィルター
ジョイントジェノタイピングの区間染色体ごと-L capture.bed

重要なパラメーター

ハードフィルターのしきい値(GATK ベストプラクティス):

フィルターSNP のしきい値Indel のしきい値
QD< 2.0< 2.0
FS> 60.0> 200.0
MQ< 40.0—
MQRankSum< -12.5—
ReadPosRankSum< -8.0< -20.0
SOR> 3.0> 10.0

VQSR の真値感度レベル:

  • SNP:99.7
  • Indel:99.0
  • Indel の場合は --max-gaussians 4(SNP より学習用バリアントが少ないため)

VQSR のアノテーション: -an QD -an FS -an MQ -an MQRankSum -an ReadPosRankSum -an SOR

Mutect2 の必須事項:

  • --germline-resource af-only-gnomad.hg38.vcf.gz
  • --panel-of-normals pon.vcf.gz(腫瘍のみの場合に必須)
  • --f1r2-tar-gz → LearnReadOrientationModel(FFPE/OxoG アーティファクト)
  • FilterMutectCalls の前に GetPileupSummaries と CalculateContamination を実行します

よくある間違い

  • 誤り: 適切な @RG ヘッダーを付けずにアライメントする(ID、SM、PL、LB が欠落) 正しい方法: アライメント時には必ず -R '@RG\tID:x\tSM:x\tPL:ILLUMINA\tLB:x' を指定します 理由: GATK は実行を拒否するか、SM タグが誤っている場合にサンプルを通知なく統合します

  • 誤り: コホート解析で -ERC GVCF を指定せずに HaplotypeCaller を実行する 正しい方法: ジョイントジェノタイピングを行う場合は、必ず GVCF を生成します 理由: 通常の VCF はジョイントジェノタイピングできないため、BAM から再コールする必要があります

  • 誤り: SNP のハードフィルターしきい値を Indel に流用する(例:Indel に FS > 60 を適用する) 正しい方法: Indel には FS > 200、SNP には FS > 60 を使用します 理由: Indel はより高い鎖バイアスを許容するため、SNP のしきい値では実際の Indel が過剰に除外されます

  • 誤り: 30 サンプル未満に VQSR を適用する 正しい方法: 小規模なコホートではハードフィルターを使用します 理由: VQSR でガウス混合モデルを学習するには、多数のバリアントが必要です

  • 誤り: BQSR 用の --known-sites VCF を WES のキャプチャ BED に合わせてサブセット化する 正しい方法: ゲノム全体の既知サイトを使用し、解析区間のみを -L で制限します 理由: BQSR では、塩基品質エラーをモデル化するためにゲノム全体の既知サイトが必要です

  • 誤り: GATK のステップ間で samtools index を省略する 正しい方法: BAM を生成する各ステップの後にインデックスを作成します 理由: GATK には BAM インデックスが必要であり、ない場合は直ちに失敗します

  • 誤り: 異なるゲノムビルドのリファレンスファイルを混在させる 正しい方法: ref.dict、ref.fa.fai、BWA インデックス、すべての VCF が同じビルドに一致することを確認します 理由: 辞書が一致しないと、通知のない失敗や不可解なエラーが発生します

  • 誤り: パネル・オブ・ノーマルズを使わずに Mutect2 で腫瘍のみの解析を実行する 正しい方法: 腫瘍のみのコーリングでは、必ず --panel-of-normals を指定します 理由: PoN がないと、繰り返し発生するシーケンスアーティファクトが体細胞変異としてコールされます

回答形式

  • 必要なコマンドまたはコードを最初に提示し、その後に説明します
  • 次の構成にします:入力の確認 → 動作するコード → 重要なパラメーターの説明 → 注意点
  • タスクごとに動作する完全な例を 1 つ提示し、すべての代替案は示しません
  • コードコメントは最小限かつ実用的にし(存在理由ではなく、内容を説明します)
  • 目安:コード 50~100 行と、簡潔な説明

コメント