重點
- Hugging Face 與北京中關村學院等單位 10 月 8 日釋出 Carbon-A(Carbon-Annotator),一個 12 億參數的雙向編碼器,直接從 DNA 逐個鹼基預測蛋白質編碼區(CDS)。一個 checkpoint 涵蓋哺乳類、其他脊椎動物、無脊椎動物、植物、真菌與原生生物六大類。
- 在 42 個基準基因組上,核苷酸層級 F1 的 macro 平均是 0.944。核苷酸、外顯子、基因三個層級的整體 F1 都是受測方法中最高,比較對象包括 AUGUSTUS、Helixer、Tiberius、ANNEVO、OrionGeno、SegmentNT 與 NTv3。
- 每個預測基因附有信心分數,用來判斷結構是否與參考 CDS 完全一致,AUROC 為 0.876。以 0.1 為門檻過濾後,基因層級的精確率 0.792、召回率 0.691、F1 0.736。
- 團隊用它標註 GenBank 的真核基因組,建成 Carbon Annotation Database(CADB):48,167 個組裝、22,617 個分類單元、27.18 Tbp 序列,共 5.66 億個預測的蛋白質編碼位點。
- 四個物種的 PacBio Iso-Seq 實驗裡,有 239 個 RefSeq 沒有的 Carbon-A 候選得到轉錄本支持。報告強調,這只說明它們會被轉錄,還沒有證明會轉譯成蛋白質。
要解決的問題
定序的成本已經降了好幾個數量級,瓶頸移到下游的結構註解:找出基因在哪裡、哪些區段編碼蛋白質、外顯子與內含子怎麼排列。
傳統做法是替每個基因組分別收集證據:組裝並比對轉錄本、把已知蛋白質比對回基因組、從近緣物種轉移註解。這些證據在生命樹上分布很不平均,越冷門的類群越缺。不靠外部證據的 ab initio 預測器多半也依類群分開訓練。依報告的統計,Tiberius 有 9 個 checkpoint,ANNEVO 有 6 個,OrionGeno 有 8 個。模型離訓練用的類群越遠,準確度掉得越多。
Carbon-A 想回答的問題是:單一模型能不能跨越差異很大的真核類群,學到共通的編碼規則。
模型
Carbon-A 的骨幹來自同團隊的 GENERator-1.2B,把原本的因果解碼器換成雙向編碼器。報告的理由是,某個位置是否屬於編碼區,要同時看上游與下游的訊號,例如起始與終止密碼子、剪接點與外顯子的排列。
| 項目 | 設定 |
|---|---|
| 參數量 | 12 億 |
| 層數、隱藏維度 | 26 層,2,048 維 |
| 注意力頭 | 32 個,KV 頭 4 個 |
| 分詞 | 不重疊的 6-mer,每個 token 代表 6 個鹼基 |
| 上下文 | 16,384 個 token,即 98,304 bp |
| 輸出 | 正、反兩股各一個分類頭,每個鹼基輸出編碼與非編碼的機率 |
| 授權 | Apache 2.0 |
幾個設計重點:
- 6-mer 分詞:token 數變成單鹼基分詞的六分之一,密集注意力的矩陣最多縮小 36 倍,讓近 10 萬 bp 的視窗在訓練與全資料庫推論時都跑得動。每個隱藏狀態再投影回 6 個鹼基位置,所以 CDS 邊界仍是逐鹼基的。
- 雙股分類頭:兩股共用編碼器、各自輸出。正股 [0] 與反股 [50] 的編碼區如果寫進同一條標籤,會合併成一段 [0];分開兩條就能保留反向重疊的基因。
- 標籤取所有轉錄異構體的聯集:模型看到所有符合條件的編碼片段,不必只重現一條主要轉錄本。代價是同一股上的不同異構體被合併成一條編碼占用軌跡。
- 正類加權:訓練語料中編碼鹼基不到 2%,正類的損失權重設為 3.0。
- 先學註解,再做遮罩重建:報告稱為「annotation as pre-training」。模型先在完整視窗上學預測 CDS,可以自己利用任何有助於定位編碼區的周邊序列;之後才在篩選過的功能區段上做遮罩語言模型的訓練。
發布在 Hugging Face 的權重,其 provenance.json 記載來源為 GenerTeam 的 GENERanno-eukaryote-1.2b-cds-annotator-preview,Hugging Face 只為 Transformers 5.x 相容性修改了模型程式碼。
訓練資料
訓練資料是 RefSeq 中 GCF 編號的組裝,只收長度至少 98,304 bp 的序列記錄:
- 2,055 個組裝、2,047 個物種,原始序列 3.033 Tbp
- 真菌與原生生物只占原始鹼基的 0.66% 與 0.13%,但編碼比例高達 45.17% 與 42.41%
- 為了讓稀少類群常出現在批次裡,各類群用不同的滑動步長切視窗
- 每個視窗起點再隨機位移 0–5 bp,同時改變裁切邊界與 6-mer 分詞的相位
- 擴增後共 4.35 Tbp、4,427 萬個視窗
| 類群 | 滑動步長(bp) |
|---|---|
| 哺乳類、其他脊椎動物 | 98,304 |
| 無脊椎動物 | 65,536 |
| 植物 | 49,152 |
| 真菌 | 4,096 |
| 原生生物 | 1,024 |
訓練在 32 張 NVIDIA A100 上進行,每步 256 個視窗(約 400 萬個 6-mer token),依類群逐步加入,全程約 50 萬步。
從機率到基因結構
模型本身只給出每個鹼基的編碼機率。註解流程分成四步:
- 全基因組推論:以 98,304 bp 的視窗掃過,相鄰視窗重疊 6,144 bp,重疊處取平均。
- 轉換網路:一個 11,077 個參數的小型網路,找出基因間區、外顯子與內含子之間的候選邊界。
- Viterbi 解碼:強制基因文法,基因從起始密碼子開始、到同框的終止密碼子結束,內含子從供體位點開始、到相容的受體位點結束,重建出合法的 CDS。
- 信心網路:結合機率軌跡與解碼出的結構,給每個基因一個分數,代表結構完全正確的機率。
報告把這個分數類比為 AlphaFold 的 pLDDT 與 pTM。流程保留所有預測,使用者可以自己選門檻。
基準結果
42 個基準基因組分成兩組:28 個是訓練快照中的既有參考基因組,例如人類、斑馬魚、果蠅與阿拉伯芥;14 個是 2026 年起才加入 RefSeq 的時間保留組,所有受測模型都沒看過。Carbon-A 在兩組各自排名第一。
各類群的平均基因層級 F1:
| 類群 | 基因 F1 |
|---|---|
| 原生生物 | 0.956 |
| 真菌 | 0.815 |
| 植物 | 0.776 |
| 哺乳類 | 0.744 |
| 其他脊椎動物 | 0.667 |
| 無脊椎動物 | 0.614 |
其他數字:
- 信心分數:門檻 0.1 時,過濾掉 1.3% 的完全一致預測與 33.4% 的其他預測。
- 豬的兩個組裝:2017 年的組裝在訓練快照中,基因 F1 是 0.718;2026 年新定序的高品質組裝屬於保留組,基因 F1 反而升到 0.776。Tiberius、ANNEVO 與 OrionGeno 也在新組裝上分數較高。
- 動物轉植物:只用動物基因組訓練的中間 checkpoint,在植物上的核苷酸 F1 是 0.873,在真菌上 0.841,在原生生物上 0.511。
- 非標準遺傳密碼:四膜蟲把 TAA、TAG 這兩個終止密碼子改譯成麩醯胺酸。Carbon-A 的核苷酸 F1 是 0.960,表現最好的對照是專為四膜蟲訓練的 AUGUSTUS 模型,只有 0.242。若誤用標準遺傳密碼,所有預測的信心分數會降到接近零,報告認為這可以用來偵測遺傳密碼設錯。
在人類 1 號染色體上的執行時間:
| 方法 | 秒數 |
|---|---|
| NTv3 | 1,894 |
| Carbon-A | 2,027 |
| Helixer | 6,030 |
| AUGUSTUS(單一 CPU 執行緒) | 7,510 |
| SegmentNT | 8,547 |
Tiberius、ANNEVO 與 OrionGeno 快三到四倍,但它們依類群分成多個 checkpoint,參數量分別是 800 萬、1,500 萬與 2.12 億。AUGUSTUS 用 CPU、其他方法用單張 GPU,硬體並不對等。把上下文從 16,384 個 token 減半到 8,192,執行時間降到 1,613 秒,基因 F1 從 0.805 降到 0.792。
參考註解之外的候選
參考註解也可能漏掉基因或含錯誤的基因模型。團隊在貓、敘利亞倉鼠、雞與阿拉伯芥四個物種上,把每個模型的預測分成與 RefSeq 完全一致、重疊但結構不同、只有模型有、只有 RefSeq 有幾類,再用兩種證據檢驗。
AlphaFold3 結構信心:四個物種中,Carbon-A 獨有候選的 pTM 分布都高於對應的 RefSeq 獨有註解,差距也比其他模型明顯。
Iso-Seq 全長轉錄本:
| 指標 | Carbon-A | RefSeq |
|---|---|---|
| 整體支持率 | 0.619 | 0.623 |
| 雞 | 0.653 | 0.646 |
| 阿拉伯芥 | 0.698 | 0.685 |
- Carbon-A 獨有候選的支持率平均 0.159,對應的 RefSeq 獨有註解是 0.067,差值 +0.092。它是唯一差值為正的模型,四個物種也都是正值。
- 共有 239 個 Carbon-A 獨有候選得到轉錄本支持,其中 73 個與已註解的偽基因重疊,166 個沒有。
- 在重疊但結構不同的位點,所有模型的支持率都低於配對的 RefSeq 異構體,Carbon-A 的差值是 −0.133。外顯子邊界的細節,轉錄本證據仍偏向 RefSeq。
- 就整份註解而言,Carbon-A 把已知偽基因鹼基標成 CDS 的比例最低,為 2.19%,其他模型是 3.93–21.97%。但在各模型的獨有候選中,Carbon-A 有 24.6% 與偽基因重疊,比例最低的是 Helixer 的 21.7%。
報告提醒,支持率取決於取樣組織中有哪些基因在表現。整體 0.619 不代表只有 61.9% 的註解正確,0.159 也不代表只有 15.9% 的候選是真基因。
Carbon Annotation Database
團隊用同一個流程與設定處理 GenBank 的真核組裝,每個預測位點都連到組裝、分類單元、座標、股向、重建的 CDS、轉譯出的蛋白質與信心分數。
| 項目 | CADB | RefSeq 訓練來源 | 倍數 |
|---|---|---|---|
| 組裝數 | 48,167 | 2,055 | 23.44 |
| 分類單元 | 22,617 | 2,047 | 11.05 |
| 序列 | 27.18 Tbp | 3.03 Tbp | 8.96 |
| 編碼位點或基因 | 5.66 億 | 3,498 萬 | 16.19 |
GenBank 同一個分類單元可能有多個組裝,來自不同個體、品系或計畫,所以報告同時列出組裝數與分類單元數。報告把 CADB 定位為人工審訂參考註解的補充,主要用途有兩種:
- 基因組語言模型的訓練資料:每個預測 CDS 都附有周邊基因組序列,可以依側翼長度、信心門檻與類群比例切出以基因為中心的視窗。這只需要知道編碼區在哪裡,核苷酸層級 F1 在六大類群都超過 0.9。
- 蛋白質語言模型的訓練資料:要求更嚴,一個移碼或漏掉的外顯子就會讓轉譯出的蛋白質完全不同,需要靠信心分數過濾。
官方部落格說,目前約完成目標 GenBank 集合的一半,三週後釋出下一批,之後也會透過 EMBL-EBI 提供。
限制
報告與部落格自己列出的限制:
- 異構體:訓練標籤合併了同一股上的所有異構體,解碼時每個位點只輸出一條路徑。原始機率軌跡看得到替代剪接的訊號,但目前的版本無法明確輸出多個異構體。
- 不判斷功能:Carbon-A 只回答編碼區在哪裡、對應什麼蛋白質序列,不指派分子功能或表型。
- 實驗驗證仍屬初步:沒有量測蛋白質產物;做 Iso-Seq 的樣本與參考組裝並非同一個體,個體間的基因組差異可能影響比對與 CDS 邊界。團隊計畫用同一個體的基因組、轉錄體與蛋白質量測做後續驗證。
- AlphaFold3 的意義有限:信心低可能只是蛋白質含大量無序區或很短;信心高的摺疊也不能獨立驗證基因組上的 CDS 邊界。
- 基準的組成:42 個基準基因組中有 28 個在訓練快照裡,真正沒看過的是 14 個保留組。
- 基因層級仍有落差:過濾後的基因 F1 是 0.736,無脊椎動物只有 0.614。拿 CADB 的蛋白質序列做下游研究前,需要自己評估目標類群的結構準確度。
參考資料
- Hugging Face Blog:Carbon-A: Finding genes in known and unknown genomes(2026-10-08)
- 技術報告:Unified Eukaryotic Genome Annotation: From Gene Prediction to Carbon Annotation Database(PDF)
- Hugging Face:HuggingFaceBio/Carbon-A-1.2B 模型卡
- Hugging Face:Carbon Annotation Database 資源集合
- Hugging Face Space:Carbon-A Database Explorer