ISM 與 LongLineage 都不是從原始訊號開始的 —— 它們吃的是已經被四個外部工具處理過的資料。 這一層不是本專案寫的程式,但它決定了所有下游分析的品質上限, 而且藏著幾個會讓人得出相反結論的陷阱。
| 輸入 | 產生者 | 它回答什麼 |
|---|---|---|
甲基化訊號MM/ML tag | Dorado basecaller | 這條 read 上每個 CpG 有沒有甲基化、機率多高。資料進來時就已經在 BAM 裡了。 |
| 體細胞突變清單 VCF | ClairS(配對模式) | 哪些位置是腫瘤才有、正常組織沒有的突變。 |
單倍型標籤HP/PS | LongPhase-S | 這條 read 來自父源還是母源那一套染色體。本交接的 frozen FIFO workflow 抽成 sidecar,該次 run 不新增落地 BAM;歷史 PRE-FIX workflows 曾落地 tagged BAM。 |
| 拷貝數 CN 區段 | SAVANA(僅 cna) | 哪些區段被複製或缺失。目前狀態是 NOT_INTEGRATED,尚未接入主線。 |
從原始訊號到兩支 C++ 吃得下的東西。步驟 ① 通常在資料交付時就已完成。
InterSubMod 從 BAM aux tags 讀 HP/PS;exact-PS/LongLineage 使用 sidecar。 兩者是平行 provenance contracts,不是兩支引擎直接串接的執行期介面; tagged-BAM writer 只能依明示 feature/preview commit 宣稱。
#CHROM START0 END0 QNAME FLAG MAPQ CIGAR_B2 HP PS
| 欄位 | 內容 |
|---|---|
QNAME | read 的原始名稱,實測是明文 UUID(如 ec1d98d5-5fcf-45fc-9691-7641e8731385)。 |
CIGAR_B2 | 比對形狀的 8 位元組摘要(不是完整 CIGAR)。省空間,但仍足以當比對用的鍵。 |
HP | 單倍型標籤。值域:1/2(germline)、1-1/2-1(帶體細胞變異的支系)、3、.(未定相)。 |
PS | 定相組編號 —— 同一組內的單倍型標籤才可互相比較。 |
| 資料集 | sidecar 列數 | 備註 |
|---|---|---|
| HCC1395 | 40,859,727 | 主力樣本,1.43 GB(壓縮後) |
| HCC1395_DORADO | 40,033,094 | 同一個生物樣本的另一次 basecalling,不是生物學重複 |
| COLO829 | 8,255,461 | 有外部真值可對照 |
| H1437 | 14,434,968 | 純度 0.95 |
| H2009 | 21,690,297 | 純度 0.95 |
| HCC1937 · HCC1954 | — | HCC1937 的 BAM 是最大的(416 GiB) |
7/7 PASS 全部生產完成並通過驗證(2026-07-11 起跑,隔日 01:31 全部驗證通過)。 7 個生產資料集 = 6 個生物樣本(HCC1395 有兩套 basecalling)。
HP 標籤有兩種資料型別,用錯 parser 會靜默丟資料
同樣叫 HP 的欄位:LongPhase-S 寫的是字串(HP:Z:1-1),
另一個工具寫的是整數(HP:i:11),而且整數編碼是
11↔"1-1"、21↔"2-1"、33↔"3" 這種非直覺的映射。
1-1/2-1 不等於「已確認的亞群」
這兩個標籤的定義本身就是用體細胞變異切出來的 ——
它們是「在 germline 骨架上再被體細胞證據細分出來的 read 群」。
比對用的鍵不含序列與品質:sidecar 與 BAM 對回去時用的是 「read 名 + 染色體 + 起訖 + FLAG + CIGAR 摘要」。設計文件明寫這只能在特定條件全部成立時使用 —— 若上游 BAM 換版本、重新比對、或 read 名重複,同一把鍵可能對到多筆。 HCC1395 實測確實有 6,594,614 筆重複的完全相同比對列,但目前沒有衝突。
用的 LongPhase-S 是自訂修改版,未經上游審查。 原版在某些情況會直接中止整個程序,修改版改成印警告後繼續並保留該位點。 這改變了低品質位點的處置語意。HCC1395 出現 2 次該警告,其餘 6 個資料集為 0。 收據自己標註了「證據是有界的」。
這是被問最多的需求之一,答案有點反直覺。
5daf50f 沒有 BAM writer;private public-preview candidate b9aaa12 已含 longlineage-tag-bam tagged-BAM 輸出,但仍是 NOT_READY/non-production,P3/P4/P5/P7/P8 BLOCKED。
因此「LongLineage 架構上禁止 BAM」已不是跨版本真實的敘述。
若以 private 5daf50f baseline 行為作參考,仍需獨立匯出工具;若評估 candidate b9aaa12,可測 longlineage-tag-bam。兩條路徑都依賴確定性的比對鍵:
QNAME 是明文的 UUIDread_id 是它的 SHA-256 雜湊
private 5daf50f baseline 行為下的可行做法是寫一個獨立的匯出工具(讀凍結結果 + 原始 BAM,重算雜湊做比對);candidate 則要以實際 build/test receipt 確認 longlineage-tag-bam 的輸入契約與輸出語意,不可將「candidate 存在」當成「已公開/production 可用」。
● 但要先解決磁碟問題:2026-08-05 receipt 記錄當時約 617 GB available;這是 volatile observation,執行前必須用 scripts/site/doctor 或 df 重查。現有 14 個 PRE-FIX BAM
合計 3,709,322,840,333 bytes,但尚未 hash、壓縮/byte decomposition 與 production eligibility 都未驗;實務上建議只針對感興趣區間產生子集。