本書(shū)主要內(nèi)容如下:
- 基因組學(xué)和計(jì)算科學(xué)背景知識(shí)。
- 云計(jì)算操作基礎(chǔ)。
- 帶你入門GATK和三個(gè)主要GATK實(shí)踐流水線。
- 用WDL語(yǔ)言編寫(xiě)工作流,用Cromwell系統(tǒng)管理工作流,實(shí)現(xiàn)自動(dòng)分析。
- 用并行技術(shù)在云端大規(guī)模執(zhí)行工作流,降低成本。
- 在云端用Jupyter筆記本做交互分析。
- 用Terra平臺(tái)實(shí)現(xiàn)安全協(xié)作和計(jì)算可復(fù)現(xiàn)。
近年來(lái),基因組學(xué)領(lǐng)域數(shù)據(jù)激增。未來(lái)幾年,美國(guó)國(guó)立衛(wèi)生研究院(NIH)等機(jī)構(gòu)將托管50多拍字節(jié)(或5000多萬(wàn)吉字節(jié))的基因組數(shù)據(jù)。它們已開(kāi)始利用云基礎(chǔ)設(shè)施托管數(shù)據(jù),以便將其開(kāi)放給研究社區(qū)使用。你如何改進(jìn)基因組分析工具和協(xié)議,才能訪問(wèn)和分析云端海量數(shù)據(jù)?
本書(shū)緊貼工作實(shí)際,研究者可從本書(shū)學(xué)到如何用基因組分析工具集GATK、Docker容器、WDL語(yǔ)言和Terra平臺(tái)等開(kāi)源工具編制和運(yùn)行基因組學(xué)分析算法。作者Geraldine Van der Auwera長(zhǎng)期管理GATK用戶社區(qū),作者Brian OConnor則來(lái)自加利福尼亞大學(xué)圣克魯茲分校基因組研究所。閱讀本書(shū)的過(guò)程,就仿佛是兩位專家?guī)阃瓿稍贫嘶蚪M分析項(xiàng)目。你將學(xué)習(xí)用基因組學(xué)分析算法處理真實(shí)數(shù)據(jù)。
前言
如果說(shuō)云技術(shù)是生物醫(yī)學(xué)的未來(lái),那么基因組學(xué)的未來(lái)已來(lái)。
基因組學(xué)是個(gè)全體上云的生物醫(yī)學(xué)學(xué)科。這在所難免,因?yàn)榛蚪M學(xué)首先經(jīng)歷數(shù)據(jù)生成的爆發(fā)式增長(zhǎng),導(dǎo)致它對(duì)計(jì)算和儲(chǔ)存的需求迅速攀升,而解決這些問(wèn)題正是云基礎(chǔ)設(shè)施的定位。目前,主要基因組數(shù)據(jù)集及其衍生資源已可以在云上使用,諸如博德研究所開(kāi)發(fā)、行業(yè)領(lǐng)先的基因組分析工具集GATK 之類的很多工具,它們針對(duì)云基礎(chǔ)設(shè)施做過(guò)優(yōu)化,效率很高。因此,很多研究者如果要用基因組數(shù)據(jù)和相關(guān)分析工具,他們現(xiàn)在或很快就得學(xué)習(xí)使用云資源,而對(duì)很多人來(lái)講上云可能是一個(gè)巨大的挑戰(zhàn)。同時(shí),很多具有信息學(xué)和生物信息學(xué)背景的技術(shù)支持人員應(yīng)邀加入該領(lǐng)域,幫研究者順利過(guò)渡。但是有些支持人員可能只有很少或沒(méi)有任何基因組學(xué)相關(guān)培訓(xùn)經(jīng)歷。這兩個(gè)群體形成一個(gè)統(tǒng)一體,他們需要對(duì)目標(biāo)達(dá)成一致,并共同努力,解決他們所面對(duì)的挑戰(zhàn)。
本書(shū)的寫(xiě)作目的、范圍和目標(biāo)讀者
本書(shū)旨在帶你通過(guò)動(dòng)手實(shí)踐的方式,掌握在云端從事基因組分析所需主要工具、機(jī)制和流程。本書(shū)可作為該領(lǐng)域大部分人員的中級(jí)水平讀本。我們盡量降低對(duì)預(yù)備知識(shí)的要求,并準(zhǔn)備了兩章入門性質(zhì)的章節(jié),分別重點(diǎn)介紹基因組學(xué)和計(jì)算技術(shù),以確保每位讀者都能扎實(shí)掌握我們講解過(guò)程所要使用的這兩個(gè)領(lǐng)域的基本概念。此外,我們還精心挑選一個(gè)非常特殊的開(kāi)源技術(shù)棧GATK 工具集、工作流描述語(yǔ)言(Workflow Description Language,WDL)、Terra 平臺(tái)、Docker 容器和谷歌云平臺(tái)(Google Cloud Platform,GCP)。該工作棧提供端到端功能,其背后有健壯的用戶支持系統(tǒng),能夠保證為用戶帶來(lái)成功的學(xué)習(xí)和使用體驗(yàn)。
需說(shuō)明的是,本書(shū)并非要面面俱到。不論工具的選擇,還是基因組分析的科學(xué)研究范圍,都是如此。我們所使用的基因組學(xué)的操作性定義(operational definition)是以變異發(fā)現(xiàn)(variant discovery)和與之密切相關(guān)的分析為中心,我們有意限制該定義的范圍。至于我們所介紹的基因組分析流程的每一步,往往存在一些替代工具,而且有些工具的替代工具非常多,你完全可以用其替代我們所展示的這些工具。然而,本書(shū)所講主題和練習(xí)是我們精心設(shè)計(jì)的,它們所提供的模式和技巧,在很大程度上是可遷移和擴(kuò)展到其他工具和分析工作,以便化它們對(duì)于讀者的長(zhǎng)久價(jià)值,因此你照本書(shū)學(xué)習(xí)即可。此外,我們還計(jì)劃推出一系列配套博文和在線資料,展示一些互補(bǔ)方法,它們則使用不同平臺(tái)和技術(shù),這部分內(nèi)容詳見(jiàn)本書(shū)配套GitHub 倉(cāng)庫(kù)(https://oreil.ly/genomics-repo)和網(wǎng)站(https://oreil.ly/genomics-blog)。
本書(shū)主要內(nèi)容
在云上研究基因組,乍一聽(tīng)可能感到害怕,特別是你只熟悉其中一個(gè)領(lǐng)域,或兩個(gè)領(lǐng)域都不熟悉的話。但其實(shí)它并沒(méi)有你想象的那么復(fù)雜。本書(shū)將帶你一步步學(xué)習(xí)一遍這項(xiàng)工作的所有重要內(nèi)容。你將有機(jī)會(huì)利用GATK 工具集分析基因組。我們選擇該工具集是因?yàn)樗鼜V受歡迎,而且其計(jì)算方法也很有意思。你將使用谷歌云平臺(tái)提供的基本服務(wù)分析基因組,以及Terra 平臺(tái)。Terra 平臺(tái)是博德研究所和Alphabet 公司的子公司Verily 在GCP 平臺(tái)基礎(chǔ)上共同開(kāi)發(fā)的可擴(kuò)展生物醫(yī)學(xué)研究平臺(tái)。
學(xué)完本書(shū),你應(yīng)掌握以下知識(shí)和能力:
計(jì)算基礎(chǔ)設(shè)施和流程的基本知識(shí)。
包括生物學(xué)基礎(chǔ)、常用數(shù)據(jù)格式和傳統(tǒng)方法在內(nèi)的基因組學(xué)基礎(chǔ)知識(shí)。
核心技術(shù)棧的入門級(jí)和中級(jí)實(shí)操方法:
─ GATK 工具集、WDL、Terra 平臺(tái)、Docker 容器和谷歌云。
─ 按照博德研究所 GATK 工具集開(kāi)發(fā)團(tuán)隊(duì)給出的實(shí)踐去發(fā)現(xiàn)新變異。實(shí)踐涵蓋種系短變異(germline short variant)、體細(xì)胞短變異(somatic short variant)和體細(xì)胞拷貝數(shù)變異(somatic copy-number alteration)。─ 讀取、編寫(xiě)和解釋分析工作流,首先使用沙盒環(huán)境,接著通過(guò)幾種執(zhí)行模式擴(kuò)展分析方法(從獨(dú)立的命令行軟件包擴(kuò)展到管理完善的系統(tǒng))。
─ 在工作區(qū)環(huán)境管理數(shù)據(jù),管理工作流的執(zhí)行。
─ 用 Jupyter Notebooks 軟件,以交互式方式分析基因組數(shù)據(jù)。
─ 綜合運(yùn)用以上工具和方法:利用云數(shù)據(jù)存儲(chǔ)技術(shù)、合成數(shù)據(jù)生成技術(shù)、可移植工作流和容器工具,復(fù)現(xiàn)出版物所講計(jì)算過(guò)程。
次要目標(biāo):
─ 更加熟悉可擴(kuò)展和化方法等計(jì)算概念。
─ 實(shí)際操作一些生物信息學(xué)命令行工具包、常用命令和文件格式,積累實(shí)戰(zhàn)經(jīng)驗(yàn)。
本書(shū)練習(xí)題要求讀者具備哪些計(jì)算機(jī)知識(shí)?
第4 ~ 10 章的練習(xí)題,我們假定你已多少熟悉命令行工具的基礎(chǔ)知識(shí),其中包括在Bash shell 應(yīng)用程序切換目錄、操作文本文件;編寫(xiě)并運(yùn)行簡(jiǎn)單命令;熟悉環(huán)境變量、路徑和工作目錄這些概念。第8 ~ 11 章、第13 章,我們假定你熟悉腳本編寫(xiě)相關(guān)概念,盡管我們不要求你具有實(shí)際編寫(xiě)經(jīng)驗(yàn)。第12、14 章,我們假定你對(duì)R 和Python 語(yǔ)言有所了解,盡管這并非必須,但你要是多少熟悉其句法,就會(huì)發(fā)現(xiàn)更復(fù)雜的例子也不難理解。
做練習(xí)題的過(guò)程,你要是感到某些計(jì)算工具和術(shù)語(yǔ)超出自己的能力和理解范圍,我們建議你參考Software Carpentry 機(jī)構(gòu)提供的在線課程(https://software-carpentry.org)。它們是專為那些在計(jì)算方面沒(méi)有接受過(guò)正式訓(xùn)練的科研人員而設(shè)計(jì)。倘若你沒(méi)有任何命令行工具使用經(jīng)驗(yàn),你就會(huì)發(fā)現(xiàn)其UNIX shell 課程尤其有幫助(https://oreil.ly/bnGo3)。他們還提供Python 語(yǔ)言(https://oreil.ly/j73Ht)、R 語(yǔ)言課程(https://oreil.ly/400VG)以及與本書(shū)相關(guān)的其他主題的一些課程,如用Git 管理版本(https://oreil.ly/85cEo)。這些開(kāi)源課程是由社區(qū)志愿者開(kāi)發(fā)的,他們理解研究者每天都要面對(duì)的挑戰(zhàn),因此這些課程是真正不可多得的好資源。
排版約定
本書(shū)在排版上遵循以下約定:
斜體(Italic)
表示新術(shù)語(yǔ)、URL、郵件地址、文件名、文件擴(kuò)展名、表格名及組件、工作流。
等寬字體(constant width)
表示程序片段和段落中出現(xiàn)的編程元素,如變量、函數(shù)名、數(shù)據(jù)庫(kù)、數(shù)據(jù)類型、環(huán)境變量、語(yǔ)句和關(guān)鍵字。
加粗等寬字體(constant width bold)
表示應(yīng)該由用戶輸入的文本。
等寬斜體(constant width italic)
表示應(yīng)由用戶輸入的值或應(yīng)根據(jù)上下文確定的值替換的文本。
$ 位于代碼之前
表示后面是一條在VM shell 中運(yùn)行的命令。
# 位于代碼之前
表示后面是一條在docker 容器運(yùn)行的命令。
該元素表示這是一條注釋。
使用代碼示例
配套材料(代碼示例、練習(xí)、全尺寸彩圖等)請(qǐng)從本書(shū)配套GitHub 倉(cāng)庫(kù)下載(https://oreil.ly/genomics-repo)。
本書(shū)是為了幫你完成工作而寫(xiě)。一般來(lái)講,書(shū)中的示例代碼,可直接用于自己的項(xiàng)目和文檔,無(wú)需聯(lián)系我們以征得許可,大量復(fù)制代碼另議。例如,你編寫(xiě)的程序使用書(shū)中多處代碼,無(wú)需我們授權(quán),但出售或分發(fā)OReilly 圖書(shū)示例代碼,則需我們授權(quán)。引用本書(shū)內(nèi)容或示例代碼回答問(wèn)題無(wú)需授權(quán)。但在你的產(chǎn)品文檔中大量使用本書(shū)示例代碼,則需經(jīng)我們授權(quán)。
如能添加內(nèi)容的出處,我們將非常感激,當(dāng)然這并非必須。出處通常要標(biāo)明書(shū)名、作者、出版社和ISBN。例如:Genomics in the Cloud by Geraldine A. Van der Auwera and Brian D. OConnor (OReilly). Copyright 2020 The Broad Institute, Inc.and Brian OConnor, 978-1-491-97519-0。
如果你覺(jué)得示例代碼的使用方式可能不當(dāng)或超出上述許可范圍,請(qǐng)聯(lián)系我們,郵箱是 permissions@oreilly.com。
OReilly 在線學(xué)習(xí)平臺(tái)(OReilly Online Learning)
近40 年來(lái),OReilly Media 致力于提供技術(shù)和商業(yè)培訓(xùn)、知識(shí)和卓越見(jiàn)解,來(lái)幫助眾多公司取得成功。
我們擁有獨(dú)一無(wú)二的專家和革新者組成的龐大網(wǎng)絡(luò),他們通過(guò)圖書(shū)、文章、會(huì)議和我們的在線學(xué)習(xí)平臺(tái)分享他們的知識(shí)和經(jīng)驗(yàn)。OReilly 的在線學(xué)習(xí)平臺(tái)允許你按需訪問(wèn)現(xiàn)場(chǎng)培訓(xùn)課程、深入的學(xué)習(xí)路徑、交互式編程環(huán)境,以及OReilly 和200 多家其他出版商提供的大量文本和視頻資源。更多信息,請(qǐng)?jiān)L問(wèn)http://oreilly.com。
聯(lián)系方式
請(qǐng)將你對(duì)本書(shū)的評(píng)價(jià)和問(wèn)題發(fā)給出版社:
美國(guó):
OReilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國(guó):
北京市西城區(qū)西直門南大街2號(hào)成銘大廈C座807室(100035)
奧萊利技術(shù)咨詢(北京)有限公司
我們?yōu)楸緯?shū)做了一個(gè)網(wǎng)頁(yè),將勘誤信息、示例代碼和其他附加信息列在上面。地址是https://oreil.ly/genomics-cloud。
對(duì)本書(shū)的評(píng)論或技術(shù)性問(wèn)題,請(qǐng)發(fā)電子郵件至:errata@oreilly.com.cn。
如果想要了解更多OReilly 圖書(shū)、課程、會(huì)議和新聞相關(guān)信息,請(qǐng)?jiān)L問(wèn)以下網(wǎng)站:http://www.oreilly.com。
我們的Facebook:http://facebook.com/oreilly。
我們的Twitter:http://twitter.com/oreillymedia。
我們的YouTube:http://www.youtube.com/oreillymedia。
致謝
我們想把感謝送給我們?cè)诓┑卵芯克图永D醽喆髮W(xué)圣克魯茲分校的各位同事,他們以多種方式為本書(shū)的付梓貢獻(xiàn)自己的力量。
我們非常感激博德研究所數(shù)據(jù)科學(xué)平臺(tái)在一線提供支持的團(tuán)隊(duì)和教育團(tuán)隊(duì)的所有成員,雖有些同事現(xiàn)已調(diào)離工作崗位,但我們?nèi)耘f對(duì)其心懷感激。他們開(kāi)發(fā)和維護(hù)了初的教學(xué)材料和資源,為我們編寫(xiě)本書(shū)很多需讀者親自動(dòng)手的練習(xí)題打下基礎(chǔ)。
在Robert Majovski 領(lǐng)導(dǎo)的教育團(tuán)隊(duì)中,我們想特別強(qiáng)調(diào)Soo Hee Le 等人的工作,他們開(kāi)發(fā)的內(nèi)容講解透徹并關(guān)注細(xì)節(jié),創(chuàng)造了一些關(guān)于GATK 工具的深度的資源;Allie Hajian 和Anton Kovalsky 承擔(dān)了Terra 平臺(tái)的文檔整理這一赫拉克勒斯(Hercules)般壯舉的艱巨工作。即使該平臺(tái)在曲折發(fā)展和進(jìn)化過(guò)程,他們也沒(méi)有放棄;Kate Noblett 編寫(xiě)了WDL 初的大部分文檔,她現(xiàn)在正強(qiáng)有力地協(xié)調(diào)GATK、WDL 和Terra 工作坊。在Tiffany Miller 領(lǐng)導(dǎo)的一線支持團(tuán)隊(duì)中,我們特別想強(qiáng)調(diào)Beri Shifaw 等人的工作,他負(fù)責(zé)維護(hù)GitHub 和Dockstore 的gatk-workflows流水線和Terra 平臺(tái)的特色工作區(qū);Bhanu Gandham 以高度的熱情擔(dān)負(fù)起為GATK用戶社區(qū)謀福利的職責(zé)。這兩個(gè)團(tuán)隊(duì)其他為本書(shū)相關(guān)內(nèi)容做過(guò)貢獻(xiàn)的成員還有Derek Caetano-Anolles、Sushma Chaluvadi、Sheila Chandran、Elizabeth Kiernan、David Kling、Ron Levine 和Adelaide Rhodes。
我們認(rèn)可并欣賞Alexander Baumann 領(lǐng)導(dǎo)的Broad DSP Field Engineering 團(tuán)隊(duì)在這一領(lǐng)域所起的越來(lái)越重要的作用。Yvonne Blanco 可謂是群星之中閃亮的那顆,她從User Experience 團(tuán)隊(duì)迅速轉(zhuǎn)入該團(tuán)隊(duì),以其完美無(wú)瑕的設(shè)計(jì)改進(jìn)關(guān)鍵圖表和插圖。
我們永遠(yuǎn)感激GATK 開(kāi)發(fā)團(tuán)隊(duì)的很多成員,他們?yōu)榻逃Y源提供關(guān)鍵輸入,并將自己的專業(yè)知識(shí)交全球GATK 工作坊使用。由于人數(shù)眾多,恕不一一列舉。但我們特別感謝該團(tuán)隊(duì)的Eric Banks、Laura Gauthier、Yossi Farjoun 和Lee Lichtenstein所給予的支持;感謝David Benjamin 和Sam Lee,他們的耐心大有不竭之勢(shì);感謝泰然自若的David Roazen 和樂(lè)天派的宿命論者Louis Bergelson;感謝安靜的Mark Fleharty 就序列標(biāo)注(Mark Duplicates)給出的專業(yè)意見(jiàn),同樣也感謝活潑的Megan Shand 給出的專業(yè)意見(jiàn)。這里要特別指出的還有Chris Norman 為Barclay 庫(kù)所做工作,GATK 的文檔系統(tǒng)正是由該庫(kù)所驅(qū)動(dòng)的。
Geraldine 還想感謝Mauricio Carneiro、Mark De Pristo。他們分別是原GATK 團(tuán)隊(duì)的成員和創(chuàng)始人,感謝他們多年前愿賭服輸雇用一名糊涂的微生物學(xué)家。
提起WDL、Cromwell 和Terra 章節(jié)的寫(xiě)作,我們要感謝的人那就太多了,無(wú)法一一列出,但是我們特別要感謝Notebooks 伙伴Adrian Sharma、William Disman、Ruchi Munshi 和Kyle Vernest。他們貢獻(xiàn)富有幫助的洞察力,忍受我們的喋喋不休,幫助解決我們由衷希望在本書(shū)面市前解決的問(wèn)題。就上述章節(jié)的寫(xiě)作,我們欠Chris Llanwarne 和Adam Nichols 一聲真摯的感謝。他們及時(shí)為wdltool 工具打補(bǔ)丁,使得第9 章內(nèi)容更講得通。說(shuō)起叨擾大家,我們非常對(duì)不住User Experience 的Eric Karofsky 和Jerme Chadel。他們不得不忍受我們的問(wèn)題轟炸。我們不停地詢問(wèn)他們下一步要改動(dòng)Terra 界面的哪些元素、什么時(shí)間修改。我們深深感激Matthieu J.Miossec 與我們一起開(kāi)發(fā)第14 章所示項(xiàng)目。
我們對(duì)審稿老師抱有無(wú)盡的感激。他們利用自己的寶貴時(shí)間,通讀本書(shū)初稿,幫我們找出哪些內(nèi)容不可靠,并使我們理解哪些內(nèi)容有待改進(jìn)。我們初交其評(píng)審的稿件和你眼前的這本有著天壤之別。本書(shū)質(zhì)量的提升,他們功不可沒(méi)。為此,我們向Titus Brown、Aaron Chevalier、Jeff Gentry、Sean Horgan、Lynn Langit、Lee Lichtenstein、Jessica Maia、David Mohs、Andrew Moschetti、Anubhav Shelat 和Jonn Smith 致以崇高的敬意。
倘若沒(méi)有我們各自領(lǐng)導(dǎo)團(tuán)隊(duì)的支持, 這一切也都不可能。我們感謝博德研究所的Eric Lander、Lee McGuire 和該所數(shù)據(jù)科學(xué)平臺(tái)的領(lǐng)導(dǎo),特別是Anthony Philippakis、Eric Banks(再次感謝)和Danielle Ciofani。他們堅(jiān)信本書(shū)終將付梓。我們感謝加利福尼亞大學(xué)圣克魯茲分;蚪M研究所(Genomics Institute,GI)的領(lǐng)導(dǎo),其中包括Benedict Paten 和研究所所長(zhǎng)David Haussler,感謝他們的支持。我們還要感謝Greta Martin,她的組織能力無(wú)與倫比;感謝Nadine Gassner,她幫我們募集資金,使我們得以一心撲在激動(dòng)人心的項(xiàng)目上。
我們感謝加利福尼亞大學(xué)圣克魯茲分校基因組研究所的計(jì)算基因組平臺(tái)(Computational Genomics Platform,CGP)團(tuán)隊(duì),其成員利用Terra 平臺(tái)和其他基于云的分析生態(tài)系統(tǒng)組件開(kāi)發(fā)本書(shū)所講的多種項(xiàng)目。其貢獻(xiàn)者有Jesse Brennan、Amar Jandu、Natan Lao、Melaina Legaspi、Geryl Pelayo、Charles Reid、Hannes Schmidt 和Daniel Sotirhos。我們特別感謝CGP 團(tuán)隊(duì)的Lighthouse Point 小組:Michael Baumann(現(xiàn)在博德研究所工作)、Lon Blauvelt、Brian Hannafious 和Ash OFarrell,組長(zhǎng)為Beth Sheets。他們編寫(xiě)優(yōu)質(zhì)研究教程,為本書(shū)部分章節(jié)的寫(xiě)作帶來(lái)靈感。
我們還要感謝加利福尼亞大學(xué)圣克魯茲分校和加拿大安大略癌癥研究所(Ontario Institute for Cancer Research,OICR)的Dockstore 團(tuán)隊(duì),感謝他們對(duì)本書(shū)的反饋,感謝他們搭建工作流分享平臺(tái),為Terra 生態(tài)系統(tǒng)貢獻(xiàn)力量。加利福尼亞大學(xué)圣克魯茲分校Charles Overbeck 帶領(lǐng)的技術(shù)團(tuán)隊(duì)中,我們想把感謝送給Louise Cabansay、Abraham Chavez、Andy Chen、Trevor Heathorn、Nneka Olunwa、Kevin Osborn、Natalie Perez、Walter Shands、Emily Soth、Cricket Sloan 和David Steinberg。OICR研究所Denis Yuen 的技術(shù)團(tuán)隊(duì),其學(xué)術(shù)帶頭人為L(zhǎng)incoln Stein,我們感謝該團(tuán)隊(duì)的Ryan Bautista、Kitty Cao、Andy Chen、Vincent Chung、Andrew Duncan、Victor Liu、Gary Luu、Shreya Radesh 和Jennifer Wu 所做的貢獻(xiàn)。
后,我們想把同樣的感謝送給我們摯愛(ài)的親人。感謝他們?cè)谖覀儗?xiě)作本書(shū)的兩年多時(shí)光里表現(xiàn)出來(lái)的耐心和給予的支持。Geraldine 希望其可愛(ài)的妻子Jessica 和女兒Gabrielle、Melanie 在看到致謝之后能被適當(dāng)打動(dòng),忘記自己多次忙到很晚才去陪她們,忘記自己癡迷工作,忘記自己在寫(xiě)作的那段時(shí)間沒(méi)能改善家里的生活環(huán)境。同時(shí),Brian 想感謝其伴侶Dhawal 在成書(shū)期間所給予的無(wú)限耐心、理解和鼓勵(lì),感謝其媽媽(Patty)和爸爸(Jim)偶爾的關(guān)照和令人感激的鼓舞把書(shū)寫(xiě)完!。
Geraldine A. Van der Auwera博士是麻省理工學(xué)院和哈佛大學(xué)博德研究所數(shù)據(jù)科學(xué)平臺(tái)的外聯(lián)和通信主任。
Brian D. OConnor博士是加利福尼亞大學(xué)圣克魯茲分;蚪M研究所計(jì)算基因組平臺(tái)主任。
目錄
序 . 1
前言 . 5
第1 章 概述 13
1.1 生物學(xué)和生命科學(xué)大數(shù)據(jù)的希望和挑戰(zhàn) . 14
1.2 大數(shù)據(jù)對(duì)基礎(chǔ)設(shè)施的挑戰(zhàn) 15
1.3 數(shù)據(jù)分享和分析云生態(tài)系統(tǒng) 16
1.3.1 云托管數(shù)據(jù)和云計(jì)算 . 16
1.3.2 生命科學(xué)研究平臺(tái) 18
1.3.3 基礎(chǔ)設(shè)施的標(biāo)準(zhǔn)化和復(fù)用 20
1.4 踐行FAIR 理念 22
1.5 小結(jié)和下一步學(xué)習(xí)內(nèi)容 23
第2 章 基因組學(xué)簡(jiǎn)介:新手 25
2.1 基因組學(xué)入門 25
2.1.1 基因作為獨(dú)立遺傳單元(從某種程度上講) 26
2.1.2 生物學(xué)中心法則:從DNA 到RNA 再到蛋白質(zhì) . 29
2.1.3 DNA 突變的起因和后果 31
2.1.4 基因組學(xué)是基因組內(nèi)和基因組間變異的清單 32
2.1.5 大規(guī)模系統(tǒng)性分析基因組的難點(diǎn) 33
2.2 基因組變異 . 33
2.2.1 以參考基因組為通用框架 33
2.2.2 變異的物理分類 37
2.2.3 種系變異和體細(xì)胞變異的區(qū)別 . 42
2.3 生成高通量測(cè)序數(shù)據(jù) . 45
2.3.1 從生物樣本到大量讀段數(shù)據(jù) 45
2.3.2 DNA 文庫(kù)類型:選擇合適的實(shí)驗(yàn)設(shè)計(jì) 50
2.4 數(shù)據(jù)處理和分析 53
2.4.1 將讀段匹配到參考基因組 54
2.4.2 變異識(shí)別 56
2.4.3 數(shù)據(jù)質(zhì)量和錯(cuò)誤源 59
2.4.4 規(guī)格統(tǒng)一:功能等價(jià)流水線 63
2.5 小結(jié)和下一步學(xué)習(xí)內(nèi)容 64
第3 章 生命科學(xué)家計(jì)算技術(shù)入門 . 65
3.1 基礎(chǔ)設(shè)施的基本組件和性能瓶頸 65
3.1.1 幾種處理器硬件:CPU、GPU、FPGA 和TPU 66
3.1.2 計(jì)算組織的層級(jí):核、節(jié)點(diǎn)、集群和云 . 67
3.1.3 解決性能瓶頸 68
3.2 并行計(jì)算 72
3.2.1 并行處理一個(gè)簡(jiǎn)單分析任務(wù) 72
3.2.2 從核到集群和云:多層并行機(jī)制 73
3.2.3 并行需權(quán)衡速度、效率和成本 . 75
3.3 并行和自動(dòng)化流水線 . 76
3.3.1 工作流語(yǔ)言 . 77
3.3.2 常用基因組流水線語(yǔ)言 78
3.3.3 工作流管理系統(tǒng) 79
3.4 虛擬化和云 . 79
3.4.1 虛擬機(jī)和容器 80
3.4.2 云簡(jiǎn)介 83
3.4.3 采用云服務(wù)從事研究的幾個(gè)場(chǎng)景 86
3.5 小結(jié)和下一步學(xué)習(xí)內(nèi)容 88
第4 章 云上步 . 89
4.1 開(kāi)通谷歌云賬號(hào)并創(chuàng)建首個(gè)項(xiàng)目 89
4.1.1 創(chuàng)建項(xiàng)目 90
4.1.2 核對(duì)你的結(jié)算賬號(hào)并激活免費(fèi)試用額度 . 91
4.2 用Google Cloud Shell 運(yùn)行基本命令 94
4.2.1 登錄Cloud Shell 虛擬機(jī) 94
4.2.2 用gsutil 訪問(wèn)和管理文件 96
4.2.3 拉取Docker 鏡像并啟動(dòng)容器 99
4.2.4 掛載數(shù)據(jù)卷,從容器內(nèi)部訪問(wèn)文件系統(tǒng) 102
4.3 創(chuàng)建自定義虛擬機(jī) 104
4.3.1 創(chuàng)建和配置你的虛擬機(jī)實(shí)例 104
4.3.2 用SSH 登錄虛擬機(jī) . 111
4.3.3 驗(yàn)證身份 112
4.3.4 復(fù)制本書(shū)材料到你的虛擬機(jī) 114
4.3.5 在虛擬機(jī)上安裝Docker 115
4.3.6 構(gòu)建GATK 容器鏡像 . 116
4.3.7 停用虛擬機(jī),停止燒錢 . 118
4.4 配置IGV 瀏覽器,讀取GCS 桶數(shù)據(jù) . 119
4.5 小結(jié)和下一步學(xué)習(xí)內(nèi)容 . 124
第5 章 GATK 入門 125
5.1 開(kāi)始用GATK . 125
5.1.1 運(yùn)行要求 126
5.1.2 命令行句法 127
5.1.3 用Spark 實(shí)現(xiàn)多線程 128
5.1.4 GATK 實(shí)操 131
5.2 動(dòng)手找變異 136
5.2.1 用HaplotypeCaller 尋找種系SNP 和InDel 136
5.2.2 根據(jù)變異上下文注釋過(guò)濾變異識(shí)別結(jié)果 146
5.3 GATK 實(shí)踐簡(jiǎn)介 154
5.3.1 本書(shū)涵蓋的實(shí)踐 156
5.3.2 其他主要應(yīng)用場(chǎng)景 156
5.4 小結(jié)和下一步學(xué)習(xí)內(nèi)容 . 157
第6 章 用GATK 實(shí)踐發(fā)現(xiàn)種系短變異 . 159
6.1 數(shù)據(jù)預(yù)處理 159
6.1.1 將讀段匹配到基因組參考 161
6.1.2 標(biāo)記重復(fù)讀段 . 163
6.1.3 重新校正堿基質(zhì)量值 165
6.2 聯(lián)合發(fā)現(xiàn)分析 . 167
6.2.1 聯(lián)合變異識(shí)別工作流概覽 167
6.2.2 識(shí)別每個(gè)樣本的變異,生成GVCF 文件 . 172
6.2.3 整合GVCF 文件 174
6.2.4 用聯(lián)合鑒定基因型方法處理多個(gè)樣本 176
6.2.5 重校正變異質(zhì)量值,過(guò)濾聯(lián)合識(shí)別結(jié)果集 . 178
6.2.6 改進(jìn)基因型分配結(jié)果并調(diào)整其可信度 183
6.2.7 下一步和延伸閱讀 184
6.3 用CNN 過(guò)濾法識(shí)別單樣本變異 185
6.3.1 CNN 單樣本工作流概覽 187
6.3.2 采用1D CNN 過(guò)濾單樣本W(wǎng)GS 變異識(shí)別結(jié)果集 188
6.3.3 采用2D CNN 在模型中加入讀段數(shù)據(jù) . 190
6.4 小結(jié)和下一步學(xué)習(xí)內(nèi)容 . 193
第7 章 用GATK 實(shí)踐發(fā)現(xiàn)體細(xì)胞變異 . 195
7.1 癌癥基因組研究面對(duì)的挑戰(zhàn) 195
7.2 體細(xì)胞短變異(SNV 和InDel) 197
7.2.1 腫瘤正常組織配對(duì)分析工作流概覽 198
7.2.2 創(chuàng)建Mutect2 PoN 隊(duì)列 . 199
7.2.3 在腫瘤正常組織配對(duì)上運(yùn)行Mutect2 工具 . 202
7.2.4 估計(jì)樣本交叉污染 203
7.2.5 過(guò)濾Mutect2 識(shí)別結(jié)果 205
7.2.6 用Funcotator 工具注明識(shí)別結(jié)果的功能性預(yù)測(cè)效果 208
7.3 體細(xì)胞拷貝數(shù)變異 210
7.3.1 僅有腫瘤樣本的分析工作流概覽 . 211
7.3.2 創(chuàng)建體細(xì)胞CNA PoN 215
7.3.3 去噪 . 215
7.3.4 連接片段并識(shí)別CNA . 217
7.3.5 附加分析方法 . 220
7.4 小結(jié)和下一步學(xué)習(xí)內(nèi)容 . 221
第8 章 用工作流自動(dòng)執(zhí)行分析任務(wù) 223
8.1 WDL 和Cromwell 系統(tǒng)簡(jiǎn)介 223
8.2 安裝和配置Cromwell 系統(tǒng) . 226
8.3 你的個(gè)WDL 工作流:Hello World 230
8.3.1 編寫(xiě)小示例,學(xué)習(xí)WDL 基本句法 . 231
8.3.2 在你的谷歌虛擬機(jī)上用Cromwell 系統(tǒng)運(yùn)行簡(jiǎn)單WDL 腳本 233
8.3.3 解釋Cromwell 輸出日志的要點(diǎn) 234
8.3.4 加個(gè)變量并以JSON 格式提供輸入 . 237
8.3.5 增加另一任務(wù),完善工作流 239
8.4 你的個(gè)GATK 工作流:Hello HaplotypeCaller 241
8.4.1 探索WDL 工作流 242
8.4.2 生成JSON 輸入文件 246
8.4.3 運(yùn)行工作流 247
8.4.4 破壞工作流,學(xué)習(xí)句法檢查和錯(cuò)誤提示功能 . 249
8.5 介紹分散聚集并行機(jī)制 . 253
8.5.1 探索WDL 工作流 254
8.5.2 生成圖表,實(shí)現(xiàn)可視化 . 260
8.6 小結(jié)和下一步學(xué)習(xí)內(nèi)容 . 262
第9 章 真實(shí)基因組工作流詳解 263
9.1 神秘工作流1:加入條件語(yǔ)句,提高靈活性 263
9.1.1 工作流制圖 264
9.1.2 逆向破解條件切換 269
9.2 神秘工作流2:模塊化和代碼重用 276
9.2.1 工作流制圖 276
9.2.2 拆解套娃 281
9.3 小結(jié)和下一步學(xué)習(xí)內(nèi)容 . 288
第10 章 用Pipelines API 運(yùn)行多個(gè)工作流 . 289
10.1 GCP 平臺(tái)PAPI 服務(wù)簡(jiǎn)介 289
10.2 直接發(fā)送Cromwell 作業(yè)到PAPI 292
10.2.1 配置Cromwell,實(shí)現(xiàn)與PAPI 通信 292
10.2.2 用PAPI 并行運(yùn)行 HaplotypeCaller 工具 296
10.2.3 在Google Compute Engine 監(jiān)控工作流執(zhí)行 298
10.3 理解和優(yōu)化工作流的效率 302
10.3.1 操作粒度 . 302
10.3.2 權(quán)衡時(shí)間和金錢 . 303
10.3.3 成本優(yōu)化建議 305
10.3.4 針對(duì)平臺(tái)優(yōu)化和可移植性 307
10.4 用WDL Runner 封裝Cromwell 和PAPI 的執(zhí)行 308
10.4.1 WDL Runner 設(shè)置 309
10.4.2 用WDL Runner 并行運(yùn)行HaplotypeCaller 工具 310
10.4.3 監(jiān)控WDL Runner 的執(zhí)行 . 311
10.5 小結(jié)和下一步學(xué)習(xí)內(nèi)容 314
第11 章 在Terra 平臺(tái)快捷運(yùn)行多個(gè)工作流 317
11.1 Terra 入門 317
11.1.1 生成賬號(hào) . 318
11.1.2 創(chuàng)建結(jié)算項(xiàng)目 320
11.1.3 克隆預(yù)先配好的工作區(qū) 323
11.2 在Terra 平臺(tái)用Cromwell 服務(wù)器運(yùn)行工作流 . 324
11.2.1 在單個(gè)樣本上運(yùn)行工作流 324
11.2.2 在數(shù)據(jù)表的多個(gè)樣本上運(yùn)行工作流 327
11.2.3 監(jiān)控工作流執(zhí)行 333
11.2.4 在數(shù)據(jù)表定位工作流輸出 337
11.2.5 再次運(yùn)行同一工作流,展示緩存調(diào)用 . 339
11.3 運(yùn)行一個(gè)真實(shí)、全規(guī)模GATK 實(shí)踐流水線 . 341
11.3.1 尋找和克隆GATK 種系短變異發(fā)現(xiàn)實(shí)踐工作區(qū) 342
11.3.2 檢查預(yù)加載數(shù)據(jù) 342
11.3.3 選數(shù)據(jù)并配置全規(guī)模工作流 . 344
11.3.4 啟動(dòng)全規(guī)模工作流并監(jiān)控其執(zhí)行 345
11.3.5 下載輸出數(shù)據(jù)的幾種方法,或不下載 . 348
11.4 小結(jié)和下一步學(xué)習(xí)內(nèi)容 349
第12 章 Jupyter Notebooks 中的交互式分析 351
12.1 Terra 平臺(tái)Jupyter 服務(wù)簡(jiǎn)介 . 352
12.1.1 Jupyter Notebooks 概述 352
12.1.2 Jupyter Notebooks 在Terra 平臺(tái)的工作原理 354
12.2 開(kāi)始用Terra 平臺(tái)的Jupyter 軟件 360
12.2.1 檢查和自定義筆記本運(yùn)行環(huán)境的配置項(xiàng) 360
12.2.2 以編輯模式打開(kāi)筆記本并檢查內(nèi)核 366
12.2.3 運(yùn)行Hello World 單元格 367
12.2.4 用gsutil 工具操作谷歌云存儲(chǔ)桶 370
12.2.5 聲明變量,指向本書(shū)數(shù)據(jù)桶的種系數(shù)據(jù) 371
12.2.6 設(shè)置沙盒并將輸出文件存入工作區(qū)數(shù)據(jù)桶 372
12.3 在嵌入式IGV 瀏覽器窗口查看基因組數(shù)據(jù) . 373
12.3.1 設(shè)置嵌入式IGV 瀏覽器 . 374
12.3.2 為IGV 瀏覽器添加數(shù)據(jù) . 375
12.3.3 設(shè)置訪問(wèn)令牌,查看私有數(shù)據(jù) 377
12.4 運(yùn)行GATK 命令,學(xué)習(xí)、測(cè)試或解決問(wèn)題 378
12.4.1 運(yùn)行GATK 基本命令:HaplotypeCaller 379
12.4.2 加載數(shù)據(jù)(BAM 和VCF)到IGV 瀏覽器 380
12.4.3 在嵌入式IGV 瀏覽器解決一個(gè)有問(wèn)題的變異識(shí)別結(jié)果 . 382
12.5 可視化變異上下文注釋數(shù)據(jù) . 385
12.5.1 用VariantsToTable 導(dǎo)出感興趣的注釋值 385
12.5.2 加載R 腳本,繪制函數(shù)圖像 386
12.5.3 用makeDensityPlot 繪制QUAL 值密度圖 387
12.5.4 繪制QUAL 和DP 值散點(diǎn)圖 . 389
12.5.5 繪制附有邊緣密度的散點(diǎn)圖 . 390
12.6 小結(jié)和下一步學(xué)習(xí)內(nèi)容 392
第13 章 在Terra 平臺(tái)自己組裝工作區(qū) . 393
13.1 管理工作區(qū)內(nèi)外數(shù)據(jù) 393
13.1.1 以工作區(qū)桶為數(shù)據(jù)倉(cāng)庫(kù) 394
13.1.2 訪問(wèn)你在Terra 平臺(tái)外部管理的私有數(shù)據(jù) . 394
13.1.3 訪問(wèn)Terra Data Library 數(shù)據(jù) 397
13.2 用基本組件重建教程工作區(qū) . 398
13.2.1 新建工作區(qū) 398
13.2.2 添加工作流到Methods Repository 并將其導(dǎo)入工作區(qū) 400
13.2.3 用JSON 文件快速創(chuàng)建配置 . 402
13.2.4 添加數(shù)據(jù)表 403
13.2.5 填充工作區(qū)資源數(shù)據(jù)表 406
13.2.6 用數(shù)據(jù)表創(chuàng)建工作流配置 406
13.2.7 添加筆記本并檢查運(yùn)行環(huán)境 . 408
13.2.8 編寫(xiě)工作區(qū)文檔并分享它 409
13.3 從GATK 實(shí)踐工作區(qū)開(kāi)始 410
13.3.1 克隆GATK 實(shí)踐工作區(qū) 411
13.3.2 檢查GATK 工作區(qū)數(shù)據(jù)表,理解數(shù)據(jù)組織方式 411
13.3.3 了解千人基因組高覆蓋度數(shù)據(jù)集 414
13.3.4 從千人基因組工作區(qū)復(fù)制數(shù)據(jù)表 416
13.3.5 用TSV 加載文件從千人基因組工作區(qū)導(dǎo)入數(shù)據(jù) 417
13.3.6 對(duì)聯(lián)合數(shù)據(jù)集執(zhí)行聯(lián)合識(shí)別分析 419
13.4 圍繞數(shù)據(jù)集,建工作區(qū) 425
13.4.1 克隆千人基因組數(shù)據(jù)工作區(qū) . 426
13.4.2 從Dockstore 導(dǎo)入工作流 426
13.4.3 配置工作流,使用數(shù)據(jù)表 429
13.5 小結(jié)和下一步學(xué)習(xí)內(nèi)容 430
第14 章 撰寫(xiě)可完全復(fù)現(xiàn)的論文 . 433
14.1 案例研究概覽 433
14.1.1 計(jì)算可復(fù)現(xiàn)和FAIR 框架 434
14.1.2 案例研究的原始研究成果和歷史 436
14.1.3 評(píng)估可用信息和關(guān)鍵挑戰(zhàn) 437
14.1.4 設(shè)計(jì)可復(fù)現(xiàn)的實(shí)現(xiàn) . 439
14.2 生成合成數(shù)據(jù)集,替代私有數(shù)據(jù) 441
14.2.1 總體方法論 442
14.2.2 從千人基因組受試檢索變異數(shù)據(jù) 444
14.2.3 根據(jù)真人數(shù)據(jù),仿造外顯子組數(shù)組 445
14.2.4 改變仿造外顯子組 . 449
14.2.5 生成終數(shù)據(jù)集 . 452
14.3 重建數(shù)據(jù)處理和分析方法論 . 452
14.3.1 匹配和變異發(fā)現(xiàn) . 453
14.3.2 變異效果預(yù)測(cè)、排序和變異負(fù)荷分析 . 455
14.3.3 新實(shí)現(xiàn)的分析能力 . 456
14.4 通往FAIR 的道路漫長(zhǎng)又曲折 . 457
14.5 總結(jié) 459
附錄 術(shù)語(yǔ)表 . 461