模組 6 · Phasing and haplotagging

Phasing 與 haplotagging

介紹實驗室的核心方法,包含手動 phasing 練習,以及 somatic haplotype HP1-1、HP2-1 與 HP3 的意義。

約 70 分鐘建議先修:Germline variant calling

本模組學習目標

  • 將一組 read 分配至 HP1 與 HP2,並說明所採用的判準
  • 說明 phase set 是什麼,以及為什麼 haplotype 方向只在 phase set 內部有意義
  • 說出 switch error 是什麼、通常發生在哪裡
  • 畫出 germline haplotype 與 somatic haplotype 的層級關係,包含 HP3 的處理

為什麼重要

M0 的那個問題到這裡才真正有答案。報告說 T790M 有、C797S 也有, 但要回答它們在不在同一份 DNA 上,得先把 read 依來源分成兩群 —— 這件事就是 phasing

它產出兩個東西,之後每個模組都會用到:

  • 變異的相位寫進 VCF —— 哪些變異在同一條 haplotype 上。
  • 每一條 read 的 haplotype 寫進 BAM 的 HP tag —— 這條 read 來自哪一條。 這一步叫 haplotagging

第二個特別關鍵:M7 判斷 somatic 變異真假時用的「支持 read 是否集中在同一條 haplotype」, 以及 M9 依 haplotype 分開統計甲基化,都是在 HP tag 上算的。 沒有這一步,那些判準根本無從計算。

本模組先用一段簡化 pileup 讓你自己分一次群,再說明工具怎麼做同一件事、 以及它在哪些情況下會分錯。

概念與互動

練習一次 phasing 判讀

下面是一段 pileup,包含三個 位點;每條 read 在其覆蓋到的位點上顯示一個鹼基。 請依跨位點的 allele pattern 將 read 分群,使同群 read 的組合盡可能一致,並保留無法可靠判定的 read。

互動練習
點選 read 可在「未指派 → HP1 → HP2 → 未指派」之間切換;完成後選擇「檢查」。提示:可先以覆蓋 informative 位點最多的 read 作為暫定基準,再比較其他 read。

做完之後,注意三件事:

  • 有一條 read 在此練習中無法可靠指派 —— 它沒有覆蓋任何 informative het 位點,因此保持未標記即可。 若該 read 另帶有 somatic signal,才可能在後續流程中進入 HP3 類別;一般 untagged read 不等於 HP3。
  • 示例中有一個錯誤鹼基(檢查後會被圈出來)。該 read 在其他位點仍可能呈現一致 pattern, 因此可根據多個位點的整體證據進行分群,但此方法不保證修正所有錯誤。
  • HP1 與 HP2 整體互換仍可表示相同的相對 phasing。原因見下方說明。

cis 與 trans

phasing 的產物就是回答「兩個變異的相對位置」:

  • :在同一條 haplotype 上;藥物或功能影響需依特定 EGFR 變異與研究證據判定
  • :分屬兩條 haplotype

phase set 與 switch error

phasing 可能因缺乏重疊 read 或 informative 位點而中止,形成新的 。 VCF 用 PS 欄位標示每個 block。

是常見的 phasing 錯誤類型:自某一位置起,演算法將兩條 haplotype 的標籤對調。 它可能發生在 het 位點稀疏、read 重疊不足或證據歧義較高的區域。

phase block 的中止與 switch error 示意 上排:可區分兩條 haplotype 的位點與 read 重疊充分時,可能形成較長的 phase block。 中排:若中間缺乏可用位點或重疊 read,兩側可能形成獨立 block;兩個 block 的 HP1/HP2 方向彼此獨立。 下排:證據不足或存在歧義時可能發生 switch error,表現為某一位置後的相位標籤反轉;錯誤範圍取決於工具與資料品質。 染色體位置 → ① 位點與 read 重疊充分 → 較長的 block 一個 phase block(PS 相同) ② 中間缺乏可用位點 → 可能形成兩個 block 此區段缺乏 可區分位點 block 1 block 2 無法可靠連結 兩個 block 的 HP1/HP2 方向彼此獨立 —— 左邊的 HP1 不一定對應右邊的 HP1。 ③ 證據不足或有歧義 → 可能發生 switch error 此處起相位標籤可能反轉 switch 後的標籤可能持續錯置
三種狀況。① 位點密度與 read 重疊足夠時,可形成較長的 phase block。② 中間缺乏可用位點或重疊 read,兩側可能形成獨立 block;兩個 block 的 HP1/HP2 方向彼此獨立,左側 HP1 不一定對應右側 HP1。③ 證據不足或存在歧義時可能發生 switch error,該位置後的相位標籤可能反轉。

LOH 對 phasing 的限制

可能減少可用的 heterozygous 錨點,使 phasing 變弱或分段;LOH 可為部分、copy-neutral 或 subclonal, 未必使所有位點都變成 homozygous。缺乏 informative 位點時,跨區域連結會變得不可靠。

不同工具對 LOH 的處理能力取決於 coverage、purity、LOH 型態與演算法。若 LongPhase-TO 能在特定條件下跨越 LOH, 應以相應 benchmark 與版本文件界定其適用範圍。

haplotagging:將 haplotype assignment 寫入 read

將 variant 的 haplotype assignment 寫入 VCF; 則將每條 read 的 assignment 寫入 BAM 的 tag。 之後可在 IGV 中依 haplotype 分組或著色顯示。

somatic haplotype 的延伸層級

到目前為止介紹的是標準 germline phasing。接著再說明 somatic haplotype 的延伸層級:

germline haplotype 與 somatic haplotype 的層級示意 上層是由 germline SNP 區分的 HP1 與 HP2。 中層示意帶有 somatic 變異且可判定來源的 read,可標為 HP1-1 或 HP2-1。 下層示意尚未能可靠判定 germline 來源、但帶有 somatic signal 的 read 可標為 HP3; 若同一 somatic allele 已有可靠的 haplotype assignment,流程可依條件重新分類部分 HP3 read。 第一層 germline haplotype 用 germline SNP(綠點)把 read 分成兩群 HP1 HP2 發生 somatic 突變 發生 somatic 突變 第二層 somatic haplotype 在 germline haplotype 基礎上再細分 圖示命名:來源 + 流水號 HP1-1 源自 HP1 的 somatic haplotype HP2-1 源自 HP2 的 somatic haplotype HP1-1-1 再累積一個 somatic assignment 第三層 無法判定來源的 read read 未涵蓋足夠的 germline informative SNP HP3 有 somatic signal,來源未定 它帶有 somatic signal,但缺乏足夠的 germline 錨點或其他判定證據, 因此尚無法可靠判斷源自 HP1 或 HP2。 依既有 assignment 重新分類 若同一 somatic allele 在其他 read 上已有可靠的 HP1-1 assignment, 可在條件成立時將部分 HP3 read 重新分類為 HP1-1。 圖示 LongPhase-S 流程的最後一步。
在 germline haplotype(HP1/HP2)下,帶有 somatic 變異且可判定來源的 read 可再細分為 HP1-1 與 HP2-1。尚未能可靠判定來源、但帶有 somatic signal 的 read 可先標為 HP3;若同一 somatic allele 已有可靠的 haplotype assignment,流程可依條件重新分類部分 HP3 read。
標籤意思
HP1 / HP2已指派至 germline haplotype 的 read,不表示只涵蓋 germline 變異
HP1-1帶有 somatic 變異,且可判定源自 HP1
HP2-1帶有 somatic 變異,且可判定源自 HP2
HP1-1-1在 HP1-1 之上再累積一個 somatic assignment;不應單獨解讀為已證實的 subclone
HP3帶有 somatic signal,但尚未能可靠判定源自哪一條 germline haplotype

若某個 somatic allele 在其他 read 上已有可靠的 HP1-1 assignment, 流程可在條件成立時將攜帶相同 allele 的部分 HP3 read 重新分類為 HP1-1;此步驟可能增加可用 read, 但也需評估相同 allele、mapping 與相位錯誤造成的誤分類風險。

真實證據

以下示範 germline phasing 與 haplotagging 指令:

# 1. 對 germline VCF 執行 phasing
longphase-s phase \
  -s SNP.vcf \
  -b alignment.bam \
  -r reference.fasta \
  -t 8 \
  -o phased_prefix \
  --ont

# 2. 依 phased VCF 將 read 標記為 HP tag
#    注意 -s 吃的是上一步的產物:phase 的 -o 給的是「前綴」,實際檔名是 <前綴>.vcf
longphase-s haplotag \
  -r reference.fasta \
  -s phased_prefix.vcf \
  -b alignment.bam \
  -t 8 \
  -o tagged_prefix

依目前版本,LongPhase-S 的 --ont--pb 參數要求與 LongPhase-TO 的處理方式不同。 LongPhase-TO 僅支援 ONT,某些不相容參數可能被接受但不產生預期效果;請依版本文件核對, 不要預期流程在所有版本都提示警告。

完成後,可在 IGV 中依 HP tag 分組,觀察 read 是否呈現 haplotype 分層。

判讀練習

在一段區域完成 haplotag 後,若有 30% 的 read 沒有 HP tag,請列出至少三個可能原因, 並說明可如何區分這些原因。

展開答案

可從以下方向逐一排查:

  • read 未覆蓋 informative het 位點 —— 沒有足夠的判斷依據,可能保持未標記。
  • 這段區域可能是 —— 若區段缺乏可用的 het 位點,read 的 haplotype assignment 會變得困難。 若未標記 read 集中於連續區段,應優先檢查 LOH、低複雜度或 coverage。
  • mapping quality 太低被濾掉 —— 以此版本設定為例,haplotag 預設 -q 1, 而 estimate_purity 預設為 -q 20;同一份資料用不同子命令可能得到不同結果。
  • 證據不夠一致 —— 在預設 -p 0.6 等門檻下,read 的 allele 若未明顯偏向某一條 haplotype, 工具可能保持未標記。
  • phase set 破碎 —— 若 phasing 本身就斷成很多小段,能用的錨點自然變少。

可先檢查未標記 read 是否集中在特定區域(優先檢查 LOH、低複雜度或 coverage), 或均勻散布(再檢查 read 長度、mapping quality 與參數設定)。

實作練習

執行 phasing 與 haplotagging

用上一節那兩道指令跑一次自己的資料(phase 產生 phased_prefix.vcfhaplotag 產生 tagged_prefix.bam)。 兩個步驟都完成後,再依下面三項檢查輸出。

以 IGV 檢查 haplotagging 結果

建議將 tagged_prefix.bam 載入 IGV,依序檢查以下項目:

  1. 在 read 上按右鍵 → Group alignments byphase(或 tag HP
  2. 前往一個 het 位點
  3. 在相位品質良好的區域,通常可觀察到 read 分成兩層,且同一層的 read 在該位點上呈現一致 allele pattern

這項可視化有助於理解 haplotype 分層。若分群不清,請檢查輸入 VCF、coverage、mapping quality、 phase set 與工具參數,不能僅憑單一區域判定 phasing 失敗。

量化 phasing 的品質

# phase block 的 contig+PS 鍵數;需搭配 block 長度與 switch error 評估
bcftools query -f '%CHROM\t[%PS]\n' phased_prefix.vcf | grep -v '\t\.$' | sort -u | wc -l

# 計算帶有 HP tag 的 read 比例
total=$(samtools view -c tagged_prefix.bam)
tagged=$(samtools view tagged_prefix.bam | grep -c 'HP:')
echo "標記率: $tagged / $total"

標記率沒有通用門檻可以照抄:它同時受 read 長度、heterozygous 位點密度、coverage、 平台與工具版本影響,同一份資料的不同區段也會不一樣。判讀方式是自己建立基線 —— 先看同一份資料在 het 位點密度正常的區段拿到多少,再拿可疑區段跟它比; 明顯偏低時才依上方「30% 沒有 HP tag」那份清單逐項排查。

學習檢核

本模組術語

HP tag
BAM 裡標示某條 read 屬於哪一條 haplotype 的 tag。LongPhase-S 的 germline haplotag 寫成整數 HP:i:1;somatic haplotag 與 LongPhase-TO 則寫成字串 HP:Z:1-1
LOH(異型合子性喪失)
原本 heterozygous 的區域變成只剩一種 allele。LOH 不等於缺失 —— 也可能是一條 haplotype 遺失後另一條被複製(copy-neutral LOH)。
PS tag(phase set)
標示某群 variants 屬於同一 phase block 的編號。同一 PS 內的相位方向可相互比較;不同 PS 的 HP1/HP2 方向彼此獨立。
cis
兩個 variants 在同一條 haplotype 上。
haplotagging
根據已 phase 好的 variants,把每一條 read 指派到 HP1 或 HP2,並把結果寫回 BAM 的 HP tag。
heterozygous(異型合子)
在一般二倍體位點上,兩份 allele 不同(例如一份 A、一份 G)。此類位點可作為區分 haplotype 的資訊錨點;複雜拷貝數情況需另行解讀。
phase block
一段可建立連續相位關係的區域。read 長度不足、缺少 informative heterozygous 位點或證據不一致時,可能形成不同 phase blocks。
phasing(定相)
為可判定的 variants 建立其位於不同實體染色體拷貝上的相位關係;VCF 常以 0|1 等形式表示。長 read 可提供跨位點的分子層級觀測證據。
switch error
phasing 結果自某一位置起將兩條 haplotype 的方向對調,是常見的 phasing 錯誤類型。
trans
兩個 variants 分別在兩條不同的 haplotype 上。