當前位置:
首頁 > 最新 > 生信藍領,一個不捨得分享的高通量數據分析框架

生信藍領,一個不捨得分享的高通量數據分析框架

安裝bcbio框架

軟體安裝

配置參考基因組

流程配置

手動創建

腳本創建

簡單實戰

總結

當我跑完一些分析流程,比如說RNA-Seq,重測序分析以後,我就想到一句名言

能自動化的都要自動化,不能自動化的要實現半自動化

高通量數據分析發展到現在,大部分上游分析,比如說qc, alignment, snp-calling等都已經實現了自動化,這些部分如果再自己一行一行輸命令,不但浪費時間,而且缺少重複性。因此,我希望有那麼一個框架,能夠幫我完成所有的上游分析,從而集中精力解決生物學問題。

bcbio是一個GitHub上的社區項目,始於2009年,已經有將近8年的歷史了。目前這個框架在github上已經有了470個star,223個fork。 經過了那麼長時間的洗禮,我們就能比較放心的使用了。

它具有如下特點:

社區開發:開發過程是完全開放的並且由來自多個社區的貢獻者來共同維護。通過在共享框架上的協作,我們可以克服在迅速變化的研究領域維護複雜管道的挑戰。

可量化性:優秀的科學研究需要能夠準確地評估結果的質量,新的演算法和軟體成為可用。

可分析性:將結果導入工具使得查詢結果與可視化結果更加容易。

可擴展性:在分散式異構計算環境中處理大數據集以及樣本數據。

可復用性:跟蹤配置,版本,來源以及命令行以便對結果的調試、擴展以及復用。

易理解性:生物信息學家、生物學家和公眾能夠將研究材料、個人基因組的臨床樣本數據等各種數據作為輸入來運行整個工具。

bcbio-nextgen能實現如下全自動高通量測序數據分析流程:

Germline variant calling

Caner variant calling

Somatic with germline variants

Structural variant calling

RNA-Seq

fast RNA-Seq

single-cell RNA-Seq

smallRNA-Seq

ChIP-Seq

基本覆蓋了高通量組學所有領域。

不過,這個框架似乎在中國的知名度不高,谷歌結果中僅有一篇中文的相關介紹:bcbio-nextgen:一個為全自動高通量測序分析提供最佳實踐管道的工具,這篇文章發布在伯樂在線,是原文的翻譯,我從這篇文章中複製了5點特性。

我花了2天多時間研究了一下這個框架,本來希望它能減輕我以後的工作壓力,沒想到學習它也是非常的費勁。

安裝bcbio框架

: 建議在一個乾淨的Linux系統進行如下步驟,不然容易出現奇奇怪怪小問題。

: 建議在一個乾淨的Linux系統進行如下步驟,不然容易出現奇奇怪怪小問題。

: 建議在一個乾淨的Linux系統進行如下步驟,不然容易出現奇奇怪怪小問題。

bcbio有自己的一套安裝方法,也就是.

該文件做的事情為:

從官方下載安裝,國內推薦清華鏡像源。

根據requirement.txt的內容,用conda安裝包。這裡他添加了兩個channel。和。 國內依舊需要添加清華源

其中requirement就一行「bcbio-nextgen=1.0.5」

寫入系統配置 bcbio_system.yaml。

按照官方的要求,使用。這裡使用我修改的國內專享版,利用清華鏡像源加速,僅需要10~30 min的時間。海外用戶用原版。

出現如下輸出結果,說明安裝成功

同時會在家目錄下生成「bcbio」文件夾,包含如下內容

bcbio里的內容不完全一致,至少要包括,anaconda, config, galaxy,manifest。

軟體安裝

bcbio只是一個框架,你提供輸入文件,運行所需軟體的路徑,他負責用比較完善的流程幫你把結果跑出來。

安裝軟體這一步原本是可以在通過添加參數,自動完成。但是問題來了,默認的步驟會用他們自己開發的經由」biconda」和」conda-forge」下載軟體,速度就會非常的感人。因此,需要修改位於里的。

因此,你需要下載國內專享版然後對原文件進行替換。海外用戶用原版。

之後安裝就會比較塊, 即便如此,也要等比較長的一段時間。

這些軟體會以軟鏈接的形式放在

對於上面不能直接搞定的包, 可以模仿官方示例

經過這一步,所有高通量數據分析會用到的軟體基本都安裝完畢,可以繼續下一步。

配置參考基因組

可以下載模式生物的基因組,但是由於bcbio是由國外團隊開發,所以默認的下載地址不太友好,有些文件還有可能請求不到,動不動就會發生如下事故

於是只能先下載好數據,然後進行配置。這裡以擬南芥為例,同樣適用於任意非模式生物。

配置參考基因組從官方文檔來看,是比較複雜的活,需要考慮建立對應的基因組配置文件,形如。並且還需要模仿galaxy建立參考序列的文件結構。

然而,如果這一步不能自動化,還需要手工完成的話,這個框架可以直接丟了。所以,最簡單的方法就是

很不可思議,我就單純想搞一個bwa索引,最後卻 」bowtie2」, 」bwa」, 」tophat2」, 」kallisto」 等多個結果。真不知道源文件是怎麼寫的。

(PS:那命令裡面的-i參數幹嘛的呢?)

流程配置

流程配置,是非常重要的一步,關係到你的分析流程如何進行。你需要選擇比對軟體,質量控制工具,參考基因組等等。總之是,一著不慎半天白跑,然後就只能含淚。

有兩種方式可以配置流程,一種手動編寫配置文件,一種是基於已有模板進行替換。

手動創建

使用bcbio進行流程化分析比較重要的一步就是寫好樣本配置文件,如下是官方文檔的案例。

假設,手頭有一個雙端測序(PE)結果,用illumina TruSeq kit製備。現在需要進行RNA-Seq數據分析,那麼YAML文件可以這樣寫

和用於中間書文件的前綴, 因此按需設計。

: 結果文件存放處。可以結合galaxy

: 具體如何處理樣品,至少要聲明原始文件所在處(files),項目描述(description),參考基因組(genome_build),分析流程(analysis),所用演算法和工具(algorithm)。

這個部分用於調整流程分析流程的參數和工具。比如說,如果你的測序結果是2009年之前前,由於那時候質量令人擔憂,所以數據預處理非常必要。

如果有多個樣本,其實配置也很簡單,只要更改,如下

僅僅是需要複製一份,然後修改一下樣本的文件路徑而已。

腳本創建

當然,配置文件不需要自己每次都手動寫,其實提供了命令行建立配置文件的方法

參數說明:

freebayes-variant 是模板名

project1.csv 則是存放樣本的元數據,描述文件和需要調整的參數,以逗號分隔。不同列的解析規則如下:

samplename: 樣品命名,比較複雜,基本原則就是不要文件路徑,不要文件後綴,對於PE數據,取共同部分,也就是sample_1.fq, sample_2.fq,只保留sample

description: 項目信息

演算法參數: 只要列名符合Algorithm paramters

sample information: 不符合上述要求都被認為是樣本其他信息

額外內容:分隔數據會被解析成立標,或分別數據會被解析成字典

以上內容可能過於複雜,不需要太過糾結,可以通過簡單的實戰幫助理解。

簡單實戰

以我之前BSA分析所用的兩組數據為例,介紹如何使用框架進行SNP calling。

已有2組樣本, 放在bsa_analysi/work下:

bgreads_1.fq bgreads_2.fq fgreads_1.fq fgreads_2.fq

建立csv文件用於描述這些樣本

使用建立模板

這會在當前文件下新建如下內容

進入下運行,保證所有中間文件都在work中,輸入文件會存放後同級的。

運行一覽:

最後不幸在QC這一步出現了問題,我要繼續研究這個框架了。

總結

一個框架越是龐大,這個框架就越是脆弱。

當你在運行中出現了問題,想從這個框架中找到問題進行修改時,就需要理解這個框架的設計理念。

所以不建議新手去折騰這個框架,保證讓你懷疑人生。對於老手而言,大部分人都寫了一套自己的流程,所以需求性也不高。

於是這個框架的意義就變成讓你踩坑。因為你經歷的坑越多,你的經驗就越豐富。那些殺不死你的,只會讓你更強大,因此歡迎各位勇於作死

大家看不見的廣告: 鑒於這個框架坑太多,如果你在折騰過程中痛不欲生,可以加入我的知識星球(原小密圈)向我提問,目前還不提供上門服務。

綜上,總結一下這篇文章的所用命令

PS : 我們公眾號團隊力圖把所有好用的,可以運行的生物信息學流程詳細講解給大家,但是受限於文章字數,以及文字的表現能力,如果有傳達不完整的,請多多提建議哈。理論上一個初學者跟著我們的推文,仔細折騰七八個小時,跑幾遍公共數據,肯定就能學會這套流程了。當然,如果你基礎太差,或者悟性有限,可能需要多耗費點時間,畢竟每個人的背景不一樣。如果你還沒伺服器,那麼這些教程對你沒有用其實。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 生信技能樹 的精彩文章:

生信從業4年的一些感悟
探究某個基因的外顯子覆蓋度情況直播我的基因組87
亞馬遜雲教程5:安裝TensorFlow,運行MNIST
生信工作諮詢速遞-怎麼又是single cell?
亞馬遜雲教程4:安裝Anaconda,多python環境,運行jupyter notebook

TAG:生信技能樹 |