生信藍領,一個不捨得分享的高通量數據分析框架
安裝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:生信技能樹 |