目錄react
1.1DNA的組成git
1.2蛋白質的組成程序員
1.4計算的侷限數據庫
涉足計算機程序設計和生物學領域,總會發現有許多激動人心的事情,隨處可⻅的新技術和新成果即是其中之一。編程
固然,生物學是一⻔古老的學科,但其中許多有趣的研究方向都源於新技術和新想法。現代科學中的遺傳學起源於廣受讚譽的孟德爾的工做,迄今爲止僅有100多年的歷史,但已成爲現代生物學中舉足輕重的一⻔學科。脫氧核糖核酸(DNA)和第一個蛋白質的結構是大約50年前解析出來的,而克隆DNA的聚合酶鏈式反應(PCR)技術纔出現了20多年。人類基因組計劃(HumanGenomeProject,HGP)旨在破譯人類基因的遺傳信息,剛剛過去的十年⻅證了該計劃的啓動和完成如今,咱們正處於生物學研究的⻩金年代,這是人類醫學史、科學史和哲學史上相當重要的一個時代。api
計算機科學是一個相對嶄新的學科。算法早在古代就已經出現(歐幾里得),而對計算機器的癡迷也有必定的歷史了(好比,帕斯卡的機械計算器,以及19世紀巴⻉奇的蒸汽動力計算器)。但程序設計僅僅在50年前纔出現,和第一臺大型、可編程的電子數字積分計算機ENIAC的建造處於同一個時代。以後,程序設計便急速發展,如今還是如此。互聯網和我的電腦纔出現了20多年,而萬維網更是隻有短短10年的歷史。今天,咱們的通信、運輸、農業、金融、政府、商業、藝術都和計算機以及程序設計密不可分,科學研究亦是如此。
計算機程序設計領域的急速發展着實使人興奮,但這也要求相關的專業從業人員要與時俱進。在某中程度上,程序設計表明了過程性知識——即如何作事的知識。計算機在咱們社會和歷史中的重要性,從使用計算機引發的過程性知識的海量增⻓中就可⻅一斑。同時咱們也看到計算和算法的概念已被普遍使用,好比在藝術、法律和科學中就隨處可⻅。計算機已經成爲啓發人們解開事物本質的制勝法寶。有感於此,把發生分子生物學過程的細胞當作一種特殊的計算機器,這絕對是一個誘人的想法。網絡
反之亦然,生物學中的重大發如今計算機科學中也有所體現,如進化程序、神經網絡和模擬退火等。不切當的啓發存在必定的危險性,這是確確實實存在的,但不能否認,生物學和計算機科學兩個領域觀點的交換和啓發已經成爲各自領域取得重大發現的推進力。electron
爲非生物學家着想,有必要回顧一下DNA和蛋白質的基本概念和相關術語。若是你是生物學家,能夠直接跳過下面的兩小節。
DNA是由四種分子組成的聚合物。這四種分子常被叫作鹼基或者核苷酸,它們是腺嘌呤、胞嘧啶、⻦嘌呤和胸腺嘧啶,單字⺟縮寫分別爲A、C、G和T。(關於DNA是如何表述成計算機數據的,請參看第4章。)這些鹼基首尾相連造成DNA的一條單鏈。
在細胞中,DNA一般以雙鏈形式存在,兩條鏈以著名的雙螺旋形式互相纏繞在一塊兒。雙螺旋的兩條鏈擁有互相配對的鹼基,稱爲鹼基對。一條鏈上的A老是和另外一條鏈上的T相配對,而G則和C配對。
DNA鏈是有方向性的。核苷酸的一端叫作5’端,另外一端叫作3’端。當核苷酸鏈接造成DNA鏈的時候,一個核苷酸的5’端老是和另外一個核苷酸的3’端相鏈接。此外,當細胞使用DNA時,如轉錄成RNA的過程,也是從5’端到3’端一個鹼基一個鹼基地進行。因此,當在紙上書寫DNA時,方向是從左到右的,這和DNA鹼基的5’端到3’端的方向是對應的。一個編碼基因可能出如今兩條鏈的任何一條上,因此當查找或分析DNA時必定要對兩條鏈進行分析。
當兩條鏈造成雙螺旋時(見圖1.1),它們的方向是相反的,也就是說,一條鏈的方向是5’端到3’端,而另外一條鏈的方向則是3’端到5’端。因此,觀察雙螺旋的任何一個末端,都是一條鏈的3’端和另外一條鏈的5’端。
由於鹼基對都是A-T配對和C-G配對,同時兩條鏈的方向又是相反的,所以經常使用反向互補這個術語來描述兩條鏈上鹼基之間的關係。說「反向」是由於兩條鏈的方向相反,說「互補」是由於某個鹼基老是和它的互補鹼基相配對——A和T配對、C和G配對。
基於以上事實,對於任何一條DNA單鏈,很容易就能夠獲得雙螺旋中對應的另外一條鏈。只須要簡單得把鹼基換成它們的互補鹼基:A換成T、T換成A、C換成G、G換成C。由於DNA的書寫方向是從5’端到3’端,因此在對DNA互補以後,還須要把它反向寫出來才行。
GenBank(the Genetic Sequence DataBank)數據庫(http://www.ncbi.nlm.nih.gov)存儲着絕大多數已知的序列數據。咱們將會在第10章對GenBank進行詳細介紹。
蛋白質和DNA相似,它們也是聚合物,由數量不等的簡單分子組成一個⻓串。DNA是由四種核苷酸組成的,而蛋白質則是由20中氨基酸構成的。這些氨基酸出現的順序並不固定,它們的名字和單字⺟、三字⺟縮寫都羅列在了表4.2中。
氨基酸由氨基基團和羧基基團構成。相鄰氨基酸的氨基基團和羧基基團會造成化學鍵,叫作肽鍵。氨基酸都有從⻣幹上突出出來的側鏈,20種氨基酸的側鏈各不相同。側鏈的化學屬性在決定蛋白質屬性方面起着關鍵做用。
蛋白質一般有比DNA更加複雜的3D結構。肽鍵有至關大的旋轉自由度,從而容許蛋白質造成多種3D結構。和DNA的雙螺旋結構不一樣,蛋白質能夠由一條或多條由氨基酸組裝成的肽鏈構成,而且能夠摺疊成各類不一樣的形狀。蛋白質的氨基酸序列叫作蛋白質的一級結構,一級結構捲曲造成的α-螺旋、β-摺疊和轉⻆等局部結構叫作二級結構,最終的摺疊和組裝叫作蛋白質的三級結構和四級結構(參看第11章)。
可利用的蛋白質一級序列數據要比二級結構或高級結構的數據多。事實上,有大量的蛋白質一級序列數據可供使用(由於大量的DNA已被測序,從DNA中識別出蛋白質的一節序列並非很是困難)。
PDB(Protein Data Bank)數據庫儲存着成千上萬個蛋白質的結構信息,這些信息都是最近幾十年的工做成果積累起來的。咱們將在第10章詳細介紹PDB,固然你也能夠先去PDB的網站(http://www.rcsb.org/pdb/)逛逛,熟悉一下這個最爲基本的生物信息學資源。
最近,in silico這個新詞已經成爲指代在計算機中進行生物學研究的專用術語,和in vivo、in vitro這兩個傳統術語一塊兒來描述進行實驗研究的位置。
對於非生物學家來講,in vitro表示「在玻璃中」,換言之,在實驗試管中;in vivo則表示「在生命中」,換言之,在生物活體內。in silico這個術語的由來,源於大多數計算機芯片主要是由硅構成的這個事實。就我我的而言,我更喜歡in algorithmo這樣的術語,畢竟有許多不須要基於硅的計算方法,像DNA計算、量子計算、光學計算等奇妙的計算過程。
能夠在線獲取的大量生物學數據,使得生物學研究處於和物理學、天文學相相似的境地。在這些學科中,基於現代儀器的實驗會產出海量的數據,爲了分析處理這些數據,計算機不只是無價的,並且是必需的。事實上,在計算機中對實驗進行徹底模擬是很是有可能的。好比,物理學中用計算機進行模擬的一個早期應用,就是對音樂廳的聲學進行建模,經過改變音樂廳的設計來研究最終的聲學效果,這顯然比經過建造數十個音樂廳來檢驗聲學效果要廉價的多。
自從計算機問世以來,在生物學中也發生着相似的轉變,隨着HGP和對多種生物DNA測序的進行,這種趨勢在近幾年急劇加大。須要收集、檢索和分析的實驗數據對單個生物學家來講實在是太過巨大了,這就迫使生物學家使用計算機來處理這些信息。
除了生物學數據的存儲和提取,如今經過計算機模擬來研究生命系統也已經成爲可能。獲取人類和其餘一些生物的基因,這已經成爲計算機標準且常規的處理。當肯定DNA的序列後,能夠把它們存儲在計算機中,而後寫程序來識別限制酶切位點、進行限制酶切消化、製做限制酶圖譜(參看第9章)。與之相似,基因識別程序能夠從測序的DNA中識別出潛在的外顯子和內含子。(到本書撰寫之際,並非很精確,不一樣生物的識別結果差別很大。)也能夠對細胞過程進行建模,利用該模型來研究如基因調控變化的影響等生物學過程。
如今,利用芯片技術(玻璃片上點上數千個樣本,利用儀器進行檢測)僅僅經過一次實驗就能夠得到成千上萬個基因的表達水平。藉助計算機來解析基因之間複雜的相互做用。好比,咱們指望可以找到全部相關的基因,在細胞中它們經過蛋白質產物參與相同的生化途徑。芯片會產出海量的數據,和其餘實驗數據不一樣,這些數據須要在計算機中進行存儲和分析。
在我進入⻉爾實驗室成爲程序員的第一天,我導師就告訴我,他的模擬計算速度太快了——僅需過夜就可完成,但這卻讓他頭疼,由於他沒有足夠的時間來分析上一次的模擬了!儘管計算機有着各類使人頭疼的問題和陷阱,但使用計算機來模擬實驗確實給生物學帶來了極大的益處。
計算機科學中一些很是有趣的結果證實了人類知識的侷限性。在生物學中有一些開放性的問題,有人認爲利用更多的計算資源就能夠解決這些問題,但這並不老是對的,由於有些問題自己就是無解的,換句話說,它們不可能被任何程序解決。此外,有些問題也許是能夠解決的,可是隨着問題量的增⻓,在實際中是無法解決這些問題的。這樣的問題是不治的,稱爲NP徹底。即便使用百萬臺計算機,每臺的計算能力都是如今最強大計算機的一百萬倍,也有可能須要十億年才能計算出一個NP徹底問題的答案。
你有可能會遇到NP徹底問題,但這是很是罕⻅的,你的選擇就是別去招惹這種沒法解決的問題。我說起它們更多的是由於有趣,而不是由於菜⻦程序員在實際中會遇到這樣的問題。但隨着你在程序員的路上越走越遠,嘗試更多複雜程序的時候,這些侷限,尤爲是某些生物學問題的不治本性,會對你的編程產生實質性的影響。
參與計算機編程和生物學最使人興奮的事情之一是這兩個領域都有豐富的新技術和結果。
固然,生物學是一門古老的科學,但生物學研究中許多最有趣的方向都是基於最近的技術和思想。現代科學遺傳學在現代生物學中佔有突出地位,距離孟德爾做品的普遍承認僅約100歲。闡明脫氧核糖核酸(DNA)和第一種蛋白質結構的結構已有50年曆史,克隆DNA的聚合酶鏈反應(PCR)技術已有近20年的歷史。在過去的十年中,人類基因組計劃的啓動和完成揭示了人類基因的所有和更多。今天,咱們處於生物學研究的黃金時代 - 人類歷史上具備重要醫學,科學和哲學重要性的一個點。
計算機科學相對較新。算法自古以來就存在(Euclid),對計算機器的興趣也很古老(例如Pascal的機械計算器,或者巴貝奇在19世紀的蒸汽驅動發明)。但編程實際上誕生於大約50年前,同時構建了第一臺大型可編程數字/電子(ENIAC)計算機。編程發展很是迅速,直到今天。互聯網已有20年曆史,我的電腦也是如此;網絡已有10年曆史。今天,咱們的通訊,交通,農業,金融,政府,商業,藝術,固然還有科學事業都與計算機及其編程密切相關。
這種快速和近期的增加給計算機編程領域帶來了必定的興奮,並要求其專業從業者保持警戒。在某種程度上,編程表明了程序性知識 - 關於如何作事的知識 - 以及在咱們的社會和歷史中看待計算機重要性的一種方式是看到計算機使用所帶來的程序性知識的巨大增加。咱們也看到計算和算法的概念被普遍採用,例如,在藝術和法律中,固然還在科學中。計算機已成爲解釋事物的統治隱喻。固然,用一種特殊的計算機器來思考細胞的分子生物學是很誘人的。
一樣,生物學中的顯着發現也在計算機科學中獲得了迴響。有進化程序,神經網絡,模擬退火等。生物學和計算機科學領域之間的思想和隱喻的交換自己就是對發現的刺激(儘管使用不正確的隱喻的危險也是真實的)。
參考資料