Как можно экспортировать набор вариантов Cloud Genomics в BigQuery теперь, когда varientsets.export устарел?
Я загрузил набор вариантов в Cloud Genomics и пытаюсь экспортировать его в BigQuery. Первым подходом, который я попробовал, было использование конвейера, как описано здесь:
https://cloud.google.com/genomics/docs/how-tos/load-variants
Однако через 20 минут процесс не удался. Согласно сообщениям об ошибках StackDriver, это похоже на проблему в файле VCF, хотя я затрудняюсь объяснить, как это можно исправить:
ValueError: Invalid record in VCF file. Error: list index out of range
at next (/usr/local/lib/python2.7/dist-packages/gcp_variant_transforms/beam_io/vcfio.py:476)
at read_records (/usr/local/lib/python2.7/dist-packages/gcp_variant_transforms/beam_io/vcfio.py:398)
at dataflow_worker.native_operations.NativeReadOperation.start (native_operations.py:48)
at dataflow_worker.native_operations.NativeReadOperation.start (native_operations.py:44)
at dataflow_worker.native_operations.NativeReadOperation.start (native_operations.py:39)
at dataflow_worker.native_operations.NativeReadOperation.start (native_operations.py:38)
at execute (/usr/local/lib/python2.7/dist-packages/dataflow_worker/executor.py:167)
at do_work (/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py:609)
Поэтому я продолжил искать другие варианты. Я обратился к API:
https://cloud.google.com/genomics/reference/rest/v1/variantsets/export
Я удостоверился, что мой аккаунт был администратором BigQuery и владельцем варианта Genoimcs. Я использовал следующие параметры:
{
"projectId": "my-project",
"format": "FORMAT_BIGQUERY",
"bigqueryDataset": "my_dataset",
"bigqueryTable": "new_table"
}
При отправке я получаю следующую ошибку:
{
"error": {
"code": 500,
"message": "Unknown Error.",
"status": "UNKNOWN"
}
}
Я также попробовал это из командной строки: gcloud alpha genomics variantsets export variantset_id bigquery_table --bigquery-dataset=my-dataset --bigquery-project=my-project
,
Но это также дает мне 500 неизвестных ошибок. Я возвращался к этому в течение нескольких часов, и документация довольно скудная.
Пожалуйста, что я мог пропустить?
2 ответа
Похоже, что одна или несколько строк в файле VCF искажены и не соответствуют спецификации.
Мы только что выпустили инструмент препроцессора / валидатора, который показывает отчет обо всех таких искаженных записях. Пожалуйста, попробуйте: https://github.com/googlegenomics/gcp-variant-transforms/blob/master/docs/vcf_files_preprocessor.md (пожалуйста, запустите с --report_all_conflicts
чтобы убедиться, что вы получите полный отчет).
Если окажется, что только несколько записей искажены, вы можете исправить их вручную в файле VCF или запустить vcf_to_bq
трубопровод с --allow_malformed_records
, который пропустит искаженные (просто записывает их) и загрузит остальные.
Спасибо, что задали этот вопрос. Мы устарели Variants API
шесть месяцев назад, потому что мы обнаружили, что первое, что люди сделали с этим, был экспорт BQ.
Итак, мы выпустили новый инструмент FOSS, Variant Transforms, который просто выполняет эту задачу, но является более производительным.
На самом деле у нас только что был новый релиз на этой неделе. Пожалуйста, посмотрите и дайте нам знать, что вы думаете.
В дополнение к коду и документам, вы также увидите много нашей дорожной карты продукта.
Пожалуйста, прокомментируйте и поделитесь своими мыслями!
К вашему сведению, мы будем выводить из эксплуатации Variants API
скоро.
Джонатан (PM, биомедицинские данные, Google Cloud)