Анализируйте файлы .bgen с помощью HAIL без загрузки данных на одном узле

Я пытаюсь проанализировать геномные данные, которые доставляются в формате.bgen в Spark DF с помощью HAIL. Размер файла составляет 150 ГБ, и он не поместится в один узел моего кластера.

Мне интересно, есть ли потоковые команды / способы для анализа данных в желаемый целевой формат, которые не требуют от меня загрузки данных в память заранее.

Буду очень признателен за любые предложения / идеи! Большое спасибо!

2 ответа

Hail не загружает данные в память, а течет через нее. С какой ошибкой вы столкнулись? Следующее должно работать нормально:

      import hail as hl

mt = hl.import_bgen('gs://path/to/file.bgen')
mt.show()

Вы можете использоватьto_sparkчтобы получить фрейм данных Spark из таблицы Hail Matrix.

Могли бы вы использовать автономный считыватель 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' предлагает API-интерфейс, вдохновленный NumPy, который позволяет очень быстро и легко считывать фрагменты файлов BGEN в массивы NumPy. При первом чтении создается файл метаданных. После этого он запускается мгновенно и считывает миллионы вероятностей в секунду.

Я рад помочь с использованием или вопросами.

  • Карл
Другие вопросы по тегам