目录
序 . 1
前言 . 5
第1 章 概述 13
1.1 生物学和生命科学大数据的希望和挑战 . 14
1.2 大数据对基础设施的挑战 15
1.3 数据分享和分析云生态系统 16
1.3.1 云托管数据和云计算 . 16
1.3.2 生命科学研究平台 18
1.3.3 基础设施的标准化和复用 20
1.4 践行FAIR 理念 22
1.5 小结和下一步学习内容 23
第2 章 基因组学简介:新手必读 25
2.1 基因组学入门 25
2.1.1 基因作为独立遗传单元(从某种程度上讲) 26
2.1.2 生物学中心法则:从DNA 到RNA 再到蛋白质 . 29
2.1.3 DNA 突变的起因和后果 31
2.1.4 基因组学是基因组内和基因组间变异的清单 32
2.1.5 大规模系统性分析基因组的难点 33
2.2 基因组变异 . 33
2.2.1 以参考基因组为通用框架 33
2.2.2 变异的物理分类 37
2.2.3 种系变异和体细胞变异的区别 . 42
2.3 生成高通量测序数据 . 45
2.3.1 从生物样本到大量读段数据 45
2.3.2 DNA 文库类型:选择合适的实验设计 50
2.4 数据处理和分析 53
2.4.1 将读段匹配到参考基因组 54
2.4.2 变异识别 56
2.4.3 数据质量和错误源 59
2.4.4 规格统一:功能等价流水线 63
2.5 小结和下一步学习内容 64
第3 章 生命科学家必备计算技术入门 . 65
3.1 基础设施的基本组件和性能瓶颈 65
3.1.1 几种处理器硬件:CPU、GPU、FPGA 和TPU 66
3.1.2 计算组织的层级:核、节点、集群和云 . 67
3.1.3 解决性能瓶颈 68
3.2 并行计算 72
3.2.1 并行处理一个简单分析任务 72
3.2.2 从核到集群和云:多层并行机制 73
3.2.3 并行需权衡速度、效率和成本 . 75
3.3 并行和自动化流水线 . 76
3.3.1 工作流语言 . 77
3.3.2 常用基因组流水线语言 78
3.3.3 工作流管理系统 79
3.4 虚拟化和云 . 79
3.4.1 虚拟机和容器 80
3.4.2 云简介 83
3.4.3 采用云服务从事研究的几个场景 86
3.5 小结和下一步学习内容 88
第4 章 云上第一步 . 89
4.1 开通谷歌云账号并创建首个项目 89
4.1.1 创建项目 90
4.1.2 核对你的结算账号并激活免费试用额度 . 91
4.2 用Google Cloud Shell 运行基本命令 94
4.2.1 登录Cloud Shell 虚拟机 94
4.2.2 用gsutil 访问和管理文件 96
4.2.3 拉取Docker 镜像并启动容器 99
4.2.4 挂载数据卷,从容器内部访问文件系统 102
4.3 创建自定义虚拟机 104
4.3.1 创建和配置你的虚拟机实例 104
4.3.2 用SSH 登录虚拟机 . 111
4.3.3 验证身份 112
4.3.4 复制本书材料到你的虚拟机 114
4.3.5 在虚拟机上安装Docker 115
4.3.6 构建GATK 容器镜像 . 116
4.3.7 停用虚拟机,停止烧钱 . 118
4.4 配置IGV 浏览器,读取GCS 桶数据 . 119
4.5 小结和下一步学习内容 . 124
第5 章 GATK 入门 125
5.1 开始用GATK . 125
5.1.1 运行要求 126
5.1.2 命令行句法 127
5.1.3 用Spark 实现多线程 128
5.1.4 GATK 实操 131
5.2 动手找变异 136
5.2.1 用HaplotypeCaller 寻找种系SNP 和InDel 136
5.2.2 根据变异上下文注释过滤变异识别结果 146
5.3 GATK 最佳实践简介 154
5.3.1 本书涵盖的最佳实践 156
5.3.2 其他主要应用场景 156
5.4 小结和下一步学习内容 . 157
第6 章 用GATK 最佳实践发现种系短变异 . 159
6.1 数据预处理 159
6.1.1 将读段匹配到基因组参考 161
6.1.2 标记重复读段 . 163
6.1.3 重新校正碱基质量值 165
6.2 联合发现分析 . 167
6.2.1 联合变异识别工作流概览 167
6.2.2 识别每个样本的变异,生成GVCF 文件 . 172
6.2.3 整合GVCF 文件 174
6.2.4 用联合鉴定基因型方法处理多个样本 176
6.2.5 重校正变异质量值,过滤联合识别结果集 . 178
6.2.6 改进基因型分配结果并调整其可信度 183
6.2.7 下一步和延伸阅读 184
6.3 用CNN 过滤法识别单样本变异 185
6.3.1 CNN 单样本工作流概览 187
6.3.2 采用1D CNN 过滤单样本WGS 变异识别结果集 188
6.3.3 采用2D CNN 在模型中加入读段数据 . 190
6.4 小结和下一步学习内容 . 193
第7 章 用GATK 最佳实践发现体细胞变异 . 195
7.1 癌症基因组研究面对的挑战 195
7.2 体细胞短变异(SNV 和InDel) 197
7.2.1 肿瘤—正常组织配对分析工作流概览 198
7.2.2 创建Mutect2 PoN 队列 . 199
7.2.3 在肿瘤—正常组织配对上运行Mutect2 工具 . 202
7.2.4 估计样本交叉污染 203
7.2.5 过滤Mutect2 识别结果 205
7.2.6 用Funcotator 工具注明识别结果的功能性预测效果 208
7.3 体细胞拷贝数变异 210
7.3.1 仅有肿瘤样本的分析工作流概览 . 211
7.3.2 创建体细胞CNA PoN 215
7.3.3 去噪 . 215
7.3.4 连接片段并识别CNA . 217
7.3.5 附加分析方法 . 220
7.4 小结和下一步学习内容 . 221
第8 章 用工作流自动执行分析任务 223
8.1 WDL 和Cromwell 系统简介 223
8.2 安装和配置Cromwell 系统 . 226
8.3 你的第一个WDL 工作流:Hello World 230
8.3.1 编写最小示例,学习WDL 基本句法 . 231
8.3.2 在你的谷歌虚拟机上用Cromwell 系统运行简单WDL 脚本 233
8.3.3 解释Cromwell 输出日志的要点 234
8.3.4 加个变量并以JSON 格式提供输入 . 237
8.3.5 增加另一任务,完善工作流 239
8.4 你的第一个GATK 工作流:Hello HaplotypeCaller 241
8.4.1 探索WDL 工作流 242
8.4.2 生成JSON 输入文件 246
8.4.3 运行工作流 247
8.4.4 破坏工作流,学习句法检查和错误提示功能 . 249
8.5 介绍分散—聚集并行机制 . 253
8.5.1 探索WDL 工作流 254
8.5.2 生成图表,实现可视化 . 260
8.6 小结和下一步学习内容 . 262
第9 章 真实基因组工作流详解 263
9.1 神秘工作流1:加入条件语句,提高灵活性 263
9.1.1 工作流制图 264
9.1.2 逆向破解条件切换 269
9.2 神秘工作流2:模块化和代码重用 276
9.2.1 工作流制图 276
9.2.2 拆解套娃 281
9.3 小结和下一步学习内容 . 288
第10 章 用Pipelines API 运行多个工作流 . 289
10.1 GCP 平台PAPI 服务简介 289
10.2 直接发送Cromwell 作业到PAPI 292
10.2.1 配置Cromwell,实现与PAPI 通信 292
10.2.2 用PAPI 并行运行 HaplotypeCaller 工具 296
10.2.3 在Google Compute Engine 监控工作流执行 298
10.3 理解和优化工作流的效率 302
10.3.1 操作粒度 . 302
10.3.2 权衡时间和金钱 . 303
10.3.3 成本优化建议 305
10.3.4 针对平台优化和可移植性 307
10.4 用WDL Runner 封装Cromwell 和PAPI 的执行 308
10.4.1 WDL Runner 设置 309
10.4.2 用WDL Runner 并行运行HaplotypeCaller 工具 310
10.4.3 监控WDL Runner 的执行 . 311
10.5 小结和下一步学习内容 314
第11 章 在Terra 平台快捷运行多个工作流 317
11.1 Terra 入门 317
11.1.1 生成账号 . 318
11.1.2 创建结算项目 320
11.1.3 克隆预先配好的工作区 323
11.2 在Terra 平台用Cromwell 服务器运行工作流 . 324
11.2.1 在单个样本上运行工作流 324
11.2.2 在数据表的多个样本上运行工作流 327
11.2.3 监控工作流执行 333
11.2.4 在数据表定位工作流输出 337
11.2.5 再次运行同一工作流,展示缓存调用 . 339
11.3 运行一个真实、全规模GATK 最佳实践流水线 . 341
11.3.1 寻找和克隆GATK 种系短变异发现最佳实践工作区 342
11.3.2 检查预加载数据 342
11.3.3 选数据并配置全规模工作流 . 344
11.3.4 启动全规模工作流并监控其执行 345
11.3.5 下载输出数据的几种方法,或不下载 . 348
11.4 小结和下一步学习内容 349
第12 章 Jupyter Notebooks 中的交互式分析 351
12.1 Terra 平台Jupyter 服务简介 . 352
12.1.1 Jupyter Notebooks 概述 352
12.1.2 Jupyter Notebooks 在Terra 平台的工作原理 354
12.2 开始用Terra 平台的Jupyter 软件 360
12.2.1 检查和自定义笔记本运行环境的配置项 360
12.2.2 以编辑模式打开笔记本并检查内核 366
12.2.3 运行Hello World 单元格 367
12.2.4 用gsutil 工具操作谷歌云存储桶 370
12.2.5 声明变量,指向本书数据桶的种系数据 371
12.2.6 设置沙盒并将输出文件存入工作区数据桶 372
12.3 在嵌入式IGV 浏览器窗口查看基因组数据 . 373
12.3.1 设置嵌入式IGV 浏览器 . 374
12.3.2 为IGV 浏览器添加数据 . 375
12.3.3 设置访问令牌,查看私有数据 377
12.4 运行GATK 命令,学习、测试或解决问题 378
12.4.1 运行GATK 基本命令:HaplotypeCaller 379
12.4.2 加载数据(BAM 和VCF)到IGV 浏览器 380
12.4.3 在嵌入式IGV 浏览器解决一个有问题的变异识别结果 . 382
12.5 可视化变异上下文注释数据 . 385
12.5.1 用VariantsToTable 导出感兴趣的注释值 385
12.5.2 加载R 脚本,绘制函数图像 386
12.5.3 用makeDensityPlot 绘制QUAL 值密度图 387
12.5.4 绘制QUAL 和DP 值散点图 . 389
12.5.5 绘制附有边缘密度的散点图 . 390
12.6 小结和下一步学习内容 392
第13 章 在Terra 平台自己组装工作区 . 393
13.1 管理工作区内外数据 393
13.1.1 以工作区桶为数据仓库 394
13.1.2 访问你在Terra 平台外部管理的私有数据 . 394
13.1.3 访问Terra Data Library 数据 397
13.2 用基本组件重建教程工作区 . 398
13.2.1 新建工作区 398
13.2.2 添加工作流到Methods Repository 并将其导入工作区 400
13.2.3 用JSON 文件快速创建配置 . 402
13.2.4 添加数据表 403
13.2.5 填充工作区资源数据表 406
13.2.6 用数据表创建工作流配置 406
13.2.7 添加笔记本并检查运行环境 . 408
13.2.8 编写工作区文档并分享它 409
13.3 从GATK 最佳实践工作区开始 410
13.3.1 克隆GATK 最佳实践工作区 411
13.3.2 检查GATK 工作区数据表,理解数据组织方式 411
13.3.3 了解千人基因组高覆盖度数据集 414
13.3.4 从千人基因组工作区复制数据表 416
13.3.5 用TSV 加载文件从千人基因组工作区导入数据 417
13.3.6 对联合数据集执行联合识别分析 419
13.4 围绕数据集,建工作区 425
13.4.1 克隆千人基因组数据工作区 . 426
13.4.2 从Dockstore 导入工作流 426
13.4.3 配置工作流,使用数据表 429
13.5 小结和下一步学习内容 430
第14 章 撰写可完全复现的论文 . 433
14.1 案例研究概览 433
14.1.1 计算可复现和FAIR 框架 434
14.1.2 案例研究的原始研究成果和历史 436
14.1.3 评估可用信息和关键挑战 437
14.1.4 设计可复现的实现 . 439
14.2 生成合成数据集,替代私有数据 441
14.2.1 总体方法论 442
14.2.2 从千人基因组受试检索变异数据 444
14.2.3 根据真人数据,仿造外显子组数组 445
14.2.4 改变仿造外显子组 . 449
14.2.5 生成最终数据集 . 452
14.3 重建数据处理和分析方法论 . 452
14.3.1 匹配和变异发现 . 453
14.3.2 变异效果预测、排序和变异负荷分析 . 455
14.3.3 新实现的分析能力 . 456
14.4 通往FAIR 的道路漫长又曲折 . 457
14.5 总结 459
附录 术语表 . 461