如何自學生物資訊學
來源:知乎—如何自學生物資訊學
在生物資訊的坑裡面呆了好幾年,發現生物資訊的定義越來越模糊了,就像我剛入行的時候一個師兄對我說的那樣,中關村賣電腦的如果賣給學生物的了,就說自己是做生物資訊的。
同樣,我現在在寫一些軟體,設計一些算法,也說自己是做生物資訊的。
資訊系一些做體系結構和GPU編程的也會做一些生物資訊的硬件加速算法,他們也說自己是做生物資訊的,畢竟文章都發到了Bioinformatics雜誌上了。
如果你想學生物資訊中的算法設計,那恭喜你,加州大學聖地牙哥分校的一系列課程正合你的胃口,Coursera - Free Online Courses From Top Universities 。這些算法包括字符串算法,圖論算法,隨機化算法等等。
你的提問中發現你想學習如何處理數據。
這也是生物資訊的另一個教派,整合已經發表的軟體處理數據,也說自己是做生物資訊的,我想你可能想點這個技能點。有點複雜,因為生物有太多研究方向了,做基因的,做蛋白的,做進化的,做結構的,做發育的。每個分支又發表了很多軟體,而且很多不好用,好用的有些又過時了,沒過時的準確率也不見得有多高。
如果你能給我一個你的研究方向,我可以給你介紹一些很好用的軟體。
用軟體有幾個挺麻煩的問題,有些軟體安裝很麻煩,依賴程序庫很多,這個東西說實在的如果你沒有編譯背景有時候碰到了很難搞定,簡單的辦法就是直接給作者發郵件,一般作者想讓自己軟件的引用率高,所以發郵件都是秒回,如果作者博士畢業了,忽略此條。所以新的軟體,作者必回郵件。
用軟體另一個問題就是參數怎麼設置,這個其實挺麻煩的,因為有時候你要理解背後的算法,可是這個對於學生物的同學來說太難了,這個其實是軟體用戶體驗不好,軟體作者閉門造車。Bioinformatics上還有很多文章說參數怎麼選的,比如基因組拼接的時候,kmer的選取。
軟體使用講完了,有些格式轉化,pipeline的,可能一個軟體做不了,就要你寫點腳本來完成這些事情,如果你只是想完成這點東西,那麼學python就足夠了,一個簡明的python教程就是dive into python。網上免費。
先寫這麼多,有時間了再補充和整理。
————————————————————————————
加一個彩蛋,昨晚party和一個學數學的人聊天:
大神:做什麼方向啊?
---- 生物計算
大神:用偏微分方程模擬嗎?
---- 不是啊,就用基礎算法,加一點machine learning
大神: 你這不就是生物資訊嘛,怎麼能說自己做生物計算的
然後大神一臉鄙夷地憤然走開,留我愕然在原地
————————————————————————————
先說一下自己吧,我碩士讀的是細胞生物學,今年4月開始在boss要求下自學perl,打聽了下,<learning perl>這本書不錯,就買來開始看,等5月份去北京參加公司的培訓班時,<learning perl>讀了一遍,<intermediate perl>看了一部分。培訓回來,我們的項目就開始做了,9月拿到所有原始數據和分析結果。然後,我對照著公司的分析報告,試著自己走一邊分析流程,中間遇到問題,自己解決不了的,就發郵件求助。有幾點需要注意:
1. 我能理解你想早些玩兒數據的願望,但是在這之前,最好要有一個outline。需要知道數據從哪兒來的,怎麼產生的?其實就是測序儀的工作原理。然後是數據質量檢驗,為什麼需要數據過濾?接著是reads拼接和組裝。總之,要對整個流程有一個認識,而後在學習的過程中,再不斷回頭對比這個流程,這樣才不會有迷失的感覺。[這本書](Bioinformatics for High Throughput Sequencing)推薦看一下。
2. 有了基礎知識的鋪墊,就可以嘗試著自己做些練習了,paper上面都會給出他們的數據、原碼地址,可以找來自己試試,先看看自己能不能做出一樣的效果。當然,這時要是你手裡正好有項目,那就更好了。
3. 學生物資訊,paper肯定是要跟蹤的。這兩個網站可以經常看一下:
[homologous](Homologus - Frontier in Bioinformatics) 覆蓋生物信息有趣的論文, 算法,以及生物科學問題。這個網站還匯集了很多生物信息領域科學家的博客。再如BGI的主程羅瑞邦, SAMtools、BWA的作者Heng Li都有在這裡出現。
[RNA-Seq Blog](RNA-Seq Blog) 推薦新的論文、工作、培訓課程、大型會議等。
如果你是生物背景的,那麼計算機方面的知識需要補一下:
- 需要能在linux環境下舒服的工作。比如從源碼編譯安裝軟件、PATH配置,再比如舒服地使用google找到問題的答案 :-)
- 學會使用python/perl。比如有的時候運行一個軟件老是報錯,可能就是因為在一個包含幾十萬行的文本文件裡,有隨機的那麼幾千行的末個位置,多一個冒號,[就像這裡](using HTSeq | popucui), 這時候你知道需要怎麼做了?
- 學會R。要從一大堆基因裡面找出表達水平變化的基因來,需要統計分析和顯著檢驗;而要把我們的數據更直觀地展示出來,最好的方式就是圖形了吧。這兩個需要,R都能滿足。當然matlab也是可以的,區別在於R是開源工具。
- 具備了上述技能,那麼常用的軟件就能用起來了。隨著學習的深入,可能你的問題別人也沒遇到過,這時候就需要自己動手,要麼修改現成的工具,要麼自己做一個出來。這時候,除了python/perl,或許還可以學學C/C++/java,或許需要研究下比如BWT、De Bruijn Graph背后的原理。
————————————————————————————
現在有諸多的網絡課程,所以你可以自學的。
PLOS Computational Biology: An Online Bioinformatics Curriculum
這個鏈接很全,很實用
————————————————————————————
必學:1、計算機基礎(linux+perl+R 或者 python+matlab)
2、生物資訊基礎知識(測序+數據庫+數據格式)
3、生物資訊研究領域(全基因組,全轉錄組,全外顯子組,捕獲目標區域測序)
4、生物資訊應用領域(腫瘤篩查,產前診斷,流行病學,個性化醫療)
分而治之:
一、計算機基礎,需要看三本書,一步步的學會學通,不需要刻意去找哪個書,一般linux是鳥哥私房菜,perl是小駱駝咯,R是R in action,但是看一本書只能入門,真正想成為菜鳥,必須每個要看五本書以上!我云盤裡面有這基本上的高清打印版,大家可以去淘寶打印一下才幾十塊錢還包郵,對書比較講究的也可以買正版,也不過是一百多塊錢而已!
二、生物資訊基礎知識,測序方面,在百度文庫找十幾篇一代二代三代測序儀資料仔細研讀,然後去優酷下載各大主流測序儀的動畫講解,再看看陳巍學基因的講解;數據庫先看看三大主流資料庫——NCBI,ENSEMBL,UCSC,還有一些也可以了解一些(uniprot,IMGT,KEGG,OMIN,TIGR,GO)同樣也是百度文庫自己搜索資料,但是這次需要自己去官網一個個頁面點擊看,一個個翻譯成中文理解吃透;資料格式講起了就多了,這個主要是在項目流程中慢慢學,或者你有機會去上課,不然你看來也是立馬忘記的,主要有sam,vcf,fasta,fastq,bed,gtf,gff,genbank,ensembl,psl等等
三、生物資訊研究領域,各個領域主要是軟體繁多,合起來常用的估計有上百個軟件了,一般只有從業五六年以上的人才有可能把它們全部用過一遍,而且這也完全需要項目來訓練,而不能僅僅是看看軟體手冊,但是研究領域最重要的是背後的原理,需要看各大牛的綜述。
a) 生物資訊基礎軟件(blast++套件,fastqc,flash,blast,solexaQA,NGS-QC-toolkit,SRA-toolkit,fastx-toolkit)
b) snp-calling相關軟件(bwa,bowtie,samtools,GATK,VarScan.jar,annovar)
c) 基因組相關軟件(velvet,SOAPdenovo2,repeatmasker,repeatscount,piler,orthMCL,inparanoid,clustw,muscle,MAFFT,quickparanoid,blast2go,RAxML,phyML)
d) 轉錄組相關軟件(trinity,tophat,cufflinks,RseQC,RNAseq,GOseq,MISO,RSEM,khmer,screed,trimmomatic,transDecoder,vast-tools,picard-tools,htseq,cuffdiff,edgeR,DEseq,funnet,davidgo,wego,kobas,KEGG,Amigo,go)
四、生物資訊應用領域,講這一塊其實已經脫離了生物資訊菜鳥的解釋範圍了,主要是想說社會上為什麼需要搞生物資訊的人才,全是因為在腫瘤篩查,產前診斷,流行病學,個性化醫療等領域有所應用,可以造福人類!!!這方面政策不確定,產業不定型,所以也這絕對是藍海,但是也絕對不會有現成的資料直接培訓人才,我們必須關注各種微信公眾號,逛各種測序,醫學相關論壇,緊跟業界精英的腳本,同時追著大牛的文獻閱讀,如此這般才能保住菜鳥的身份!
————————————————————————————
生物資訊學有兩方面意義:
基於生物問題導向的和基於設計算法解決某類抽像過的生物問題的。
基於生物問題導向,主要還以訓練對生物問題的理解為主,同時了解些簡單的編程,如R, python,了解那些算法可以處理你當前的問題。
另一個方向是基於算法設計的,需要把一些抽像過的生物問題解決的更好,比如eqtl,gwas,sequence alignment 等等,這些需要比較過硬的數學和算法基礎。
————————————————————————————
從工科轉到生物信息學來,講一下自己的經歷。
首先得了解生物資訊學做什麼。推薦一本入門的書:《探索基因組學、蛋白質組學和生物資訊學》,這本書基本上把現在用到的生物資訊的基本技術講了一遍。
然後是學會如何應用現有的工具。現在有很多已經寫好的工具,只要會看幫助文檔,對於解決手頭的工作是提供了相當大的幫助。
如樓上講的一樣,學習一門語言。python,perl,R,都可以,只要能夠幫自己解決問題就好。
因為你是生物學出身,所以能夠理解工具背後的含義。對於像我一樣從工科轉到生物信息方向的,需要好好了解生物學的意義。有助於更好的完成工作。
國內的相關論壇確實不多,相應的幫助可以去查看工具和數據庫的文獻。試試用英文解決問題~
在生物資訊的坑裡面呆了好幾年,發現生物資訊的定義越來越模糊了,就像我剛入行的時候一個師兄對我說的那樣,中關村賣電腦的如果賣給學生物的了,就說自己是做生物資訊的。
同樣,我現在在寫一些軟體,設計一些算法,也說自己是做生物資訊的。
資訊系一些做體系結構和GPU編程的也會做一些生物資訊的硬件加速算法,他們也說自己是做生物資訊的,畢竟文章都發到了Bioinformatics雜誌上了。
如果你想學生物資訊中的算法設計,那恭喜你,加州大學聖地牙哥分校的一系列課程正合你的胃口,Coursera - Free Online Courses From Top Universities 。這些算法包括字符串算法,圖論算法,隨機化算法等等。
你的提問中發現你想學習如何處理數據。
這也是生物資訊的另一個教派,整合已經發表的軟體處理數據,也說自己是做生物資訊的,我想你可能想點這個技能點。有點複雜,因為生物有太多研究方向了,做基因的,做蛋白的,做進化的,做結構的,做發育的。每個分支又發表了很多軟體,而且很多不好用,好用的有些又過時了,沒過時的準確率也不見得有多高。
如果你能給我一個你的研究方向,我可以給你介紹一些很好用的軟體。
用軟體有幾個挺麻煩的問題,有些軟體安裝很麻煩,依賴程序庫很多,這個東西說實在的如果你沒有編譯背景有時候碰到了很難搞定,簡單的辦法就是直接給作者發郵件,一般作者想讓自己軟件的引用率高,所以發郵件都是秒回,如果作者博士畢業了,忽略此條。所以新的軟體,作者必回郵件。
用軟體另一個問題就是參數怎麼設置,這個其實挺麻煩的,因為有時候你要理解背後的算法,可是這個對於學生物的同學來說太難了,這個其實是軟體用戶體驗不好,軟體作者閉門造車。Bioinformatics上還有很多文章說參數怎麼選的,比如基因組拼接的時候,kmer的選取。
軟體使用講完了,有些格式轉化,pipeline的,可能一個軟體做不了,就要你寫點腳本來完成這些事情,如果你只是想完成這點東西,那麼學python就足夠了,一個簡明的python教程就是dive into python。網上免費。
先寫這麼多,有時間了再補充和整理。
————————————————————————————
加一個彩蛋,昨晚party和一個學數學的人聊天:
大神:做什麼方向啊?
---- 生物計算
大神:用偏微分方程模擬嗎?
---- 不是啊,就用基礎算法,加一點machine learning
大神: 你這不就是生物資訊嘛,怎麼能說自己做生物計算的
然後大神一臉鄙夷地憤然走開,留我愕然在原地
————————————————————————————
先說一下自己吧,我碩士讀的是細胞生物學,今年4月開始在boss要求下自學perl,打聽了下,<learning perl>這本書不錯,就買來開始看,等5月份去北京參加公司的培訓班時,<learning perl>讀了一遍,<intermediate perl>看了一部分。培訓回來,我們的項目就開始做了,9月拿到所有原始數據和分析結果。然後,我對照著公司的分析報告,試著自己走一邊分析流程,中間遇到問題,自己解決不了的,就發郵件求助。有幾點需要注意:
1. 我能理解你想早些玩兒數據的願望,但是在這之前,最好要有一個outline。需要知道數據從哪兒來的,怎麼產生的?其實就是測序儀的工作原理。然後是數據質量檢驗,為什麼需要數據過濾?接著是reads拼接和組裝。總之,要對整個流程有一個認識,而後在學習的過程中,再不斷回頭對比這個流程,這樣才不會有迷失的感覺。[這本書](Bioinformatics for High Throughput Sequencing)推薦看一下。
2. 有了基礎知識的鋪墊,就可以嘗試著自己做些練習了,paper上面都會給出他們的數據、原碼地址,可以找來自己試試,先看看自己能不能做出一樣的效果。當然,這時要是你手裡正好有項目,那就更好了。
3. 學生物資訊,paper肯定是要跟蹤的。這兩個網站可以經常看一下:
[homologous](Homologus - Frontier in Bioinformatics) 覆蓋生物信息有趣的論文, 算法,以及生物科學問題。這個網站還匯集了很多生物信息領域科學家的博客。再如BGI的主程羅瑞邦, SAMtools、BWA的作者Heng Li都有在這裡出現。
[RNA-Seq Blog](RNA-Seq Blog) 推薦新的論文、工作、培訓課程、大型會議等。
如果你是生物背景的,那麼計算機方面的知識需要補一下:
- 需要能在linux環境下舒服的工作。比如從源碼編譯安裝軟件、PATH配置,再比如舒服地使用google找到問題的答案 :-)
- 學會使用python/perl。比如有的時候運行一個軟件老是報錯,可能就是因為在一個包含幾十萬行的文本文件裡,有隨機的那麼幾千行的末個位置,多一個冒號,[就像這裡](using HTSeq | popucui), 這時候你知道需要怎麼做了?
- 學會R。要從一大堆基因裡面找出表達水平變化的基因來,需要統計分析和顯著檢驗;而要把我們的數據更直觀地展示出來,最好的方式就是圖形了吧。這兩個需要,R都能滿足。當然matlab也是可以的,區別在於R是開源工具。
- 具備了上述技能,那麼常用的軟件就能用起來了。隨著學習的深入,可能你的問題別人也沒遇到過,這時候就需要自己動手,要麼修改現成的工具,要麼自己做一個出來。這時候,除了python/perl,或許還可以學學C/C++/java,或許需要研究下比如BWT、De Bruijn Graph背后的原理。
————————————————————————————
現在有諸多的網絡課程,所以你可以自學的。
PLOS Computational Biology: An Online Bioinformatics Curriculum
這個鏈接很全,很實用
————————————————————————————
必學:1、計算機基礎(linux+perl+R 或者 python+matlab)
2、生物資訊基礎知識(測序+數據庫+數據格式)
3、生物資訊研究領域(全基因組,全轉錄組,全外顯子組,捕獲目標區域測序)
4、生物資訊應用領域(腫瘤篩查,產前診斷,流行病學,個性化醫療)
分而治之:
一、計算機基礎,需要看三本書,一步步的學會學通,不需要刻意去找哪個書,一般linux是鳥哥私房菜,perl是小駱駝咯,R是R in action,但是看一本書只能入門,真正想成為菜鳥,必須每個要看五本書以上!我云盤裡面有這基本上的高清打印版,大家可以去淘寶打印一下才幾十塊錢還包郵,對書比較講究的也可以買正版,也不過是一百多塊錢而已!
二、生物資訊基礎知識,測序方面,在百度文庫找十幾篇一代二代三代測序儀資料仔細研讀,然後去優酷下載各大主流測序儀的動畫講解,再看看陳巍學基因的講解;數據庫先看看三大主流資料庫——NCBI,ENSEMBL,UCSC,還有一些也可以了解一些(uniprot,IMGT,KEGG,OMIN,TIGR,GO)同樣也是百度文庫自己搜索資料,但是這次需要自己去官網一個個頁面點擊看,一個個翻譯成中文理解吃透;資料格式講起了就多了,這個主要是在項目流程中慢慢學,或者你有機會去上課,不然你看來也是立馬忘記的,主要有sam,vcf,fasta,fastq,bed,gtf,gff,genbank,ensembl,psl等等
三、生物資訊研究領域,各個領域主要是軟體繁多,合起來常用的估計有上百個軟件了,一般只有從業五六年以上的人才有可能把它們全部用過一遍,而且這也完全需要項目來訓練,而不能僅僅是看看軟體手冊,但是研究領域最重要的是背後的原理,需要看各大牛的綜述。
a) 生物資訊基礎軟件(blast++套件,fastqc,flash,blast,solexaQA,NGS-QC-toolkit,SRA-toolkit,fastx-toolkit)
b) snp-calling相關軟件(bwa,bowtie,samtools,GATK,VarScan.jar,annovar)
c) 基因組相關軟件(velvet,SOAPdenovo2,repeatmasker,repeatscount,piler,orthMCL,inparanoid,clustw,muscle,MAFFT,quickparanoid,blast2go,RAxML,phyML)
d) 轉錄組相關軟件(trinity,tophat,cufflinks,RseQC,RNAseq,GOseq,MISO,RSEM,khmer,screed,trimmomatic,transDecoder,vast-tools,picard-tools,htseq,cuffdiff,edgeR,DEseq,funnet,davidgo,wego,kobas,KEGG,Amigo,go)
四、生物資訊應用領域,講這一塊其實已經脫離了生物資訊菜鳥的解釋範圍了,主要是想說社會上為什麼需要搞生物資訊的人才,全是因為在腫瘤篩查,產前診斷,流行病學,個性化醫療等領域有所應用,可以造福人類!!!這方面政策不確定,產業不定型,所以也這絕對是藍海,但是也絕對不會有現成的資料直接培訓人才,我們必須關注各種微信公眾號,逛各種測序,醫學相關論壇,緊跟業界精英的腳本,同時追著大牛的文獻閱讀,如此這般才能保住菜鳥的身份!
————————————————————————————
生物資訊學有兩方面意義:
基於生物問題導向的和基於設計算法解決某類抽像過的生物問題的。
基於生物問題導向,主要還以訓練對生物問題的理解為主,同時了解些簡單的編程,如R, python,了解那些算法可以處理你當前的問題。
另一個方向是基於算法設計的,需要把一些抽像過的生物問題解決的更好,比如eqtl,gwas,sequence alignment 等等,這些需要比較過硬的數學和算法基礎。
————————————————————————————
從工科轉到生物信息學來,講一下自己的經歷。
首先得了解生物資訊學做什麼。推薦一本入門的書:《探索基因組學、蛋白質組學和生物資訊學》,這本書基本上把現在用到的生物資訊的基本技術講了一遍。
然後是學會如何應用現有的工具。現在有很多已經寫好的工具,只要會看幫助文檔,對於解決手頭的工作是提供了相當大的幫助。
如樓上講的一樣,學習一門語言。python,perl,R,都可以,只要能夠幫自己解決問題就好。
因為你是生物學出身,所以能夠理解工具背後的含義。對於像我一樣從工科轉到生物信息方向的,需要好好了解生物學的意義。有助於更好的完成工作。
國內的相關論壇確實不多,相應的幫助可以去查看工具和數據庫的文獻。試試用英文解決問題~
留言
張貼留言