联合基因分型管道
注意
用于基因组学的 Databricks Runtime 现已弃用。 Databricks 不再开发新版本的用于基因组学的 Databricks Runtime,并将在 2022年 9 月 24 日删除对用于基因组学的 Databricks Runtime 的支持,届时用于基因组学的 Databricks Runtime 7.3 LTS 支持将终止。 到那时,创建群集时将无法选择用于基因组学的 Databricks Runtime。 有关 Databricks Runtime 弃用策略和计划的详细信息,请参阅支持的 Databricks 运行时版本和支持计划。 属于运行时一部分的生物信息学库已作为 Docker 容器发布,可在 ProjectGlow Dockerhub 页上找到。
Azure Databricks 联合基因分型管道是 GATK 最佳做法兼容管道,用于使用 GenotypeGVCFs 进行联合基因分型。
演练
管道通常包括以下步骤:
- 将突变引入到 Delta Lake。
- 使用 GenotypeGVCF 联合调用队列。
在突变引入过程中,分批处理单样本 gVCF,并将行存储在 Delta Lake 中,以提供容错、快速查询和增量联合基因分型。 在联合基因分型步骤中,从 Delta Lake 提取 gVCF 行,将其拆分为箱,然后将其分发到分区。 对于每个突变位点,将识别每个样本的相关 gVCF 行并将其用于基因再分型。
设置
管道将作为 Azure Databricks 作业运行。 可能会有 Azure Databricks 解决方案架构师很与你协作,以设置初始作业。 必要的详细信息如下:
{
"autoscale.min_workers": {
"type": "unlimited",
"defaultValue": 1
},
"autoscale.max_workers": {
"type": "unlimited",
"defaultValue": 25
},
"node_type_id": {
"type": "unlimited",
"defaultValue": "Standard_L32s_v2"
},
"spark_env_vars.refGenomeId": {
"type": "unlimited",
"defaultValue": "grch38"
},
"spark_version": {
"type": "regex",
"pattern": ".*-hls.*",
"defaultValue": "7.4.x-hls-scala2.12"
}
}
- 群集配置应使用用于基因组学的 Databricks Runtime(已弃用)。
- 此任务应为此页面底部提供的联合基因分型管道笔记本。
- 若要获得最佳性能,请使用针对存储进行了优化的 VM。 建议使用 Standard_L32s_v2。
- 若要降低成本,请启用自动缩放,根据延迟要求最少保留 1 个辅助角色,最多扩展到 10-50 个。
参考基因组
必须使用环境变量来配置参考基因组。 若要使用 GRCh37,请设置环境变量:
refGenomeId=grch37
若要使用 GRCh38,请将 grch37 更改为 grch38。
若要使用自定义参考基因组,请参阅自定义参考基因组中的说明。
参数
管道接受控制其行为的参数。 此处记录了最重要且最常更改的参数。 若要查看所有可用参数及其使用信息,请运行管道笔记本的第一个单元。 定期添加新的参数。 导入笔记本并将它设置为作业任务后,可以为所有运行或单个运行设置这些参数。
| 参数 | 默认 | 描述 |
|---|---|---|
| manifest | 不适用 | 描述输入的清单。 |
| 输出 | 不适用 | 写入管道输出的路径。 |
| replayMode | skip | 下列其中一项: * skip:如果输出已存在,则跳过相关阶段。* overwrite:将删除现有输出。 |
| exportVCF | false | 如果为 true,则管道会将结果写入 VCF 以及 Delta Lake。 |
| targetedRegions | 不适用 | 包含要调用的区域的文件的路径。 如果省略,则调用所有区域。 |
| gvcfDeltaOutput | 不适用 | 如果指定,则在进行基因分型之前,会将 gVCF 引入到 Delta 表中。 仅应在希望多次联合调用同一 gVCF 时指定此参数。 |
| performValidation | false | 如果为 true,则系统会验证每个记录是否包含用于联合基因分型的必要信息。 特别是,它会检查是否存在正确数量的基因型概率。 |
| validationStringency | STRICT | 在加载和验证过程中如何处理格式错误的记录。 * STRICT:作业失败* LENIENT:记录警告并删除记录* SILENT:删除记录且不发出警告 |
提示
若要从现有 Delta 表执行联合调用,请将 gvcfDeltaOutput 设置为表路径,并将 replayMode 设置为 skip。 还可以提供 manifest,它将用于定义 VCF 架构和样本,否则,将从 Delta 表中推断出它们。 忽略此设置中的 targetedRegions 和 performValidation 参数。
输出
基因再分型的突变均写入到提供的输出目录内的 Delta 表中。 此外,如果将管道配置为导出 VCF,这些变体也会显示在输出目录下。
output
|---genotypes
|---Delta files
|---genotypes.vcf
|---VCF files
清单格式
注意
用于基因组学的 Databricks Runtime 6.6 及更高版本支持清单 blob。
清单是一个文件或 blob,用于描述查找输入单样本 GVCF 文件的位置,其中每个文件路径都位于新行中。 例如:
HG00096.g.vcf.bgz
HG00097.g.vcf.bgz
提示
如果提供的清单是文件,则每一行可以是绝对路径或相对于清单文件的路径。 如果提供的清单是 blob,则行字段必须是绝对路径。 可以包含 glob (*),以匹配许多文件。
疑难解答
作业由于出现 而失败
此错误通常表明输入记录的基因型概率数量不正确。 尝试将 performValidation 选项设置为 true,并将 validationStringency 选项设置为 LENIENT 或 SILENT。
其他使用信息
联合基因分型管道与其他 Azure Databricks 管道有着许多相同的操作详细信息。 有关更详细的用法信息,例如输出格式结构、以编程方式运行的提示以及设置自定义参考基因组的步骤,请参阅 DNASeq 管道。