我已将变体集加载到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个未知错误。我已经回过头几个小时,而且文档很少。
拜托,我能错过什么?
答案 0 :(得分:0)
感谢您提出这个问题。我们在六个月之前弃用了Variants API
,因为我们发现人们用它做的第一件事就是 BQ 导出。
所以,我们发布了一个全新的 FOSS工具,Variant Transforms,它完成了这项任务,但性能更高。
我们本周刚刚发布了新版本。请看一下,让我们知道您的想法。
除了代码和& docs,你也会看到我们的产品路线图。
请评论并分享您的想法!
仅供参考,我们很快将退役Variants API
。
Jonathan(PM,生物医学数据,谷歌云)
答案 1 :(得分:0)
看起来VCF文件中的一行或多行格式不正确,并且不符合spec。
我们刚刚发布了一个预处理程序/验证程序工具,可以显示所有此类格式错误的记录。请尝试一下:https://github.com/googlegenomics/gcp-variant-transforms/blob/master/docs/vcf_files_preprocessor.md(请与--report_all_conflicts
一起使用以确保您获得完整报告。)
如果事实证明只有少数记录格式不正确,那么您可以在VCF文件中手动修复它们,或者使用vcf_to_bq
运行--allow_malformed_records
管道,这将跳过格式错误的记录(仅记录它们并加载其余部分。