人生苦短,我用Python

首先,非常感謝各位朋友的關注與支持,我們的生物信息學入門Live已經成功舉辦了4場,參與人數突破了1200人,並且獲得了全部的好評!非常感謝!

我們的知乎Live課程

在這4次課程中,我們學習了RNA-Seq的數據分析流程,學習了以ChIP-Seq數據分析為代表的表觀遺傳學數據分析,給大家介紹了人類基因組的相關結構與特徵,並給大家介紹了圖形化不用命令行進行高通量測序分析的流程。總的來說,我們進步很快!

我們已經完成了下面2個部分的入門學習

不過,做生物信息學,永遠邁不過的一個坎就是編程和腳本的書寫。因為,這個世界上,肯定肯定有人沒有寫過的生物信息學工具,並且我們在處理問題的過程中,一定會有特殊的需求。也正是因為這個原因,我們需要要選擇一門編程語言進行入門。


那麼,做生物信息學選擇什麼語言呢?

我們不妨把常用的幾種語言都列出來,說說他們到底適不適合做生信。

  • C
  • C++
  • JAVA
  • Perl
  • Matlab
  • R
  • Python
  • ... ...

我們其實還可以列出很多很多語言,比如世界上最好的語言PHP,但是畢竟不常用,我們也就不討論了。

先說C語言,太過於底層,現在搞生信的基本都不用C,所以Pass;

C++與Java都是非常完備的語言,非常適合寫性能要求比較高的程序,比如生信裡面的比對軟體幾乎都是這兩種語言寫的(BWA,Bowtie2,GATK等等)。但是對於我們入門來說,或者說以後的主要工作不是寫生信工具來說,C++和Java的學習曲線有一些過於陡峭,所以不推薦;

Matlab不是說不好用,是說太貴了買不起,所以不推薦;

R現在在各個領域有非常好的應用,但是,生物信息學的預處理過程,或者說是前期處理過程會涉及到大量的文本分析,而且文件也非常大。R去做文本處理的便捷程度真的是大打折扣。它的優勢在於後期的統計分析與圖像繪製,所以,對於基因組的分析,也不是特別推薦。

最後就是perl和python的比較了實話實說,在基因組序列分析的過程中,perl和python不分伯仲,甚至perl有的時候會有更簡潔的代碼實現(畢竟有非常無敵的哈希結構),但是我還是推薦大家入門學習python。因為python不僅僅能夠做生物信息學分析,還可以寫爬蟲,做機器學習,深度學習,搭建資料庫,搭建網站等等,這些都是perl不能比擬的。所以,學了perl,你學會了文本處理,但是學了python,你是學會了一種可以挖掘所有類型數據的工具!

綜上所述,我們打算進行Python的入門!


那麼本次知乎Live的主要內容都包括哪些?

本次知乎Live我們講為大家介紹以下幾部分的內容:

? Python的背景介紹

? Python的版本選擇

? Python擴展包的安裝與管理

? conda與bioconda

? Python的數據結構

? Python的語言結構

? 應用1:fasta與fastq格式的轉換

? 應用2:統計人類參考基因組的各染色體長度

? 應用3:統計人類參考基因組的各染色體未測序區域

? 應用4:統計人類參考基因組的CDS長度

? 應用5:統計人類參考基因組的gene密度分布

? 應用6:提取人類參考基因組特定區域的序列,並用fasta格式輸出

? 應用7:探索人類基因組GC含量與gene密度的關係


What else?

大家以為這就結束啦??不不不!本次Live不只是我一個人講!還有一位神秘的嘉賓( @路過的xxx )!為大家講解基於Python的數據處理流程的搭建!

什麼是數據處理流程?舉個簡單的例子,比如你有100個RNA-Seq數據要分析,用同樣的處理流程,如果你一次一次的提交代碼,那麼你需要提交100次,如果我們建立一個固定的處理流程,只需要更改輸入就可以讓程序自動一步一步運行,是不是非常棒?

比如我們有若干需要處理的RNA-Seq數據,每個數據都需要使用相同的流程

所以,對於剛開始入門生物信息的同學,我們推薦大家一步一步的運行程序,獲得結果,了解自己數據的每一步產出。

但是,在熟悉整套過程之後你會發現,很多時候分析數據都是一個重複的過程,使用相同的流程。

每一次的實驗設計不同就要不斷地改變自己寫的bash腳本來運行程序,這種重複繁雜的工作非常耽誤時間。隨著二代測序價格下降,各種測序數據爆炸增長,以後我們會有大量數據去挖掘,所以擁有能夠對大量的數據進行重複分析是非常有必要的。

因此,我們在這裡Live中,安排了專門的部分,為大家講解Pipeline的搭建,其中會涉及到snakemake工具。而snakemake,本身也是基於Python3的。

1個搭建好了的流程,總共處理了109個任務,非常好用!

我們選擇snakemake搭建pipeline的主要原因如下:

1. 代碼易讀,易於修改、重複利用

2. 可直接運行python代碼以及R代碼

3. 完善的任務運行判斷系統和斷點運行支持(上一個任務的文件產生後才執行下一個任務)

4. 完美支持集群的任務調度系統

而在本次Live中,我們將會介紹:

1. 介紹snakemake的基礎概念

2. 使用snakemake寫一個轉錄組的流程(tophat2 + cufflink + cuffdiff)

所以,快來享受,輸入測序結果,輸出差異表達的快感吧!


本次Live的時間與鏈接

2017年10月30日,晚7點我們不見不散!知乎Live鏈接:學習Python,做生信


之前的Live鏈接與主要內容

1. 知乎Live:如何快速入門生物信息學(涉及內容:測序原理,生物信息學發展歷史,軟體的安裝與調試,入門路線圖,介紹了RNA-Seq的分析流程並給出實踐代碼);

如何快速入門生物信息學

2. 知乎Live: 生信進階第1課-重複Nature文章 (涉及內容:肺癌相關研究現狀,RNA-Seq單細胞測序,RNA-Seq的建庫方法,RNA-Seq的分析流程細節,相關生信圖的繪製);

生信進階第1課-重複Nature文章

3. 知乎Live:生信進階第2課-基因組序列 (涉及內容:介紹基因組的序列結構,hg19與hg38的區別,ENCODE計劃,常用的表觀組學實驗原理ChIP-Seq,Hi-C等,ChIP-Seq的標準處理流程,繪圖原理)

生信進階第2課-基因組序列

4. 知乎Live:不用編程怎麼做生物信息學 (涉及內容:介紹生物信息學入門的幾個層次,從命令行到圖形界面再到命令行,繪製生物進化樹,圖形界面分析平台,使用圖形界面處理RNA-Seq數據,使用圖形界面分析ChIP-Seq數據,UCSC genome browser,WashU genome browser)

不用編程怎麼做生物信息學


推薦閱讀:

生物信息學課程
Mac 安裝Circos軟體
如何以Excel為基礎做RNA-seq 數據可視化分析

TAG:生物信息学 | 基因组学 | Python入门 |