想入生物信息學這個行業,python學習要達到什麼程度???


我以自己的3年的自學經歷,給跟著我學習生物信息的小夥伴親自出了13到題目,並邀請前輩錄製了視頻,分別是:

生信編程貼

01.生信編程很簡單 | 02.人類基因組的外顯子區域到底有多長

03.探索人類基因組序列 | 04.探索人類基因組注釋文件

05.多個同樣的行列式文件合併 | 06.根據GTF畫基因的多個轉錄本結構

07.下載最新版的KEGG信息並且解析 | 08.寫超幾何分布檢驗!

09.根據指定染色體及坐標得到參考鹼基 | 10.根據指定染色體及坐標得到位置信息

11.把文件內容按照染色體分開寫出 | 12.json格式數據的格式化

生物信息Python從入門到精通

我覺得你能把這些題目獨立完成,就說明在生物信息領域,你的編程能力大致是足夠來工作了。

當然,去做科研演算法還是不夠的。


24學時入門,數據管理著手。

概念語法熟悉,編程調試過關。

生物問題清楚,演算法統計明白。

科研實踐沉澱,入行水到渠成。


我打個比方你就明白了,我想入行分子生物學,請問移液槍的使用要學到什麼程度?在生信領域,編程語言大概也就是個做實驗不得不用的工具的地位,除了比用移液槍難學一點還有比移液槍功能多很多也沒差多少了


1、首先要解決的問題是自己能寫代碼解決問題。也就是說通過學習Python學會編程。

如何訓練自己的編程思路 - 通過python學會編程 - 知乎專欄

2、 再將編程用在生物計算上面。


其實入門這個東西也看你要做什麼樣的工作。

生物信息學涵蓋的範圍也是很廣的,我覺得目前而言做生信的主要有三類人:

1. 老本行是做實驗的,做生信可能是為了輔助研究或者是為了發paper(有非常多的臨床生選擇趟生信這波水)

2. 主要是做生信的,主要涵蓋高通量測序數據分析,組學數據分析等等,專門從事生物學數據分析的這群人,其大部分也是本科生物狗作為強大的生力軍,以調包寫R,python為主。那麼這群人就要熟悉看各種包的tutorial以及如何進行常規的數據的處理和分析等等。那麼其實這群人,我個人認為對python的編程要求不是很高,在coursera先上兩門課程,然後照著參考書在項目中練練就熟絡了。

3. 也是做生信的,但是主要以寫包為主,什麼意思?就是以開發演算法供給第二類人用,做這部分工作的人需要具有良好的數理基礎,所以一般大部分都是本科屬於物理,數學等理工科的人在做這部分工作。當然對編程也提出較高要求,另外更傾向於C++.相關的實驗室可以關注清華叉院以及自動化系那邊,還有同濟交大的實驗室。其實國外這方面的氣氛也很濃,我推薦一下普林斯頓的Han Liu,他主要是做probability graphic model,應用在biological network analysis很有意思。以及他開發的Stars演算法選擇正則化參數等等。

其實完全看題主以後做什麼樣的工作,我想也您也是第二類的方向,其實編程這種東西平時訓練一下都能有收穫,是真的投入和產出成正比的工作。那麼更核心的問題,是在於你基本的統計思維和結合生物學背景思考問題的能力。

補充一下,做第三類人當然也有本科學生物的,我就不說Fisher對統計學的意義了,我遇見的兩位老師,一位本科是農學的,phd在edinburgh讀biostatistics,研究方向是群體遺傳與進化,他的統計學基礎十分了得,我看了他的草稿各種複雜的公式方程。另外還有一位是queensland的Jian Yang,他研究領域包括數量遺傳,GWAS分析等等。也是從事software development的工作,他本科也是學生物的,題主有興趣可以QU的官網上看看他發過的paper,已經不知道發過多少篇Ng...

對了,上面兩位,沒有修相關學位,全靠自學,所以題主,要加油吶。


其實語言這個東西不必在乎精通哪門的,建議學一下基本的python語句,感受一下編程是怎麼編的,然後直接實戰就好了。很多時候都是出現了問題,所以去谷歌看教程看博客中學會的。

至少我學生信六七年下來,用的最多的不是python,但我的編程入門確實是py。

你後來選的領域,如果做數據純分析做圖像的大概python和R用的多一些;如果開發軟體,還是c和java好;如果像我一樣只是assembly,其實shell和perl才是好搭檔。

比如你想提取某個表格的第二列,在py里你要先讀文件,正則一下(或者用空格分割)讀取,shell裡面只要awk "{print $2}"就好了,R裡面也是比較方便的。

語言各有優點,所以只要學py學習一個編程的思想就可以了。


python有專門處理生信數據分析的biopython,學軟體我覺得要明白基本的操作,包括數據有哪些類型,處理的基本方法,演算法等,雖然生信分析不需要像專門的程序猿那樣厲害,但最基本的編程思想和操作還是要會的,而且還要有資料庫的基本思想。


這是根據我的學習整理的Python學習教程,涵蓋常用的基本操作和生信分析基礎的12道題。

瀏覽一遍,碰不到難點,就沒問題了。

  • Python學習極簡教程 (一)
  • Python學習教程(二)
  • Python學習教程(三)
  • Python學習教程 (四)
  • Python學習教程(五)
  • Python學習教程 (六)
  • Pandas,讓Python像R一樣處理數據,但快
  • Python解析psiBlast輸出的JSON文件結果
  • 為啥我的Python這麼慢 - 項查找 (二)
  • 為啥我的Python這麼慢 (一)
  • Python學習資源
  • 關於Python中的__main__和編程模板


用什麼查什麼,簡單的一匹,python要精通很難,但做生信真不用怎麼學


找本書,比如python 學習手冊,看一遍,大部分題目都會了。就可以了。重要是邏輯思維能力。找個自己感興趣的項目去做,做完絕對夠


python和R說白了就是給你打公式用的。。。根本就不重要

更重要的是熟悉生物基本概念,生物數據保存的結構還有各種統計學模型(包括機器學習)


1.簡單的本文處理,知道怎麼讀寫文件,dict、list等這些數據結構,會用pandas做兩個表的合併。

2.會用python寫workflows。

先學點python基礎的,找個轉錄組數據,一步一步分析,實踐就是最好的入坑手段。


本科時跟一位發過nature的海歸老師做生物信息學,老師不用python,不用R。語言只是工具,夠用就行了。


剛看到一個知乎問題,說本科清華,博士霍普金斯大學,回國找不到位置,生物方向。。。


編程語言都是工具 關鍵還是統計演算法和對生物學問題的理解


一般就可以,入行不要求你會編寫什麼需要演算法的程序,簡單的數據處理即可


推薦閱讀:

怎麼評價新發布的odoo 11 ?
2017,再來聊一聊Python,未來發展怎樣?
為什麼有人說 Python 的多線程是雞肋呢?

TAG:Python | 生物信息學 | R編程語言 |