模組 8 · Tumour mixtures

腫瘤樣本的混合組成

說明 purity、DNA fraction、ploidy、copy number、multiplicity、LOH 與 TINC 如何影響變異判讀,並檢視簡化模型的適用範圍。

約 75 分鐘建議先修:Somatic variant calling

本模組學習目標

  • 寫出 VAF、purity、copy number 與 multiplicity 之間的關係式,並說明每一項的角色
  • 區分 tumor cellular purity 與 tumor DNA fraction,並說明兩者何時產生差異
  • 區分 copy-loss LOH 與 copy-neutral LOH,並說明為什麼只看 coverage 會漏掉後者
  • 解釋為什麼低 purity 讓 somatic calling 變困難

為什麼重要

到目前為止,「腫瘤樣本」在流程裡就是一袋 read。但那袋 read 來自一堆混在一起的細胞: 有癌細胞,也有正常細胞;癌細胞之間彼此也不完全相同;而且同一個位置在不同細胞裡可能有不同的 DNA 份數。

結果就是:同一個觀測到的數字,可以由好幾種不同的細胞組成算出來。 所以這一章的第一件事,是把 purity、copy number、multiplicity、CCF 這幾個名詞各自「在數什麼」講清楚 —— 它們常被混用,而混用會直接讓結論出錯。

概念與互動

先把名詞跟「在數什麼」對起來

這些名詞看起來很多,但它們其實只做一件事:在不同層級上數東西 數的是細胞 數的是一個細胞裡有幾份 DNA 數的是read。搞混它們,通常就是搞混了分母。

下面用一個玩具檢體把三層對齊:10 個細胞,其中 6 個是腫瘤細胞, 腫瘤細胞裡有 3 個帶著我們要看的那個突變,每個細胞在這個位置都有 2 份 DNA。

purity、CCF、copy number、multiplicity 與 VAF 各自在數什麼 用同一個玩具檢體(10 個細胞、每個細胞在這個位置有 2 份 DNA)把五個名詞對齊在三個計數層級上。 細胞層:purity 是腫瘤細胞佔全部細胞的比例,6 除以 10 等於 0.6; CCF 是帶有這個突變的腫瘤細胞佔全部腫瘤細胞的比例,3 除以 6 等於 0.5,兩者的分母不同。 拷貝層:copy number 是一個細胞在這個位置有幾份 DNA,此例為 2; multiplicity 是突變坐落在其中幾份,此例為 1;ploidy 是整個基因體平均的 copy number。 整個檢體在這個位置共 20 份 DNA,腫瘤細胞貢獻 12 份、正常細胞貢獻 8 份,其中 3 份帶突變。 read 層:VAF 是帶變異的 read 佔全部 read 的比例,3 除以 20 等於 0.15, 也是這五個數字中唯一可以由定序資料直接數出來的。 由上往下計算答案唯一,但由 VAF 往上反推並不唯一。 另外提醒:一條 read 是一個 DNA 分子,不是一個細胞,同一個細胞會給出很多條 read。 這一章的名詞,其實是在三個不同層級上數東西 玩具檢體:10 個細胞,每個細胞在這個位置有 2 份 DNA ① 細胞層 數的是「細胞」 腫瘤細胞 6 個 正常 4 個 實心小點=帶有這個突變(3 個) purity 腫瘤純度 腫瘤細胞 ÷ 所有細胞 6 ÷ 10 = 0.6 CCF 癌細胞比例 帶突變的腫瘤細胞 ÷ 腫瘤細胞 3 ÷ 6 = 0.5 兩個分數的分母不一樣 ② 拷貝層 數的是「DNA 份數」 一個細胞 2 份,1 份帶突變 腫瘤細胞 12 份 正常 8 份 整個檢體 20 份,3 份帶突變 copy number 拷貝數 這個位置有幾份 → 這裡是 2 multiplicity 佔幾份 突變在其中幾份 → 這裡是 1 ploidy 倍性 整個基因體平均的拷貝數 ③ read 層 數的是「read」 20 條 read,3 條帶變異 VAF = 3 ÷ 20 = 0.15 VAF 變異等位基因頻率 帶變異的 read ÷ 全部 read 唯一能直接數出來的一層 read 不等於細胞 一條 read 是一個 DNA 分子 同一個細胞會給出很多條 由上往下算,答案唯一;由下往上反推,答案不唯一。 腫瘤佔 0.6、其中一半帶突變、每個細胞 2 份裡有 1 份帶突變 → VAF 一定是 0.15。 但只拿到 VAF = 0.15 時,上面兩層有很多組合都能算出同一個數字。
同一個檢體、同一個位置,三層各自的分子與分母。 注意 purity 的分母是所有細胞,CCF 的分母只有腫瘤細胞 —— 這是最常被互換的一對。 最右邊那層是唯一能從資料直接數出來的:20 條 read 裡有 3 條帶變異,VAF = 0.15。

這張圖裡有兩件事值得停下來看。

第一,方向是不對稱的。給定上面兩層,VAF 只有一個答案 —— 腫瘤佔 0.6、其中一半帶突變、每個細胞 2 份裡帶 1 份,算出來就是 0.6×0.5÷2=0.15。 但拿著 VAF=0.15 往上反推,會有很多組合都成立。整章的難處都在這個不對稱上。

第二,read 不是細胞。一條 read 是一個 DNA 分子,同一個細胞會貢獻很多條 read, 而且哪一條 read 來自哪個細胞在 bulk 資料裡查不到。所以「數 read」永遠只是「數細胞」的間接代理。

copy number、multiplicity 與 ploidy:一個位置有幾份

中間那層最容易被跳過,但它是後面所有推論的地基。三個詞的差別很小、影響很大: copy number 是「這一段在一個細胞裡有幾份」,multiplicity 是「其中幾份帶著這個突變」, 是「把整個基因體的 copy number 平均起來」。

為什麼要分這麼細?因為同一個突變、同樣「每個腫瘤細胞都有」, 只要拷貝狀態不同,VAF 就完全不同:

copy number、multiplicity 與 ploidy 的差別,以及它們如何改變 VAF 四格比較同一個位置在不同拷貝狀態下的樣子,四格都假設檢體全是腫瘤細胞且所有腫瘤細胞都帶有這個突變。 正常細胞:兩份,沒有突變。 腫瘤細胞情況一:兩份、突變佔一份,VAF 為二分之一。 腫瘤細胞情況二:帶突變的那一份被複製,變成三份、突變佔兩份,VAF 升為三分之二。 腫瘤細胞情況三:另一份整條遺失,只剩一份且帶突變,VAF 升到一,這就是 copy-loss LOH。 因此同一個突變在不同拷貝狀態下會給出完全不同的 VAF。 下半部說明 ploidy 與 copy number 的差別: copy number 是某一段的份數,沿基因體會變動;ploidy 是把整個基因體的 copy number 平均起來的值。 同一個突變,落在不同的拷貝狀態上,VAF 就不一樣 下面四格都假設:檢體全是腫瘤細胞,而且每個腫瘤細胞都帶有這個突變。差別只在拷貝狀態。 正常細胞 copy number = 2 multiplicity = 0 VAF = 0 這個位置沒有突變 腫瘤細胞 ① copy number = 2 multiplicity = 1 VAF = 1 ÷ 2 = 0.50 最單純的情況 腫瘤細胞 ② copy number = 3 multiplicity = 2 VAF = 2 ÷ 3 = 0.67 帶突變的那份被複製了 腫瘤細胞 ③ 已遺失 copy number = 1 multiplicity = 1 VAF = 1 ÷ 1 = 1.00 另一條整條掉了 copy number 是「某一段」的份數;ploidy 是「整個基因體」的平均 沿著基因體看,每一段的 copy number 可能都不一樣: 2 1 3 4 2 ← 基因體位置 → 把上面這條曲線沿長度平均起來 ≈ 2.3,這就是這個腫瘤的 ploidy(正常細胞是 2)。
四格都假設檢體全是腫瘤細胞、而且每個細胞都帶有這個突變 —— 唯一的差別是拷貝狀態。VAF 從 0.50 變成 0.67 或 1.00,不是因為突變變多了, 是因為它所在的那份 DNA 被複製了,或另一份被丟掉了(那正是 copy-loss )。 下半部區分 copy number(某一段的份數)與 ploidy(整個基因體的平均)。

把「腫瘤細胞佔多少」「一個細胞有幾份」「突變佔幾份」「多少腫瘤細胞帶著它」四件事寫進同一個式子, 就是下一節的關係式。

VAF 的完整關係式

M1 使用了簡化情境:「purity=0.5、樣本為 diploid,且每個腫瘤細胞帶有一份變異拷貝,因此 VAF 為 0.25」。在一般情況下,關係式為:

VAF=purity×multiplicity×CCFpurity×totalCN+(1purity)×2
模型假設:這條 VAF 關係式何時成立

正常細胞的拷貝數設為 2,tumor totalCN 在此位置可代表腫瘤群體,且 read depth 與 DNA 量近似成正比; 實務上仍需考慮 allele-specific copy number、mapping/定序偏差與估計不確定性。

符號意思是否可直接觀測
purity通常需估計
totalCN該位置的 (整體平均值即 通常需估計
multiplicity通常需推論
CCF通常是分析所要估計的目標
VAF支持 alt 的 read 比例可由 reads 估計
VAF 的組成與參數不可識別性 上半部拆解 VAF 的分子與分母。 分母是這個位置上總共有幾份 DNA 被讀到, 由腫瘤細胞貢獻的份數加上正常細胞貢獻的份數組成。 分子是其中帶有這個變異的份數。 下半部示範:同一個 VAF 0.20 可由多種生物狀態產生, 因此僅依 VAF 通常無法直接反推出帶有此突變的細胞比例。 VAF 定義為「帶變異的份數 ÷ 總讀取份數」 分子 帶有變異的份數 腫瘤細胞裡 × 每個細胞帶了幾份 × 有多少比例的腫瘤細胞帶著它 分母 總共讀到的份數 腫瘤細胞貢獻 正常細胞貢獻 腫瘤那邊的份數取決於 該位置有幾份染色體 VAF 可由 reads 估計;purity、copy number、multiplicity 與 CCF 通常需由多項證據推論: ① 腫瘤細胞佔多少比例 ② 該位置有幾份染色體 ③ 變異佔了幾份 ④ 多少比例的腫瘤細胞帶著它 同一個 VAF = 0.20,可由三種狀態產生 情況 A 腫瘤佔 40%,兩份染色體 所有腫瘤細胞都帶著它 → clonal 狀態(時間需其他證據) 情況 B 腫瘤佔 50%,三份染色體 突變佔一份,所有腫瘤細胞都有 → clonal 狀態(時間需其他證據) 情況 C 腫瘤佔 80%,兩份染色體 但只有一半的腫瘤細胞有 → subclonal CCF(時間需其他證據)
圖上方拆解分子與分母:分母是此位置讀到的 DNA 總量,由腫瘤與正常細胞共同貢獻;分子是其中帶有變異的份數。下方示範同一個 VAF 0.20 可由多種生物狀態產生,僅第三例具有 subclonal CCF。

VAF 是可由 reads 估計的觀測量;purity、totalCN、multiplicity 與 CCF 通常需由多項證據估計或推論。 這些參數之間存在可識別性限制,因此「估計腫瘤細胞比例」本身就是一個獨立的研究題目。

互動練習
先以 CN=2、multiplicity=1、CCF=1 作為基準,確認曲線為 purity 的一半;再將 total CN 調至 3 或 4,比較曲線與右側 tumor DNA fraction 和 cellular purity 的差異。可以順手驗算上圖:purity 0.50、total CN 3 時預期 VAF 顯示 0.200,與 purity 0.40、CN 2 得到的數字相同。

LOH 的常見機制及其可觀測差異

是「原本 heterozygous 的區域只剩下一種 allele」。 但其形成機制不只一種;以下比較兩類常見情形:

互動練習
比較四種狀態,並特別觀察 Copy-neutral LOH:在理想示意中 coverage 近似正常,但 heterozygosity 降低。
coverage(理想示意)heterozygosity僅依 coverage 是否可偵測
正常1
Copy-loss LOH1×(理想上減少一半)0通常可見
Copy-neutral LOH2×(理想上不變)0難以由 coverage 單獨辨識

低 purity 對 somatic variant detection 的影響

回到最上面那一層。purity 低的時候,突變本身沒有變少,但它在整池 DNA 裡被稀釋, 落到 read 上就只剩幾條支持:

tumor purity 越低,同一個突變在 read 上的訊號越淡 五個檢體帶有同一個 clonal、diploid 的 somatic 變異,每個腫瘤細胞在這個位置的兩份 DNA 中有一份帶突變, 差別只在腫瘤細胞佔的比例。 由左到右腫瘤細胞比例為五分之一到五分之五,對應的 VAF 依序為 0.10、0.20、0.30、0.40、0.50。 在十條 read 的示意圖中,帶變異的 read 數依序為一到五條。 換算到 50 倍覆蓋度,期望的支持 read 數依序為 5、10、15、20、25 條。 最左側以紅色底標示:purity 0.2 時只期望看到約五條支持 read, 與隨機定序錯誤偶然湊出的支持數量同一個量級,因此過濾參數必須隨 purity 調整。 purity 越低,同一個突變在 read 上的訊號就越淡 五個檢體帶有同一個 clonal 變異(腫瘤細胞的 2 份裡有 1 份帶突變),只有腫瘤細胞的比例不同。 purity 0.2 腫瘤 1 / 5 個 帶變異 1 / 10 條 VAF 0.10 50× 下約 5 條 purity 0.4 腫瘤 2 / 5 個 帶變異 2 / 10 條 VAF 0.20 50× 下約 10 條 purity 0.6 腫瘤 3 / 5 個 帶變異 3 / 10 條 VAF 0.30 50× 下約 15 條 purity 0.8 腫瘤 4 / 5 個 帶變異 4 / 10 條 VAF 0.40 50× 下約 20 條 purity 1.0 腫瘤 5 / 5 個 帶變異 5 / 10 條 VAF 0.50 50× 下約 25 條 低 purity 的難處不是訊號消失,是訊號縮到跟定序錯誤同一個量級 purity 0.2 時,50× 覆蓋度上只期望看到 5 條支持 read(上圖最左欄)。 隨機錯誤在同一個位置湊出 5 條的機會並不低 —— 這就是過濾參數必須跟著 purity 調整的原因。
同一個 clonal 變異、同樣每個腫瘤細胞 2 份裡帶 1 份, 只有腫瘤細胞比例不同。VAF 恰好是 purity 的一半,換到 50× 覆蓋度上就是 5、10、15、20、25 條支持 read。 最左邊被標出來的原因見下方說明。

以下把最左邊那一格算清楚:50× coverage、purity 0.2,以及一個 clonal 的 diploid somatic 變異:

預期 VAF=0.2×1÷(0.2×2+0.8×2)=0.10
支持 read 數=50×0.10=5

因此預期僅有約五條支持 read。ONT 的錯誤率受 basecaller、序列脈絡與 read 品質影響; 在此深度下,少量錯誤 read 可能與變異訊號重疊,降低可分辨性。

這說明 LongPhase-S 為何採用 purity 感知的過濾:低 purity 通常需要重新校準過濾參數, 並以驗證資料在 sensitivity 與 precision 間取得平衡。

在 LongPhase-S 的此實作中,流程先估計 purity,再依 purity 調整過濾參數;其他方法也可能採用聯合或迭代估計。

真實證據

LongPhase-S 以 ASCAT 作為 purity 估計的比較基準。ASCAT 是常用的 allele-specific copy-number、purity 與 ploidy 估計方法; 具體適用範圍與資料平台應依研究設計說明。

該研究報告 LongPhase-S 在低 purity 合成樣本上的估計誤差多數低於 10%, 交叉驗證 MAE 約 4%、R2 約 0.95;解讀時應同時確認誤差定義、資料集與切分方式。

這項比較僅涵蓋合成樣本,且假設來源 tumor BAM 接近純腫瘤。 細胞株仍可能包含少量正常或異質細胞,因此此假設限定了 purity 結果的適用範圍。

不同 tumor purity 下 somatic SNV calling 的 F1-score 折線圖,八個 cell line 分別呈現
不同 purity 下的 F1-score。虛線是 caller 原始輸出,實線是加上 LongPhase-S 之後。在此資料中,多數曲線隨 purity 下降而下降,顯示低 purity 是常見困難;實際表現仍取決於方法與資料。

解讀合成資料結果時應明確標示的限制

「本方法在標示為 purity 0.2(或 DNA fraction 0.2,依研究定義)的樣本上誤差小於 10%」應完整表述為「在來源 tumor BAM 接近純腫瘤,並依指定 coverage/read fraction 混合的合成樣本上, 誤差小於 10%」。

實際檢體可能具有不同的細胞組成、拷貝數與技術變異;報告合成資料結果時,應同時說明合成方式與其前提。

先提出預測,再查看解答

兩個 somatic 變異在同一個腫瘤樣本裡,VAF 分別是 0.30 與 0.15。

可否僅據此判斷「第一個比第二個早發生」?

展開答案

不足以直接判斷,但可作為演化順序的線索。

「較早發生的突變會被更多後代細胞繼承,所以 VAF 較高」這個推理在其他條件相同時成立。 問題是其他條件經常不同:

  • 兩個位置的 local copy number 可能不一樣。CN=4 的位置上,同一個 CCF 會給出不同的 VAF。
  • multiplicity 可能不同。若突變所在的拷貝後續被保留並複製,multiplicity 可能 > 1。
  • 其中一個可能落在 LOH 區域,VAF 會被推高。

subclone 重建可使用此線索(稱為 read-AF)排序候選演化樹; 該方法將其限定為「只在最小成本候選集合形成之後用來選擇與排序」, 且最高分並列時全部保留,不強行決定唯一順序。

此例示範以弱線索排序並保留不確定性的做法。

實作練習

合成不同 DNA fraction 的混合樣本

以下是評估混合樣本穩健性的常用設計之一:

# 1. 先量測兩個 BAM 的有效 coverage
mosdepth --by 500 tumor_cov  tumor.bam
mosdepth --by 500 normal_cov normal.bam

# 2. 依實測 coverage 回推抽樣率(-s 的格式是 seed.fraction)
#    抽樣率 =(目標 fraction × 合成後總深度)÷ 來源深度 —— 推導與五個梯度的數值見 M3
#    以 tumor 50×、normal 25×、總深度 25×、目標 DNA fraction 0.6 為例:
samtools view -s 1.30 -b tumor.bam  > t_sub.bam
samtools view -s 1.40 -b normal.bam > n_sub.bam

# 3. 合併
samtools merge dna_frac_0.6.bam t_sub.bam n_sub.bam
samtools index dna_frac_0.6.bam

可建立 0.2 / 0.4 / 0.6 / 0.8 / 1.0 五個 DNA fraction 梯度, 以評估方法在低 DNA fraction 條件下的效能變化;這是一組常見的基礎評估設計。

此合成流程的前提與限制

上面的配方假設來源 tumor BAM 接近純腫瘤,tumor/normal coverage 已校正,且每細胞 DNA 量差異可忽略。 實際細胞株可能仍包含少量正常或異質細胞。

因此「本方法在標示為 purity 0.2(或 DNA fraction 0.2,依研究定義)時誤差小於 10%」應表述為「在以此方式合成的樣本上,誤差小於 10%」。 此結果的適用範圍受合成方式與來源樣本前提限制。

以 heterozygous 位點密度初步篩查 LOH

# 計算沿染色體分箱的 het 位點密度
# 需與配對 normal、鄰近可呼叫區域及 coverage 比較,以列出 LOH 候選
bcftools view -H -g het sample.vcf | awk '{print $1, int($2/1000000)}' | \
  sort | uniq -c | awk '{print $2, $3, $1}' | head -40

可呼叫區域的 het 密度受樣本、族群、coverage、caller 與過濾條件影響,應以配對 normal 或鄰近區段建立基線。 若某區段密度顯著低於基線,可列為 LOH 候選;purity 混合可能保留部分 het reads,仍需結合 allele balance、coverage 與其他證據。

學習檢核

本模組術語

LOH(異型合子性喪失)
原本 heterozygous 的區域變成只剩一種 allele。LOH 不等於缺失 —— 也可能是一條 haplotype 遺失後另一條被複製(copy-neutral LOH)。
VAF(變異等位基因頻率)
在某個位點上,支持 alt allele 的 read 佔全部 read 的比例。VAF 不等於帶有這個突變的細胞比例
cancer cell fraction(癌細胞比例)
帶有某個特定突變的腫瘤細胞佔全部腫瘤細胞的比例。用來區分 clonal(1)與 subclonal(<1)突變。不等於 VAF。
copy number(拷貝數)
某段基因體在細胞內的拷貝數。多數正常常染色體區段為 2,可再分為 major 與 minor allele copy number。
mutation multiplicity
在帶有某突變的細胞中,該突變所占的拷貝數;是 VAF 與 cancer cell fraction 換算時的重要參數。
ploidy(倍性)
細胞內染色體套數。多數正常常染色體為 2(diploid);腫瘤可呈現 3、4 或其他非整倍體狀態。
tumour purity(腫瘤純度)
樣本中腫瘤細胞所佔的比例。purity 越低,somatic 訊號被正常細胞稀釋得越嚴重,偵測越困難。