計算機已經成功的證明,“二進制”是一種簡潔又高效的編碼方案(且與物理硬件相得益彰),它可以傳遞和映射任意復雜度的信息。
但基因編碼,絕大部分卻使用瞭4種堿基(DNA是ATCG,RNA是AUCG),而不是2種堿基,這到底是為什麼呢?難道自然進化不更應該偏愛“簡單可用”的方案嗎?
本文,將會深入探討基因的編碼選擇,包括其背後可能的原因,以及更為深刻的關聯到宇宙演化的原則與規律。
主題目錄如下:
計算機應用“二進制”,其實隱含瞭兩個層面,即:編碼與計算。
那麼,類比起來:
對於編碼,堿基就可以看成是一種“抽象數字”——2種堿基就是2種數字,4種堿基就是4種數字——而“數字編碼”所形成的序列,就信息內涵而言,“二進制”與“四進制”並沒有什麼本質的區別。
因為不同的編碼方案,都可以表達和傳遞出相同的信息,就像不同的語言可以描述相同的意思一樣,隻不過信息編碼的冗餘度與能量消耗,不盡相同。
對於信息存儲,計算機是基於物理介質的二維平面結構(即信息存儲在平面上),而基因信息的存儲,是基於生物分子的三維空間結構。
這兩種形式,功能復雜度不同,但都可以動態的改變信息,計算機是改變存儲介質的微觀結構,而基因本身就是微觀,因此其結構即是信息,修改結構即是修改信息,如:DNA甲基化。
對於計算,計算機是基於抽象數學(“二進制”就隱含進位的運算法則),其計算過程是數學邏輯的運算,而基因是基於具體數學,其計算過程是化學變化與量子效應。
顯然,具體數學一定蘊含著抽象數學可以描述的自然規律,隻不過“進化”並不需要“認知”自然規律,隻需要“遵守”。
而人類,就是在用抽象數學去模擬計算具體數學,隻不過人類未必可以認知所有自然規律中的抽象數學。
綜上可見,計算機與基因在信息的編碼、存儲與計算等方面,都可以找到一一對應的模式,並且這兩套系統,都可以完成對信息的表達、傳遞與控制。
超級暢銷書作傢、資深記者——史蒂芬·科特勒(Steven Kotler),在《盜火》(Stealing Fire)中,根據當前合成生物學的研究成果,想象瞭未來可能發生的一個場景:
“通過把遺傳密碼字母中的4個字母,當成電腦編碼中的1和0,合成生物學使我們能像為計算機編寫程序那樣簡單地編寫——活細胞程序。一旦代碼編寫好瞭呢?把它發送到一個DNA(基因)合成器,數天內,你會在快遞包裹中收到一個冷凍幹燥的小瓶,裡面裝著你的基因創造物。”
那麼,基因編碼在進化過程中,為瞭完成信息遺傳的“任務”,選擇瞭“4種堿基”而不是“二進制”,這是一個值得深思的問題。
而在這個問題之前,我們需要多問一句——如果基因編碼采用“2種堿基”,同樣也可以完成信息遺傳的“任務”嗎?
事實上,如果使用“二進制”,基因照樣可以編碼出同樣的功能。
現在是3個堿基,編碼一個密碼子,每個堿基位有4種堿基可選,那麼密碼子的種類就是:4 * 4 * 4 = 64種。
同樣,如果每個堿基位有2種堿基可選,此時使用更多的堿基位來編碼一個密碼子即可,如:6個堿基位編碼一個密碼子,就可以編碼同樣種類和數量的密碼子,即:2 * 2 * 2 * 2 * 2 * 2 = 64種。
但這樣的問題就在於,編碼密碼子的堿基位變多,這種“排列增長”擴展到整個DNA鏈來看,會變得非常容易出錯,因為二進制編碼一個密碼子需要正確排列6位(6個2),四進制隻需要正確排列3位(3個4)。
同時,這還會消耗更多的能量,DNA結構會變得更長更復雜,等等一些列問題。
事實上,如果使用“三進制”,基因編碼也沒問題。
一個密碼子就可以決定一種氨基酸,理論上64種密碼子,可以決定64種氨基酸,但在實際中隻有20多種氨基酸。
原因就在於,多個密碼子可以對應同一個氨基酸,還有一些特殊的密碼子,代表著編碼肽鏈的“起始”與“終止”指令。其中終止密碼子,有3種——不對應任何氨基酸。
那麼,20多種氨基酸,其實隻需要3種堿基(三進制)和3個堿基位即可,即:3 * 3 * 3 = 27種——但這樣,密碼子就失去瞭簡並性,這會降低氨基酸對有害突變的“抗性”。
因為,密碼子中的一位或兩位,可以突變成多種可能,但都依然保持密碼子對應同一個氨基酸,這樣就保證瞭氨基酸(及上層肽鏈和蛋白質)功能的穩定性。
而更進一步,如果隨機突變產生瞭終止密碼子(有3種),則就會立馬終止肽鏈的合成,這會產生非常嚴重的功能性錯誤。
那麼顯然,三進制終止密碼子的占比(3 / 27),約是四進制占比(3 / 64)的2.4倍——這個倍數將會在億萬次密碼子的編碼過程中,形成可觀的突變積累效應。
由此可見,“四進制”編碼並不“簡潔”,但正是這個冗餘性,可以極大提高基因編碼的容錯性(即減少有害突變),進而提高進化的穩定性。
綜上可見,“四進制”——使用4種堿基(編碼),並不是基因完成信息遺傳“任務”的唯一方案,而這個方案在進化過程中,能夠勝出的重要原因,主要有兩個,即:冗餘性與隨機性。
關於冗餘性,其最大的好處就是——容錯性,其原理就在於:讓錯誤發生在“冗餘”之上,從而就避免瞭“非冗餘”的錯誤。
那麼對於計算機來說,也經常會使用冗餘性來增加容錯性,甚至對於量子計算機,“冗餘校驗”更是一個必要的功能步驟——因為量子計算的結果是一個概率,驗證概率,就需要用統計數據,其原理就是:利用“冗餘”操作的統計結果,來對比判斷“非冗餘”操作結果的正確性。
當然,進化並不會用“無限冗餘”來保證“無限正確”,其原則就是“夠用就好”——其中蘊含著妥協前行的策略,即:沒有頂層設計(包括全局規劃),在湊合修補中前行——而如何抵達這個“夠用就好”,這依靠的就是隨機性。
例如,大腦功能是堆疊與修補,而不是重寫與重構,即:大腦功能沒有頂層設計,都是走一步算一步,隻會湊合修補,絕不會重寫重構,如果實在不行,被滅絕淘汰,也不會重頭再來,因為演化路徑(包括演化環境)已經不復存在,於是隻能繼續縫縫補補其它現有——可想,大腦功能不是最優解,而是最實用。
關於隨機性,其最重要的作用就是——隨機試錯,自然進化就是在隨機試錯的過程中,發現瞭“四進制”這個“夠用就好”,接著“四進制”就被選擇,成為瞭基因的編碼。
我們可以看到,“四進制”很好的平衡瞭容錯與夠用,以讓進化中的不利突變,降低到可以保證上層功能的穩定夠用,同時編碼過程的復雜性與能量消耗,也可以維持在穩定夠用的平衡態。
因此,“四進制”其實是隨機試錯產生的,可以適應環境的概率產物。
那麼可以想象,曾經“二進制”或“三進制”的基因編碼,可能也是存在的,隻是被環境給淘汰瞭——因為它們無法抵達“夠用就好”。
自然選擇,適者生存,否則消失——因此,能夠適應環境的“玩傢”,就是進化過程中留存的“贏傢”。
但適應環境,並不需要出類拔萃或盡善盡美,而隻需要——夠用就好,因為隨機試錯一旦遇到瞭夠用就好,就會停止試錯(甚至抑制試錯),並等待著環境變化給予進一步的“指示”,方能繼續試錯。
換言之,進化適應的產物來自——隨機試錯,夠用就好——前者是進化,後者是適應,進化產生適應就會穩定留存,並保持現狀,直到環境發生變化。
事實上,夠用就好,在此之下的都消亡瞭,在此之上企圖追求完美的,最終也消亡瞭——因為完美就會缺少冗餘,進而缺少容錯,最終變得脆弱——而保持夠用就好,就能很好的維持適應的平衡點,從而一直好好的存在著。
那麼,在局部來看充滿瞭隨機性,但在漫長的時間尺度下,就會呈現出——規律,而在規律視角下,就擁有瞭方向——隨機就變成瞭迭代。
因此,從微觀局部來看——是隨機試錯,即演化;但從宏觀整體來看——就是迭代試錯,即進化。
主題相關文章: