1977 - Sanger 定序法(DNA 可以被「閱讀」)#
案件摘要#
1977 年,Frederick Sanger 在劍橋發表鏈終止定序法 (chain-termination / Sanger sequencing): 用雙脫氧核苷酸 (ddNTP) 隨機終止 DNA 合成,產生長度不同的片段, 再用膠體電泳按長度分離,讀出序列。 他定出噬菌體 \(\phi\) X174 的完整基因組(5,386 個鹼基——第一個被完整定序的生物體)。 生命的第一本書被讀出——Sanger 兩度獲諾貝爾獎(1958、1980), 是史上極少數的「雙冠王」。
前因 -- 為什麼會有這個案子#
- 讀取的不可能:DNA 是 4 種鹼基的長鏈(人類基因組 30 億鹼基對)。 1970 年代,沒有任何方法能「讀出」一段 DNA 的序列—— 讀取是兇手,讀不出序列的遺傳學是黑箱。
- Sanger 的蛋白質先驗:他 1955 年定出胰島素的完整胺基酸序列(第一個被定序的蛋白質, 1958 諾獎)——他早已證明「生物大分子可以被閱讀」。蛋白質會讀,DNA 為什麼不會?
- 限制酶的線索(1970–1972):限制酶(HindII、EcoRI)能在特定序列切斷 DNA—— DNA 有了「剪刀」,但還缺「讀出的方法」。
- Sanger 的偵探直覺:與其「直接讀」,不如讓 DNA 自己寫出終止訊號—— 合成時隨機掺入 ddNTP(缺少 3'-OH,鏈在此終止),片段長度 = 鹼基位置。
線索與推理 -- 數學式、程式、理論#
核心推理:隨機終止 = 長度編碼位置#
ddNTP 的化學偵探戲: - dNTP(正常):有 3'-OH,鏈繼續延長 - ddNTP(終止):沒有 3'-OH,下一個核苷酸無法接上——鏈在此死亡
在複製反應中,ddNTP 以低濃度(~1/100)隨機掺入:
\[ P(\text{在位置 } k \text{ 終止}) = (1-p)^{k-1}\, p \qquad \text{(幾何分佈)}. \]
每個位置都有機會終止 → 試管裡產生一族「終止於各位置」的片段。 四管反應(各掺一種 ddNTP:ddATP/ddGTP/ddCTP/ddTTP), 膠體電泳按長度分離(1 鹼基差 = 可分辨),從短到長讀出 = 從 5' 到 3' 的序列。
Python:Sanger 定序的模擬#
import numpy as np
COMPLEMENT = {'A':'T', 'T':'A', 'G':'C', 'C':'G'}
def sanger_sequencing(template, p=0.1, rng=None):
rng = rng or np.random.default_rng()
# template 是模板股;合成的新股與其互補
L = len(template)
reads = {b: [] for b in 'ACGT'}
for trial in range(2000): # 大量合成反應
seq, done = [], False
for k, base in enumerate(template):
nb = COMPLEMENT[base] # 新股的鹼基
if rng.random() < p: # 掺入 ddNTP → 終止
reads[nb].append(k); done = True; break
seq.append(nb)
if not done: reads[COMPLEMENT[template[-1]]].append(L-1)
return reads
def reconstruct(reads, L):
# 從終止位置重建序列
seq = [None]*L
for b, positions in reads.items():
for k in positions: seq[k] = b
return ''.join(seq)
rng = np.random.default_rng(0)
template = "ATGCCGTAAGCTTACGGCATTACCGGT"
reads = sanger_sequencing(template, rng=rng)
recovered = reconstruct(reads, len(template))
comp = ''.join(COMPLEMENT[b] for b in template) # Sanger 讀的是新股(互補股)
print("模板 :", template)
print("讀出的 :", recovered)
print("定序正確:", recovered == comp)
模板 : ATGCCGTAAGCTTACGGCATTACCGGT
讀出的 : TACGGCATTCGAATGCCGTAATGGCCA
定序正確: True
定序能力的進化#
| 年份 | 方法 | 通量 | 第一個定序對象 |
|---|---|---|---|
| 1977 | Sanger(鏈終止) | 手工讀膠,~100 bp/次 | \(\phi\) X174(5,386 bp) |
| 1987 | 自動定序(毛細管電泳) | ~1,000 bp/讀 | 人類基因組計劃的主力 |
| 2005 | 次世代定序 (NGS) | 億級 bp/天 | 全基因組普及化 |
| 2020s | 奈米孔 (Oxford Nanopore) | 長讀、即時 | 完整染色體無組裝 |
結案 -- 後果與影響#
- 讀取生命的格式:Sanger 法讓 DNA 序列成為「可讀的文本」—— 遺傳學從黑箱變成資訊科學,生物學與電腦科學在此合流(生物資訊學誕生)。
- 人類基因組計劃的引擎:1990–2003 年的 HGP 用自動化 Sanger 法 定出 30 億鹼基對(見
2003-人類基因組計劃.md)——沒有 Sanger,沒有 HGP。 - 生物資訊學的誕生:序列資料爆炸 → GenBank(1982)資料庫、 BLAST(1990)搜尋演算法、序列比對——生命科學的資料科學化。
- 雙冠王的範本:Sanger 兩度獲諾獎(1958 蛋白質、1980 DNA 定序)—— 兩次都是「把不可讀變成可讀」。偵探的方法論可以跨界重演。
- 法醫與演化:DNA 指紋(1984, Jeffreys)、古 DNA(Neanderthal 基因組, 2010)—— 序列成為法醫學與演化學的證據鏈。
關鍵人物與文獻#
- F. Sanger, S. Nicklen, A. R. Coulson:PNAS 74, 5463 (1977)。
- ** \(\phi\) X174**:Nature 265, 687 (1977)——第一個完整定序的基因組。
- 限制酶團隊:HindII (1970, Smith/Wilcox)、EcoRI (1971)——剪刀的提供者。
- 相關案件:
1953-WatsonCrick-DNA雙螺旋.md、2003-人類基因組計劃.md、2012-CRISPR基因編輯.md。