首页 > 解决方案 > 使用 HAIL 解析 .bgen 文件,而不在单个节点上加载数据

问题描述

我正在尝试使用 HAIL 解析以 .bgen 格式传递到 Spark DF 的基因组数据。该文件有 150 GB 大,不适合我集群上的单个节点。

我想知道是否有流式命令/方法可以将数据解析为我想要的目标格式,而不需要我预先将数据加载到内存中。

我真的很感激任何意见/想法!非常感谢!

标签: spark-streaminggeneticsgenomehail

解决方案


您可以使用独立的 BGEN 阅读器来获取您需要的内容,然后将其转换为您想要的格式吗?

    import numpy as np
    from bgen_reader import open_bgen

    bgen = open_bgen("M:/deldir/genbgen/good/merged_487400x1100000.bgen")
     # read all samples and variants 1M to 1M+31
    val = bgen.read(np.s_[:,1000000:1000031])
    print(val.shape)

=> (487400, 31, 3)

'bed-reader' 库提供了一个受 NumPy 启发的 API,可以非常快速和轻松地将 BGEN 文件切片读取到 NumPy 数组中。第一次读取时,它会创建一个元数据文件。之后,它立即启动并每秒读取数百万个概率。

我很乐意为使用或问题提供帮助。

  • 卡尔

推荐阅读