iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0
Build on Google AI

《解構生命暗物質:用 AlphaGenome Atlas 破譯 98% 非編碼基因組的 30 天實戰》系列 第 7

AlphaGenome Atlas 實戰 | Day 07 | 演算法核心拆解 —— CNN 與 Transformer 的多尺度融合

  • 分享至 

  • xImage
  •  

💡 導讀:AI 的雙劍合璧:CNN 與 Transformer 如何聯手讀懂 100 萬個 DNA 字母?

假設你拿到一本厚達 100 萬個英文字母 的解密小說,想像你要在其中找尋關鍵線索……

  1. 你需要先找到書中散落的特定關鍵字(例如:"START"、"BIND"、"STOP")。
  2. 你還要發現:第 1 頁的某個字,居然與第 500 頁的句子構成了一個隱藏的暗號!

如果只用人力去讀,簡直是不可能的任務。而 Google DeepMind 的 AlphaGenome 能夠在 1 秒內吞下 100 萬個 DNA 鹼基(1 Megabase),正是因為它配備了 AI 界的兩大頂級武器:卷積神經網路(CNN)Transformer

今天,我們就來拆解這兩大 AI 技術如何分工合作,化身為生命科學界的「雙劍合璧」!


一、 局部掃描器:CNN 與「專屬停機坪(Motif)」

在 100 萬個鹼基的浩瀚 DNA 序列中,並非每一個字母都同等重要。DNA 上散佈著許多短小的特定序列(長度約 6 到 20 個字母),稱為 「基序(Motif)」

這些基序就像是蛋白質(如轉錄因子)在 DNA 上降落的 「專屬停機坪」。如果突變把停機坪的標誌改掉了,蛋白質就無法降落,基因開關也就無法打開。
Yes

CNN(卷積神經網路)是如何工作的?

  • 白話比喻:CNN 就像是一個 高倍數顯微螢光筆關鍵字掃描器
  • 運作機制:它透過「滑動窗口(Sliding Window)」在 100 萬個字母上記錄滑過,專門捕捉短距離內的字母組合(例如:TATA-box 或特定的剪接點標記)。
  • 優勢:速度極快、善於抓取「局部細節」。

二、 跨頁超連結:Transformer 與自注意力機制(Self-Attention)

光找到當地的停機坪還不夠!我們前面提到,位於 50 萬個字母外的「遙控開關(增強子)」,會在 3D 空間中彎過來貼在基因上。

如果只靠 CNN,訊號在大範圍傳遞時會像「玩傳話遊戲」一樣,傳得越遠,訊息衰減得越嚴重。AlphaGenome 因此請出了當今大語言模型(如 Gemini)的核心技術—— Transformer

Yes

Transformer 是如何突破距離限制的?

  • 白話比喻:Transformer 內建的「自注意力機制(Self-Attention)」,就像是給 DNA 序列加上了 跨頁超連結
  • 運作機制:不論這兩個 DNA 位置在直線上記錄相隔多遠(哪怕隔了 80 萬個字母),Transformer 都能建立直接連線,精準計算它們之間的相互影響。
  • 生物學意義:它在 1D 的線性序列上,用數學完美還原了 DNA 在 3D 細胞核內 折疊、彎曲並貼合的真實物理狀態!

三、 兩大 AI 架構的對比總整理

網路架構 在 AlphaGenome 中的任務 白話比喻 對應的生物學意義
CNN (卷積神經網路) 捕捉局部短序列特徵 關鍵字高亮筆(精準找出短序列特徵) 辨識轉錄因子結合位點(TFBS)、RNA 剪接位點、核心啟動子
Transformer 建立超遠距離調控連線 跨頁超連結(無視距離瞬間對接) 模擬 3D 染色質環(Chromatin Loops)、遠端增強子與啟動子的互動

💻 四、 實作:【JSON 結構拆解】解構 API 回傳資料包

AlphaGenome 回傳的是一個層次分明的字典(Dictionary / JSON)。今天我們撰寫一個解析函數,精準提取 avi_score(AVI 風險百分位)feature_attribution(主要分子破壞機制)

💻 程式碼:parse_response.py

# parse_response.py - 解構 AlphaGenome API 的 JSON 回傳包
import config
from hello_alphagenome import fetch_variant_raw_response

def parse_variant_metrics(raw_response):
    """將複雜的字典數據萃取為乾淨的核心指標"""

    variant_id = raw_response.get("variant_id", config.TEST_VARIANT)

    # 1. 提取 AVI 風險評分 (Percentile / PHRED 標尺)
    avi_data = raw_response.get("avi_score", {})
    avi_percentile = avi_data.get("percentile", 0.0)

    # 2. 提取 SHAP 特徵歸因(主要破壞機制)
    attribution = raw_response.get("feature_attribution", {})
    drivers = attribution.get("top_drivers", [])

    primary_mechanism = "未知機制"
    if drivers and len(drivers) > 0:
        primary_mechanism = drivers.get("feature_name", "未知機制")

    return {
        "variant_id": variant_id,
        "avi_percentile": avi_percentile,
        "primary_mechanism": primary_mechanism
    }

if __name__ == "__main__":
    raw = fetch_variant_raw_response(config.TEST_VARIANT)
    metrics = parse_variant_metrics(raw)

    print("\n🎯 萃取後的關鍵數據:")
    print(f"  • 變異座標: {metrics['variant_id']}")
    print(f"  • AVI 分數: {metrics['avi_percentile']} / 30")
    print(f"  • 主要機制: {metrics['primary_mechanism']}")

明天,我們將剖析 AlphaGenome 如何利用這套強大架構,在單一鹼基解析度上同時輸出數千項調控特徵,完成這場多模態的預測革命!



上一篇
AlphaGenome Atlas 實戰 | Day 06 | 100 萬鹼基的視野極限 —— 捕捉三維空間中的遠距調控
下一篇
AlphaGenome Atlas 實戰 | Day 08 | 單鹼基解析度圖譜 —— 一次預測 RNA 剪接與染色質開放度
系列文
《解構生命暗物質:用 AlphaGenome Atlas 破譯 98% 非編碼基因組的 30 天實戰》11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言