我正在尝试使用 HAIL 解析以 .bgen 格式传递到 Spark DF 的基因组数据。该文件有 150 GB 大,不适合我集群上的单个节点。
我想知道是否有流式命令/方法可以将数据解析为我想要的目标格式,而不需要我预先将数据加载到内存中。
我真的很感激任何意见/想法!非常感谢!
我正在尝试使用 HAIL 解析以 .bgen 格式传递到 Spark DF 的基因组数据。该文件有 150 GB 大,不适合我集群上的单个节点。
我想知道是否有流式命令/方法可以将数据解析为我想要的目标格式,而不需要我预先将数据加载到内存中。
我真的很感激任何意见/想法!非常感谢!
您可以使用独立的 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 数组中。第一次读取时,它会创建一个元数据文件。之后,它立即启动并每秒读取数百万个概率。
我很乐意为使用或问题提供帮助。