標籤:

學習生物信息學需要數學和計算機達到什麼程度?

我已大二,之前被相當於強制分到了生物技術(其原因較複雜),但一直對神經科學跟人工智慧感興趣。後來接觸到一些生物信息的東西,感覺這個能把生物學量化,帶向真正的科學層面。但是學校給生物技術的學生只安排了高數一門數學課,線代和概率統計都沒有上。計算機方面只學過c++和數據結構。我想下學期就進入生物信息的實驗室學習,不知道這個假期(目測零零散散加起來也只有一個月)是否應該先系統學習一些數學與計算機的基礎課程?不知道是否來得及?生物信息不會讓我失望的吧?


看實驗室。學點((perl or python)and R)

建議提早跟實驗室打招呼,了解研究方向/技能,早定實驗計劃

==============================

生信是一個很大的領域,按照我的觀察粗粗分來大概有:分子物理流、建模與統計流、演算法流、應用生物流、實用工具流、資料庫流。根據學生老闆背景的不同,同一個組可能專精於其中一個流派,也可能樣樣包攬。所以達到什麼程度還看具體的研究方向……

分子物理流:使用量子力學等手段對蛋白質/RNA等生物分子建模,預測結構、相互作用。這個方向的基礎課程是物理、數學系列+簡單的生化/分子生物學知識。基本是學物理的小夥伴不慎入坑

建模與統計流:按照行話說,這個方嚮應該叫做生物數學(生物統計)、計算生物學。他們傾向使用數學工具來模擬生物過程(如心房心室血流量建模)或者開創某些新的統計挖掘方法。基礎課程:高數(數分)、高代、概統、多元統計等數學課程,以及一兩門統計語言……基本是學數學的小夥伴不慎入坑

資料庫流:查文章,針對某一特定的領域收集數據,完善資料庫。基礎課程:無

演算法流:專門為某些生物問題設計演算法。比如BLAST、DAVID、PHYLIP……這個方向我研究不多,總之能把握到像BLAST一樣的機會,還是少之又少。基礎課程:數據結構與演算法分析、編程語言。

應用生物流:這個方向目前是生信裡面做的人最多的。這個方向一般從具體的生物問題出發,採用一系列軟體、資料庫,從宏觀上理解生物學(比如各種組學)。如果是在其中用到了預測工具,最後很有可能還要回歸到生物,用實驗驗證預測的可靠度。基礎課程:生物系列(生化、分子、遺傳,根據方向不同也有免疫、植物、生理等)+一兩門編程語言+統計語言。在這個方向,比較流行的語言是perl/python,統計語言是R。

實用工具流:做分子物理/建模/統計/演算法/資料庫的小夥伴終於有一天完成了自己的課題,想讓其他做生物的小夥伴使用自己的成果……於是就專門有一批小夥伴去做軟體/web server。基礎課程:.net/c++(本地化)+(html+css+python/php/asp+sql)(web化),如果實驗室沒有專門管理網路的,還可能會被抓壯丁做網路安全、伺服器、通訊等網路工程師的活兒(不過會了這些幹嘛要考慮在實驗室?可以考慮跑路了)……基本是學計算機的小夥伴不慎入坑

=====================================

推薦閱讀:

生物信息學一些基本的常用軟體有哪些?

什麼是生物信息學?生物信息學中計算機和大數據扮演什麼樣的角色?

上海生科院計算生物學夥伴研究所在成立的時候為什麼不叫生物信息學研究所?生物信息學和計算生物學有哪些區別?


看研究方向。

一個計算機系或者EE的生物信息實驗室,對你的數學和計算機要求會很高。

計算機方面:

1. 計算機體系結構,如果你的研究方向是序列比對的顯卡運算,那麼需要你掌握計算機體系結構的相關知識,我不是這個方向的磚家,但是這個方向比較偏硬體,緩存大小啊,GPU的運算等等好多需要考慮的。

2. 操作系統,如果你的研究方向是各種生物信息演算法的並行運算和大數據的分散式演算法,需要掌握分散式操作系統的相關知識。

以上兩個研究方向很少有文章發在Genome Research, Genome Biology, NAR,PNAS, Nature Method等這些雜誌上,他們甚至不參加ISMB,RECOMB這些生物信息學的頂級會議,有些人不把他們叫做生物信息。

3. 演算法設計和數據結構,相對於上面兩個研究方向,這個方向已經能夠接觸到更多的生物學知識了,但是對於演算法的設計要求仍然很高。包括基礎演算法,基礎數據結構,並行演算法的設計。

因為現在測序數據非常大,因此大數據的演算法應用非常廣泛,答主現在做的是概率數據結構和概率演算法,比如bloom filter, skip list, hyperloglog等,對statistics theory和probability theory的要求非常高。

4. 計算機圖形學,這個顯然是做蛋白質摺疊啊,RNA結構啊之類的方向。

5. 編譯原理,最主要的是自動機模型,會應用在一些模擬中,比如元胞自動機的模擬,細胞行為,進化的模擬上,自動機模型的paper讀到過很多。但是你在寫代碼的時候偶爾也要考慮下編譯器的感受啊。

6. 語言實現,包括應用級別的模式識別,機器學習演算法的庫。最常用的包括Java,C++(為了保證運行效率)以及Python的腳本,有些人會用R寫一些Biocondutor的庫,也能發在Bioinformatics上面。

7. Image Processing,最主要的應用包括microarray的處理,測序數據的處理。

8. 用戶體驗和人機交互,主要是做一些GUI程序和Visualiazation Tool的人會考慮這些東西。

9. 資料庫,做個網站或者資料庫,呵呵,如果這也算生物信息的話。。

數學方面:

1. 離散數學,主要應用是mapping和assemblying的圖論演算法

2. 概率論和統計,主要研究包括error correction以及一些k mer based的演算法。但是很多paper都會搞一些概率模型在裡面,更多的是統計系做生物統計的人做的,暫時認為生物信息不包括生物統計。但是因為大數據的關係,我上面提到的,概率演算法和概率數據結構的應用十分廣泛。

3. 矩陣運算,包括線性代數的一般運算,這應用在計算機圖形學的演算法中,還有比如模式識別演算法等需要矩陣的微分和積分運算。這就牽扯出下面的:

4. 微積分, 很多人都覺得生物信息包括計算機演算法很少運用到微積分模型,但是由於生物裡面有個什麼理論說所有的進化啊蛋白質摺疊都遵循能量最小,就搞出來個信息熵的概念,以及很多地方的minimum likelihood演算法對概率計算的要求,微積分的應用也有很多。

我上面提到的這些只是泛泛說了下,並舉了幾個研究方向的例子,如果詳細說可能要說很多很多,不是數學專業的,對數學的整體架構和分類理解都不深。

但是生物實驗室,以及bioinformatics phd program,很多對計算機和數學要求極低。。但是program要求低不代表學生水平不行!!身邊很多人都修了統計或者計算機的雙學位。


學到夠用的程度。

你要解決什麼問題決定了你需要學習哪些語言演算法等,從實用性出發,系統性地學習可以先放一放了。


我是來吐槽「能把生物學量化,帶向真正的科學層面」的。


學好數學,編程學C++,夠你轉行用了。


分享一下自己的經歷,下面純粹是自我感受,沒有任何參閱。

答主基礎數學出身,現在在做生物信息學,數學知識和計算機水平真的是非常兩個方面。

但是不見得要達到精通這兩方面才能學好生物信息學(注意我只是說的學好這個層面,想要獨立的搞自己的項目,我還不知道要達到什麼高度。)

數學方面 至少要有 數學分析(微積分)和高等代數(線性代數)墊個底,這樣你才能看懂別人paper 中的公式推導嘛,然後概率論和統計學知識還有一點隨機是不可缺少的,否則演算法也看不懂。有了這些東西,起碼你可以有一定的把握弄明白技術核心的內容。

計算機水平 我自己基本是個菜鳥,尤其是在剛開始的時候,但是可能由於是學數學的,雖然不會,但總是充滿自信自己可以解決所有的問題,所以就無知者無畏了一番。 你不需要精通某一門語言,但是一個項目落在你手裡的時候,不論用什麼語言編程,你要清楚的知道你的input 是什麼,output 又是什麼, 然後可能要用到什麼樣的邏輯結構, 之後再慢慢的學習怎樣寫,怎樣優化,怎樣讓代碼更加有可讀性。就行了。

我個人認為,想要獨立的做研究,一些生物化學知識是必要的,數學和編程知識研究手段,而生物信息學的研究對象是一個個生物結構,分子結構,你總要有所了解才對吧。

每當在做project時,我感覺自己處在一個很妙的微觀世界裡


王君yi前輩說的很好。其中提到的應用生物流是目前最容易接觸到的。生物信息學基本情況可以從教科書快速入手,我們用的是清華出版社許忠能的。如果想要了解真人和真正的實驗室的話,推薦你去昆明動物所問問。我在那裡度過了一個暑假,有個比較深刻的了解。說句公道話,就我圈子裡問到的情況來說,那兒的一些實驗室是應用流做的最好的,放在中國的科研機構來說。而且那裡的團隊在投身產業化奮鬥的熱情、執行力、知識水平、資金基礎方面,我認為是相當優秀的。

我看你的描述,應該是處在一種完全不了解該學科的情況。不過問題回答過去那麼久了,應該有所了解了吧。弄明白自己想做的事情是什麼樣子、什麼特點的事情,這會有助於你發現自己真正會喜歡的發展方向/職業方向。這也是我目前經歷的思慮的過程。經過大量的調研來了解不同行業後,我開始體會到現在的茫然需要更多的智慧和超出我這個年齡的經驗才能解答。我所能做的,就是儘可能的去問,問一切問得到與有用的人,去調研,去了解,不僅是對職業或科研方向,更是對自己的能力、性格特點。


學過並做過實驗 動物學植物學分子生化遺傳生態基因組

看過高代抽代點拓數分實復變常微泛函數理統計

計組java cpp python r 演算法 資料庫 os 網路 統計學習

這樣就有點上道了 最好日均一篇paper看下來


如果要進實驗室,跟師兄師姐詢問需要掌握的基礎知識,軟體,實驗技能。在大致了解的基礎上,選擇重點,深入了解。


只是在實驗室的話,推薦還是先把線代概統這些專業課自學一下。所有的編程語言和軟體,都是可以邊用邊學的。但是如果基礎知識跟不上,在後面所有的努力都會事倍功半。而且,這些也是你不太可能指望在實驗室補到的東西。

話說你們學校對生技的孩紙這麼不負責任真的沒問題么。。。


跟人工智慧相關的是神經信息學吧(認知神經科學啥的)


LZ可以試試生物信息學,不過和人工智慧/神經科學不想關。試了要是沒興趣及早抽身,不如去看看CS/BME.


真是說幾句話就知道水平了,匿了


看你自己的意願了,作為一個上了沒多久就堅定要轉行的人,當然是越多越好


生物信息學主要是對DNA蛋白質數據分析用的,貌似和人工智慧關係不怎麼搭邊啊。生物信息學已經學過了,對於數學,計算機什麼的要求不是很高啊,主要是掌握幾個軟體而已,DNAman什麼的,記住的就這些了。


推薦閱讀:

自學生物信息學是種怎樣的體驗?
GWAS研究中樣本數量和結果真實有效性之間的關係是怎樣的?
作為一名對生命科學的興趣被逐漸耗盡的生物學學生,前路該何去何從?
生物信息學就業前景和生物信息學研究工作者的就業方向?
Google 的 Quantum Computing Playground 可以用來做什麼?

TAG:生物信息學 |