From 15a153ae4da523efd3fa8923a97c2b1815ee7b15 Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Fri, 2 Aug 2024 15:08:20 -0400 Subject: [PATCH 01/17] use family and project tables in sample_type directory --- .../{ => WES}/F000002_2.ht/.README.txt.crc | Bin .../{ => WES}/F000002_2.ht/._SUCCESS.crc | Bin .../F000002_2.ht/.metadata.json.gz.crc | Bin .../{ => WES}/F000002_2.ht/README.txt | 0 .../families/{ => WES}/F000002_2.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../F000002_2.ht/globals/metadata.json.gz | Bin .../F000002_2.ht/globals/parts/.part-0.crc | Bin .../F000002_2.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/F000002_2.ht/metadata.json.gz | Bin .../F000002_2.ht/rows/.metadata.json.gz.crc | Bin .../F000002_2.ht/rows/metadata.json.gz | Bin ...0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.crc | Bin ...art-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce | Bin .../{ => WES}/R0001_1kg.ht/.README.txt.crc | Bin .../{ => WES}/R0001_1kg.ht/._SUCCESS.crc | Bin .../R0001_1kg.ht/.metadata.json.gz.crc | Bin .../{ => WES}/R0001_1kg.ht/README.txt | 0 .../projects/{ => WES}/R0001_1kg.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/globals/metadata.json.gz | Bin .../R0001_1kg.ht/globals/parts/.part-0.crc | Bin .../R0001_1kg.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/R0001_1kg.ht/metadata.json.gz | Bin .../R0001_1kg.ht/rows/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/rows/metadata.json.gz | Bin ...0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.crc | Bin ...art-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f | Bin .../{ => WES}/F000002_2.ht/.README.txt.crc | Bin .../{ => WES}/F000002_2.ht/._SUCCESS.crc | Bin .../F000002_2.ht/.metadata.json.gz.crc | Bin .../{ => WES}/F000002_2.ht/README.txt | 0 .../families/{ => WES}/F000002_2.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../F000002_2.ht/globals/metadata.json.gz | Bin .../F000002_2.ht/globals/parts/.part-0.crc | Bin .../F000002_2.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/F000002_2.ht/metadata.json.gz | Bin .../F000002_2.ht/rows/.metadata.json.gz.crc | Bin .../F000002_2.ht/rows/metadata.json.gz | Bin ...0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.crc | Bin ...art-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8 | Bin .../{ => WES}/R0001_1kg.ht/.README.txt.crc | Bin .../{ => WES}/R0001_1kg.ht/._SUCCESS.crc | Bin .../R0001_1kg.ht/.metadata.json.gz.crc | Bin .../{ => WES}/R0001_1kg.ht/README.txt | 0 .../projects/{ => WES}/R0001_1kg.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/globals/metadata.json.gz | Bin .../R0001_1kg.ht/globals/parts/.part-0.crc | Bin .../R0001_1kg.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/R0001_1kg.ht/metadata.json.gz | Bin .../R0001_1kg.ht/rows/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/rows/metadata.json.gz | Bin ...0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.crc | Bin ...art-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06 | Bin .../{ => WES}/F000002_2.ht/.README.txt.crc | Bin .../{ => WES}/F000002_2.ht/._SUCCESS.crc | Bin .../F000002_2.ht/.metadata.json.gz.crc | Bin .../{ => WES}/F000002_2.ht/README.txt | 0 .../families/{ => WES}/F000002_2.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../F000002_2.ht/globals/metadata.json.gz | Bin .../F000002_2.ht/globals/parts/.part-0.crc | Bin .../F000002_2.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/F000002_2.ht/metadata.json.gz | Bin .../F000002_2.ht/rows/.metadata.json.gz.crc | Bin .../F000002_2.ht/rows/metadata.json.gz | Bin ...0-5b60e665-6a2b-43ec-b282-1003ad80e87c.crc | Bin ...art-0-5b60e665-6a2b-43ec-b282-1003ad80e87c | Bin .../{ => WES}/R0001_1kg.ht/.README.txt.crc | Bin .../{ => WES}/R0001_1kg.ht/._SUCCESS.crc | Bin .../R0001_1kg.ht/.metadata.json.gz.crc | Bin .../{ => WES}/R0001_1kg.ht/README.txt | 0 .../projects/{ => WES}/R0001_1kg.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/globals/metadata.json.gz | Bin .../R0001_1kg.ht/globals/parts/.part-0.crc | Bin .../R0001_1kg.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/R0001_1kg.ht/metadata.json.gz | Bin .../R0001_1kg.ht/rows/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/rows/metadata.json.gz | Bin ...0-ad3760b2-5a76-4b94-9268-9673bf62e956.crc | Bin ...art-0-ad3760b2-5a76-4b94-9268-9673bf62e956 | Bin .../{ => WGS}/R0003_test.ht/.README.txt.crc | Bin .../{ => WGS}/R0003_test.ht/._SUCCESS.crc | Bin .../R0003_test.ht/.metadata.json.gz.crc | Bin .../{ => WGS}/R0003_test.ht/README.txt | 0 .../projects/{ => WGS}/R0003_test.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../R0003_test.ht/globals/metadata.json.gz | Bin .../R0003_test.ht/globals/parts/.part-0.crc | Bin .../R0003_test.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WGS}/R0003_test.ht/metadata.json.gz | Bin .../R0003_test.ht/rows/.metadata.json.gz.crc | Bin .../R0003_test.ht/rows/metadata.json.gz | Bin ...0-28a643dd-8eb0-4510-8718-6e98b4f4274d.crc | Bin ...art-0-28a643dd-8eb0-4510-8718-6e98b4f4274d | Bin .../{ => WES}/F000002_2.ht/.README.txt.crc | Bin .../{ => WES}/F000002_2.ht/._SUCCESS.crc | Bin .../F000002_2.ht/.metadata.json.gz.crc | Bin .../{ => WES}/F000002_2.ht/README.txt | 0 .../families/{ => WES}/F000002_2.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../F000002_2.ht/globals/metadata.json.gz | Bin .../F000002_2.ht/globals/parts/.part-0.crc | Bin .../F000002_2.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/F000002_2.ht/metadata.json.gz | Bin .../F000002_2.ht/rows/.metadata.json.gz.crc | Bin .../F000002_2.ht/rows/metadata.json.gz | Bin ...0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.crc | Bin ...8-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48 | Bin .../{ => WES}/R0001_1kg.ht/.README.txt.crc | Bin .../{ => WES}/R0001_1kg.ht/._SUCCESS.crc | Bin .../R0001_1kg.ht/.metadata.json.gz.crc | Bin .../{ => WES}/R0001_1kg.ht/README.txt | 0 .../projects/{ => WES}/R0001_1kg.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/globals/metadata.json.gz | Bin .../R0001_1kg.ht/globals/parts/.part-0.crc | Bin .../R0001_1kg.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/R0001_1kg.ht/metadata.json.gz | Bin .../R0001_1kg.ht/rows/.metadata.json.gz.crc | Bin .../R0001_1kg.ht/rows/metadata.json.gz | Bin ...0-4bb6b390-07db-405c-abad-c57b5aa95da0.crc | Bin ...art-0-4bb6b390-07db-405c-abad-c57b5aa95da0 | Bin .../{ => WGS}/F000011_11.ht/.README.txt.crc | Bin .../{ => WGS}/F000011_11.ht/._SUCCESS.crc | Bin .../F000011_11.ht/.metadata.json.gz.crc | Bin .../{ => WGS}/F000011_11.ht/README.txt | 0 .../families/{ => WGS}/F000011_11.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../F000011_11.ht/globals/metadata.json.gz | Bin .../F000011_11.ht/globals/parts/.part-0.crc | Bin .../F000011_11.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WGS}/F000011_11.ht/metadata.json.gz | Bin .../F000011_11.ht/rows/.metadata.json.gz.crc | Bin .../F000011_11.ht/rows/metadata.json.gz | Bin ...0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc | Bin ...8-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 | Bin .../{ => WGS}/R0003_test.ht/.README.txt.crc | Bin .../{ => WGS}/R0003_test.ht/._SUCCESS.crc | Bin .../R0003_test.ht/.metadata.json.gz.crc | Bin .../{ => WGS}/R0003_test.ht/README.txt | 0 .../projects/{ => WGS}/R0003_test.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../R0003_test.ht/globals/metadata.json.gz | Bin .../R0003_test.ht/globals/parts/.part-0.crc | Bin .../R0003_test.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WGS}/R0003_test.ht/metadata.json.gz | Bin .../R0003_test.ht/rows/.metadata.json.gz.crc | Bin .../R0003_test.ht/rows/metadata.json.gz | Bin ...0-cbf84037-3354-427a-98a6-b953711ae5bc.crc | Bin ...art-0-cbf84037-3354-427a-98a6-b953711ae5bc | Bin hail_search/queries/base.py | 9 +- hail_search/test_search.py | 124 +++++++++--------- hail_search/test_utils.py | 34 ++--- seqr/utils/search/hail_search_utils.py | 19 ++- seqr/utils/search/hail_search_utils_tests.py | 2 +- 203 files changed, 98 insertions(+), 90 deletions(-) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/README.txt (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.index.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/index (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/parts/.part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/parts/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/README.txt (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.index.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/index (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/parts/.part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.crc (100%) rename hail_search/fixtures/GRCh37/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/parts/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/index (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/rows/parts/.part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.crc (100%) rename hail_search/fixtures/GRCh38/MITO/families/{ => WES}/F000002_2.ht/rows/parts/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8 (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/index (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/rows/parts/.part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.crc (100%) rename hail_search/fixtures/GRCh38/MITO/projects/{ => WES}/R0001_1kg.ht/rows/parts/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06 (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/index (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/parts/.part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/parts/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/index (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/parts/.part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WES}/R0001_1kg.ht/rows/parts/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956 (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/index (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/rows/parts/.part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.crc (100%) rename hail_search/fixtures/GRCh38/SNV_INDEL/projects/{ => WGS}/R0003_test.ht/rows/parts/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/index (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/rows/parts/.part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/families/{ => WES}/F000002_2.ht/rows/parts/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48 (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/index (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/rows/parts/.part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.crc (100%) rename hail_search/fixtures/GRCh38/SV_WES/projects/{ => WES}/R0001_1kg.ht/rows/parts/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0 (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/index (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/rows/parts/.part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/families/{ => WGS}/F000011_11.ht/rows/parts/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc (100%) rename hail_search/fixtures/GRCh38/SV_WGS/projects/{ => WGS}/R0003_test.ht/rows/parts/part-0-cbf84037-3354-427a-98a6-b953711ae5bc (100%) diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/.README.txt.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/.README.txt.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/README.txt b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/README.txt rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/README.txt diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/_SUCCESS b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/_SUCCESS rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.index.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.index.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.index.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/index b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/index similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/index rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/index diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/parts/.part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/.part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/parts/.part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/.part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/parts/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce b/hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/families/F000002_2.ht/rows/parts/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce rename to hail_search/fixtures/GRCh37/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/part-0-061e05c1-cd1f-474b-b8f9-472cb004e4ce diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/.README.txt.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/.README.txt.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/README.txt b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/README.txt rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/README.txt diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/_SUCCESS b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/_SUCCESS rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.index.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.index.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.index.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/index b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/index similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/index rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/index diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/.part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.crc b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/.part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.crc similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/.part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.crc rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/.part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f.crc diff --git a/hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f b/hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f similarity index 100% rename from hail_search/fixtures/GRCh37/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f rename to hail_search/fixtures/GRCh37/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/part-0-cb4462be-ab9b-4fa8-bc1f-ea8fab6fdf0f diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/README.txt b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/README.txt rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/_SUCCESS b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.index.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.index.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/index b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/index rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/index diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/index/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/parts/.part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.crc b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/parts/.part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/parts/.part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.crc rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/parts/.part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8.crc diff --git a/hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/parts/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8 b/hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/parts/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8 similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/families/F000002_2.ht/rows/parts/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8 rename to hail_search/fixtures/GRCh38/MITO/families/WES/F000002_2.ht/rows/parts/part-0-1db7379b-e75c-4ed2-b79b-28ffb9b115e8 diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/README.txt b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/README.txt rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/_SUCCESS b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.index.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.index.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/index b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/index rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/index diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/index/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/parts/.part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.crc b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/parts/.part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.crc similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/parts/.part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.crc rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/parts/.part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06.crc diff --git a/hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/parts/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06 b/hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/parts/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06 similarity index 100% rename from hail_search/fixtures/GRCh38/MITO/projects/R0001_1kg.ht/rows/parts/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06 rename to hail_search/fixtures/GRCh38/MITO/projects/WES/R0001_1kg.ht/rows/parts/part-0-9a202b26-a04d-4337-9aa5-bbab41b4bc06 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/README.txt b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/README.txt rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.index.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.index.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/index b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/index rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/index diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/index/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/parts/.part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/.part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/parts/.part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/.part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/parts/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c b/hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/families/F000002_2.ht/rows/parts/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c rename to hail_search/fixtures/GRCh38/SNV_INDEL/families/WES/F000002_2.ht/rows/parts/part-0-5b60e665-6a2b-43ec-b282-1003ad80e87c diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/README.txt b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/README.txt rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.index.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.index.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/index b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/index rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/index diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/index/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/.part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/.part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/.part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/.part-0-ad3760b2-5a76-4b94-9268-9673bf62e956.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956 b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956 similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0001_1kg.ht/rows/parts/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956 rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0001_1kg.ht/rows/parts/part-0-ad3760b2-5a76-4b94-9268-9673bf62e956 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/README.txt b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/README.txt rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.index.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.index.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/index b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/index rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/index diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/index/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/parts/.part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/parts/.part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/parts/.part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/parts/.part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/parts/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/parts/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d similarity index 100% rename from hail_search/fixtures/GRCh38/SNV_INDEL/projects/R0003_test.ht/rows/parts/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WGS/R0003_test.ht/rows/parts/part-0-28a643dd-8eb0-4510-8718-6e98b4f4274d diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/README.txt rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.index.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.index.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/index b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/index rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/index diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/index/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/parts/.part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/parts/.part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/parts/.part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.crc rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/parts/.part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/parts/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48 b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/parts/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48 similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/F000002_2.ht/rows/parts/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48 rename to hail_search/fixtures/GRCh38/SV_WES/families/WES/F000002_2.ht/rows/parts/part-0-668-0-0-a8c75457-2bef-dd0d-b9b9-f76af029cc48 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/README.txt rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.index.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.index.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/index b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/index rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/index diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/index/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/parts/.part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/parts/.part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/parts/.part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.crc rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/parts/.part-0-4bb6b390-07db-405c-abad-c57b5aa95da0.crc diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/parts/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0 b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/parts/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0 similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/projects/R0001_1kg.ht/rows/parts/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0 rename to hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0001_1kg.ht/rows/parts/part-0-4bb6b390-07db-405c-abad-c57b5aa95da0 diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/README.txt rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.index.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.index.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/index b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/index rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/index diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/parts/.part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/parts/.part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/parts/.part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/parts/.part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/parts/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 b/hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/parts/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/families/F000011_11.ht/rows/parts/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 rename to hail_search/fixtures/GRCh38/SV_WGS/families/WGS/F000011_11.ht/rows/parts/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/README.txt rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc diff --git a/hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/parts/part-0-cbf84037-3354-427a-98a6-b953711ae5bc b/hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/parts/part-0-cbf84037-3354-427a-98a6-b953711ae5bc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WGS/projects/R0003_test.ht/rows/parts/part-0-cbf84037-3354-427a-98a6-b953711ae5bc rename to hail_search/fixtures/GRCh38/SV_WGS/projects/WGS/R0003_test.ht/rows/parts/part-0-cbf84037-3354-427a-98a6-b953711ae5bc diff --git a/hail_search/queries/base.py b/hail_search/queries/base.py index fb8565dcde..99ca936ac6 100644 --- a/hail_search/queries/base.py +++ b/hail_search/queries/base.py @@ -296,7 +296,8 @@ def _parse_sample_data(self, sample_data): def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_partitions=MAX_PARTITIONS, **kwargs): if len(project_samples) == 1: project_guid = list(project_samples.keys())[0] - project_ht = self._read_table(f'projects/{project_guid}.ht', use_ssd_dir=True) + sample_type = list(project_samples[project_guid].values())[0][0]['sample_type'] + project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) return self._filter_entries_table(project_ht, project_samples[project_guid], **kwargs) # Need to chunk tables or else evaluating table globals throws LineTooLong exception @@ -308,8 +309,9 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ project_hts = [] sample_data = {} for project_guid, project_sample_data in project_samples.items(): + sample_type = list(project_sample_data.values())[0][0]['sample_type'] project_ht = self._read_table( - f'projects/{project_guid}.ht', + f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True, skip_missing_field='family_entries' if skip_all_missing else None, ) @@ -338,7 +340,8 @@ def import_filtered_table(self, project_samples, num_families, intervals=None, * if num_families == 1: family_sample_data = list(project_samples.values())[0] family_guid = list(family_sample_data.keys())[0] - family_ht = self._read_table(f'families/{family_guid}.ht', use_ssd_dir=True) + sample_type = family_sample_data[family_guid][0]['sample_type'] + family_ht = self._read_table(f'families/{sample_type}/{family_guid}.ht', use_ssd_dir=True) family_ht = family_ht.transmute(family_entries=[family_ht.entries]) family_ht = family_ht.annotate_globals( family_guids=[family_guid], family_samples={family_guid: family_ht.sample_ids}, diff --git a/hail_search/test_search.py b/hail_search/test_search.py index d42883b674..5363a6c115 100644 --- a/hail_search/test_search.py +++ b/hail_search/test_search.py @@ -254,7 +254,7 @@ async def test_single_family_search(self): ) await self._assert_expected_search( - [GCNV_VARIANT1, GCNV_VARIANT2, GCNV_VARIANT3, GCNV_VARIANT4], omit_sample_type='SNV_INDEL', gene_counts=GCNV_GENE_COUNTS, + [GCNV_VARIANT1, GCNV_VARIANT2, GCNV_VARIANT3, GCNV_VARIANT4], omit_data_type='SNV_INDEL', gene_counts=GCNV_GENE_COUNTS, ) await self._assert_expected_search( @@ -363,7 +363,7 @@ async def test_single_project_search(self): 'ENSG00000277258': {'total': 1, 'families': {'F000002_2': 1}}, } await self._assert_expected_search( - [VARIANT1, VARIANT2, MULTI_FAMILY_VARIANT, VARIANT4], omit_sample_type='SV_WES', gene_counts=variant_gene_counts, + [VARIANT1, VARIANT2, MULTI_FAMILY_VARIANT, VARIANT4], omit_data_type='SV_WES', gene_counts=variant_gene_counts, ) await self._assert_expected_search( @@ -411,7 +411,7 @@ async def test_inheritance_filter(self): ) await self._assert_expected_search( - [GCNV_VARIANT3], inheritance_mode=inheritance_mode, annotations=NEW_SV_FILTER, omit_sample_type='SNV_INDEL', + [GCNV_VARIANT3], inheritance_mode=inheritance_mode, annotations=NEW_SV_FILTER, omit_data_type='SNV_INDEL', ) await self._assert_expected_search( @@ -455,7 +455,7 @@ async def test_inheritance_filter(self): ) await self._assert_expected_search( - [[GCNV_VARIANT3, GCNV_VARIANT4]], inheritance_mode=inheritance_mode, omit_sample_type='SNV_INDEL', gene_counts={ + [[GCNV_VARIANT3, GCNV_VARIANT4]], inheritance_mode=inheritance_mode, omit_data_type='SNV_INDEL', gene_counts={ 'ENSG00000275023': {'total': 2, 'families': {'F000002_2': 2}}, 'ENSG00000277258': {'total': 1, 'families': {'F000002_2': 1}}, 'ENSG00000277972': {'total': 1, 'families': {'F000002_2': 1}}, @@ -497,7 +497,7 @@ async def test_inheritance_filter(self): ) await self._assert_expected_search( - [GCNV_VARIANT3, [GCNV_VARIANT3, GCNV_VARIANT4]], inheritance_mode=inheritance_mode, omit_sample_type='SNV_INDEL', gene_counts={ + [GCNV_VARIANT3, [GCNV_VARIANT3, GCNV_VARIANT4]], inheritance_mode=inheritance_mode, omit_data_type='SNV_INDEL', gene_counts={ 'ENSG00000275023': {'total': 3, 'families': {'F000002_2': 3}}, 'ENSG00000277258': {'total': 1, 'families': {'F000002_2': 1}}, 'ENSG00000277972': {'total': 1, 'families': {'F000002_2': 1}}, @@ -545,7 +545,7 @@ async def test_quality_filter(self): ) await self._assert_expected_search( - [], annotations=NEW_SV_FILTER, quality_filter=gcnv_quality_filter, omit_sample_type='SNV_INDEL', + [], annotations=NEW_SV_FILTER, quality_filter=gcnv_quality_filter, omit_data_type='SNV_INDEL', ) sv_quality_filter = {'min_gq_sv': 40} @@ -558,7 +558,7 @@ async def test_quality_filter(self): ) await self._assert_expected_search( - [VARIANT2, MULTI_FAMILY_VARIANT], quality_filter={'min_gq': 40, 'vcf_filter': 'pass'}, omit_sample_type='SV_WES', + [VARIANT2, MULTI_FAMILY_VARIANT], quality_filter={'min_gq': 40, 'vcf_filter': 'pass'}, omit_data_type='SV_WES', ) await self._assert_expected_search( @@ -571,34 +571,34 @@ async def test_quality_filter(self): ) await self._assert_expected_search( - [VARIANT1, VARIANT2, FAMILY_3_VARIANT], quality_filter={'min_ab': 50}, omit_sample_type='SV_WES', + [VARIANT1, VARIANT2, FAMILY_3_VARIANT], quality_filter={'min_ab': 50}, omit_data_type='SV_WES', ) await self._assert_expected_search( [VARIANT2, VARIANT3], quality_filter={'min_ab': 70, 'affected_only': True}, - omit_sample_type='SV_WES', + omit_data_type='SV_WES', ) quality_filter.update({'min_gq': 40, 'min_ab': 50}) await self._assert_expected_search( - [VARIANT2, FAMILY_3_VARIANT], quality_filter=quality_filter, omit_sample_type='SV_WES', + [VARIANT2, FAMILY_3_VARIANT], quality_filter=quality_filter, omit_data_type='SV_WES', ) annotations = {'splice_ai': '0.0'} # Ensures no variants are filtered out by annotation/path filters await self._assert_expected_search( - [VARIANT1, VARIANT2, FAMILY_3_VARIANT, MITO_VARIANT1, MITO_VARIANT3], quality_filter=quality_filter, omit_sample_type='SV_WES', + [VARIANT1, VARIANT2, FAMILY_3_VARIANT, MITO_VARIANT1, MITO_VARIANT3], quality_filter=quality_filter, omit_data_type='SV_WES', annotations=annotations, pathogenicity={'clinvar': ['likely_pathogenic', 'vus_or_conflicting']}, sample_data={**EXPECTED_SAMPLE_DATA, **FAMILY_2_MITO_SAMPLE_DATA}, ) await self._assert_expected_search( - [VARIANT2, FAMILY_3_VARIANT], quality_filter=quality_filter, omit_sample_type='SV_WES', + [VARIANT2, FAMILY_3_VARIANT], quality_filter=quality_filter, omit_data_type='SV_WES', annotations=annotations, pathogenicity={'clinvar': ['pathogenic']}, ) async def test_location_search(self): await self._assert_expected_search( - [MULTI_FAMILY_VARIANT, VARIANT4], omit_sample_type='SV_WES', **LOCATION_SEARCH, + [MULTI_FAMILY_VARIANT, VARIANT4], omit_data_type='SV_WES', **LOCATION_SEARCH, ) await self._assert_expected_search( @@ -606,7 +606,7 @@ async def test_location_search(self): sv_intervals = ['1:9310023-9380264', '17:38717636-38724781'] await self._assert_expected_search( - [GCNV_VARIANT3, GCNV_VARIANT4], intervals=sv_intervals, gene_ids=['ENSG00000275023'], omit_sample_type='SNV_INDEL', + [GCNV_VARIANT3, GCNV_VARIANT4], intervals=sv_intervals, gene_ids=['ENSG00000275023'], omit_data_type='SNV_INDEL', ) await self._assert_expected_search( @@ -619,11 +619,11 @@ async def test_location_search(self): ) await self._assert_expected_search( - [VARIANT1, VARIANT2], omit_sample_type='SV_WES', **EXCLUDE_LOCATION_SEARCH, + [VARIANT1, VARIANT2], omit_data_type='SV_WES', **EXCLUDE_LOCATION_SEARCH, ) await self._assert_expected_search( - [GCNV_VARIANT1, GCNV_VARIANT2], intervals=sv_intervals, exclude_intervals=True, omit_sample_type='SNV_INDEL', + [GCNV_VARIANT1, GCNV_VARIANT2], intervals=sv_intervals, exclude_intervals=True, omit_data_type='SNV_INDEL', ) await self._assert_expected_search( @@ -631,18 +631,18 @@ async def test_location_search(self): ) await self._assert_expected_search( - [SELECTED_TRANSCRIPT_MULTI_FAMILY_VARIANT], omit_sample_type='SV_WES', + [SELECTED_TRANSCRIPT_MULTI_FAMILY_VARIANT], omit_data_type='SV_WES', intervals=LOCATION_SEARCH['intervals'][-1:], gene_ids=LOCATION_SEARCH['gene_ids'][:1] ) await self._assert_expected_search( [GCNV_VARIANT4], padded_interval={'chrom': '17', 'start': 38720781, 'end': 38738703, 'padding': 0.2}, - omit_sample_type='SNV_INDEL', + omit_data_type='SNV_INDEL', ) await self._assert_expected_search( [], padded_interval={'chrom': '17', 'start': 38720781, 'end': 38738703, 'padding': 0.1}, - omit_sample_type='SNV_INDEL', + omit_data_type='SNV_INDEL', ) await self._assert_expected_search( @@ -661,20 +661,20 @@ async def test_location_search(self): ) async def test_variant_id_search(self): - await self._assert_expected_search([VARIANT2], omit_sample_type='SV_WES', **RSID_SEARCH) + await self._assert_expected_search([VARIANT2], omit_data_type='SV_WES', **RSID_SEARCH) - await self._assert_expected_search([VARIANT1], omit_sample_type='SV_WES', **VARIANT_ID_SEARCH) + await self._assert_expected_search([VARIANT1], omit_data_type='SV_WES', **VARIANT_ID_SEARCH) await self._assert_expected_search( - [VARIANT1], omit_sample_type='SV_WES', variant_ids=VARIANT_ID_SEARCH['variant_ids'][:1], + [VARIANT1], omit_data_type='SV_WES', variant_ids=VARIANT_ID_SEARCH['variant_ids'][:1], ) await self._assert_expected_search( - [], omit_sample_type='SV_WES', variant_ids=VARIANT_ID_SEARCH['variant_ids'][1:], + [], omit_data_type='SV_WES', variant_ids=VARIANT_ID_SEARCH['variant_ids'][1:], ) variant_keys = ['suffix_95340_DUP', 'suffix_140608_DUP'] - await self._assert_expected_search([GCNV_VARIANT1, GCNV_VARIANT4], omit_sample_type='SNV_INDEL', variant_keys=variant_keys) + await self._assert_expected_search([GCNV_VARIANT1, GCNV_VARIANT4], omit_data_type='SNV_INDEL', variant_keys=variant_keys) await self._assert_expected_search([VARIANT1, GCNV_VARIANT1, GCNV_VARIANT4], variant_keys=variant_keys, **VARIANT_ID_SEARCH) @@ -768,15 +768,15 @@ async def test_frequency_filter(self): ) await self._assert_expected_search( - [MULTI_FAMILY_VARIANT, VARIANT4], frequencies={'seqr': {'ac': 4}}, omit_sample_type='SV_WES', + [MULTI_FAMILY_VARIANT, VARIANT4], frequencies={'seqr': {'ac': 4}}, omit_data_type='SV_WES', ) await self._assert_expected_search( - [MULTI_FAMILY_VARIANT, VARIANT4], frequencies={'seqr': {'hh': 1}}, omit_sample_type='SV_WES', + [MULTI_FAMILY_VARIANT, VARIANT4], frequencies={'seqr': {'hh': 1}}, omit_data_type='SV_WES', ) await self._assert_expected_search( - [VARIANT4], frequencies={'seqr': {'ac': 4, 'hh': 0}}, omit_sample_type='SV_WES', + [VARIANT4], frequencies={'seqr': {'ac': 4, 'hh': 0}}, omit_data_type='SV_WES', ) await self._assert_expected_search( @@ -788,11 +788,11 @@ async def test_frequency_filter(self): ) await self._assert_expected_search( - [VARIANT1, VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.05}}, omit_sample_type='SV_WES', + [VARIANT1, VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.05}}, omit_data_type='SV_WES', ) await self._assert_expected_search( - [VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.05, 'hh': 1}}, omit_sample_type='SV_WES', + [VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.05, 'hh': 1}}, omit_data_type='SV_WES', ) await self._assert_expected_search( @@ -806,27 +806,27 @@ async def test_frequency_filter(self): await self._assert_expected_search( [VARIANT4], frequencies={'seqr': {'af': 0.2}, 'gnomad_genomes': {'ac': 50}}, - omit_sample_type='SV_WES', + omit_data_type='SV_WES', ) await self._assert_expected_search( [VARIANT1, VARIANT2, MULTI_FAMILY_VARIANT, VARIANT4], frequencies={'seqr': {}, 'gnomad_genomes': {'af': None}}, - omit_sample_type='SV_WES', + omit_data_type='SV_WES', ) annotations = {'splice_ai': '0.0'} # Ensures no variants are filtered out by annotation/path filters await self._assert_expected_search( - [VARIANT1, VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.01}}, omit_sample_type='SV_WES', + [VARIANT1, VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.01}}, omit_data_type='SV_WES', annotations=annotations, pathogenicity={'clinvar': ['pathogenic', 'likely_pathogenic', 'vus_or_conflicting']}, ) await self._assert_expected_search( - [VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.01}}, omit_sample_type='SV_WES', + [VARIANT2, VARIANT4], frequencies={'gnomad_genomes': {'af': 0.01}}, omit_data_type='SV_WES', annotations=annotations, pathogenicity={'clinvar': ['pathogenic', 'vus_or_conflicting']}, ) async def test_annotations_filter(self): - await self._assert_expected_search([VARIANT2], pathogenicity={'hgmd': ['hgmd_other']}, omit_sample_type='SV_WES') + await self._assert_expected_search([VARIANT2], pathogenicity={'hgmd': ['hgmd_other']}, omit_data_type='SV_WES') pathogenicity = {'clinvar': ['likely_pathogenic', 'vus_or_conflicting', 'benign']} await self._assert_expected_search( @@ -878,7 +878,7 @@ async def test_annotations_filter(self): await self._assert_expected_search( [SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_2, SELECTED_TRANSCRIPT_MULTI_FAMILY_VARIANT], - gene_ids=LOCATION_SEARCH['gene_ids'][:1], annotations=annotations, omit_sample_type='SV_WES', + gene_ids=LOCATION_SEARCH['gene_ids'][:1], annotations=annotations, omit_data_type='SV_WES', ) annotations['other'] = annotations['other'][:1] @@ -904,17 +904,17 @@ async def test_secondary_annotations_filter(self): annotations_2 = {'other': ['intron_variant']} await self._assert_expected_search( - [[VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='compound_het', omit_sample_type='SV_WES', + [[VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='compound_het', omit_data_type='SV_WES', annotations=annotations_1, annotations_secondary=annotations_2, ) await self._assert_expected_search( - [VARIANT2, [VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='recessive', omit_sample_type='SV_WES', + [VARIANT2, [VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='recessive', omit_data_type='SV_WES', annotations=annotations_1, annotations_secondary=annotations_2, ) await self._assert_expected_search( - [[VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='recessive', omit_sample_type='SV_WES', + [[VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='recessive', omit_data_type='SV_WES', annotations=annotations_2, annotations_secondary=annotations_1, ) @@ -922,24 +922,24 @@ async def test_secondary_annotations_filter(self): gcnv_annotations_2 = {'structural_consequence': ['LOF'], 'structural': []} await self._assert_expected_search( - [[GCNV_VARIANT3, GCNV_VARIANT4]], omit_sample_type='SNV_INDEL', inheritance_mode='compound_het', + [[GCNV_VARIANT3, GCNV_VARIANT4]], omit_data_type='SNV_INDEL', inheritance_mode='compound_het', annotations=gcnv_annotations_1, annotations_secondary=gcnv_annotations_2, ) await self._assert_expected_search( - [GCNV_VARIANT3, [GCNV_VARIANT3, GCNV_VARIANT4]], omit_sample_type='SNV_INDEL', inheritance_mode='recessive', + [GCNV_VARIANT3, [GCNV_VARIANT3, GCNV_VARIANT4]], omit_data_type='SNV_INDEL', inheritance_mode='recessive', annotations=gcnv_annotations_2, annotations_secondary=gcnv_annotations_1, ) # Do not return pairs where annotations match in a non-paired gene gcnv_annotations_no_pair = {'structural_consequence': ['COPY_GAIN']} await self._assert_expected_search( - [], omit_sample_type='SNV_INDEL', inheritance_mode='compound_het', + [], omit_data_type='SNV_INDEL', inheritance_mode='compound_het', annotations=gcnv_annotations_1, annotations_secondary=gcnv_annotations_no_pair, ) await self._assert_expected_search( - [], omit_sample_type='SNV_INDEL', inheritance_mode='compound_het', + [], omit_data_type='SNV_INDEL', inheritance_mode='compound_het', annotations={**gcnv_annotations_1, **gcnv_annotations_no_pair}, ) @@ -969,7 +969,7 @@ async def test_secondary_annotations_filter(self): pathogenicity = {'clinvar': ['likely_pathogenic', 'vus_or_conflicting']} await self._assert_expected_search( - [VARIANT2, [VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='recessive', omit_sample_type='SV_WES', + [VARIANT2, [VARIANT3, SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_4]], inheritance_mode='recessive', omit_data_type='SV_WES', annotations=annotations_2, annotations_secondary=annotations_1, pathogenicity=pathogenicity, ) @@ -1012,25 +1012,25 @@ async def test_secondary_annotations_filter(self): screen_annotations = {'SCREEN': ['CTCF-only']} await self._assert_expected_search( - [], inheritance_mode='recessive', omit_sample_type='SV_WES', + [], inheritance_mode='recessive', omit_data_type='SV_WES', annotations=screen_annotations, annotations_secondary=annotations_1, ) await self._assert_expected_search( - [[VARIANT3, VARIANT4]], inheritance_mode='recessive', omit_sample_type='SV_WES', + [[VARIANT3, VARIANT4]], inheritance_mode='recessive', omit_data_type='SV_WES', annotations=screen_annotations, annotations_secondary=annotations_2, ) await self._assert_expected_search( [VARIANT2, [SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_3, VARIANT4]], inheritance_mode='recessive', annotations=screen_annotations, annotations_secondary=selected_transcript_annotations, - pathogenicity=pathogenicity, omit_sample_type='SV_WES', + pathogenicity=pathogenicity, omit_data_type='SV_WES', ) await self._assert_expected_search( [SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_2, [SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_3, VARIANT4]], annotations={**selected_transcript_annotations, **screen_annotations}, annotations_secondary=annotations_2, - inheritance_mode='recessive', omit_sample_type='SV_WES', + inheritance_mode='recessive', omit_data_type='SV_WES', ) async def test_in_silico_filter(self): @@ -1053,7 +1053,7 @@ async def test_in_silico_filter(self): sv_in_silico = {'strvctvre': 0.1, 'requireScore': True} await self._assert_expected_search( - [GCNV_VARIANT1, GCNV_VARIANT2, GCNV_VARIANT3, GCNV_VARIANT4], omit_sample_type='SNV_INDEL', in_silico=sv_in_silico, + [GCNV_VARIANT1, GCNV_VARIANT2, GCNV_VARIANT3, GCNV_VARIANT4], omit_data_type='SNV_INDEL', in_silico=sv_in_silico, ) await self._assert_expected_search( @@ -1074,7 +1074,7 @@ async def test_search_errors(self): self.assertEqual(reason, 'The following samples are available in seqr but missing the loaded data: NA19675_1, NA19678') search_body = get_hail_search_body( - intervals=LOCATION_SEARCH['intervals'] + ['1:1-99999999999'], omit_sample_type='SV_WES', + intervals=LOCATION_SEARCH['intervals'] + ['1:1-99999999999'], omit_data_type='SV_WES', ) async with self.client.request('POST', '/search', json=search_body) as resp: self.assertEqual(resp.status, 400) @@ -1090,7 +1090,7 @@ async def test_sort(self): await self._assert_expected_search( [_sorted(GCNV_VARIANT2, [0]), _sorted(GCNV_VARIANT3, [0]), _sorted(GCNV_VARIANT4, [0]), - _sorted(GCNV_VARIANT1, [3])], omit_sample_type='SNV_INDEL', sort='protein_consequence', + _sorted(GCNV_VARIANT1, [3])], omit_data_type='SNV_INDEL', sort='protein_consequence', ) await self._assert_expected_search( @@ -1107,7 +1107,7 @@ async def test_sort(self): await self._assert_expected_search( [_sorted(VARIANT4, [2, 2]), _sorted(SELECTED_ANNOTATION_TRANSCRIPT_VARIANT_2, [12, 26]), _sorted(SELECTED_ANNOTATION_TRANSCRIPT_MULTI_FAMILY_VARIANT, [26, 26])], - omit_sample_type='SV_WES', sort='protein_consequence', + omit_data_type='SV_WES', sort='protein_consequence', annotations={'other': ['non_coding_transcript_exon_variant'], 'splice_ai': '0'}, ) @@ -1159,28 +1159,28 @@ async def test_sort(self): await self._assert_expected_search( [_sorted(VARIANT4, [-0.5260000228881836]), _sorted(VARIANT2, [-0.19699999690055847]), - _sorted(VARIANT1, [0]), _sorted(MULTI_FAMILY_VARIANT, [0])], omit_sample_type='SV_WES', sort='revel', + _sorted(VARIANT1, [0]), _sorted(MULTI_FAMILY_VARIANT, [0])], omit_data_type='SV_WES', sort='revel', ) await self._assert_expected_search( [_sorted(MULTI_FAMILY_VARIANT, [-0.009999999776482582]), _sorted(VARIANT2, [0]), _sorted(VARIANT4, [0]), - _sorted(VARIANT1, [0])], omit_sample_type='SV_WES', sort='splice_ai', + _sorted(VARIANT1, [0])], omit_data_type='SV_WES', sort='splice_ai', ) await self._assert_expected_search( [_sorted(VARIANT2, [-0.9977999925613403, -0.9977999925613403]), _sorted(VARIANT1, [0, 0]), - _sorted(MULTI_FAMILY_VARIANT, [0, 0]), _sorted(VARIANT4, [0, 0])], omit_sample_type='SV_WES', sort='alphamissense', + _sorted(MULTI_FAMILY_VARIANT, [0, 0]), _sorted(VARIANT4, [0, 0])], omit_data_type='SV_WES', sort='alphamissense', ) sort = 'in_omim' await self._assert_expected_search( [_sorted(MULTI_FAMILY_VARIANT, [0, -2]), _sorted(VARIANT2, [0, -1]), _sorted(VARIANT4, [0, -1]), _sorted(VARIANT1, [1, 0])], - omit_sample_type='SV_WES', sort=sort, sort_metadata=OMIM_SORT_METADATA, + omit_data_type='SV_WES', sort=sort, sort_metadata=OMIM_SORT_METADATA, ) await self._assert_expected_search( [_sorted(GCNV_VARIANT3, [-1]), _sorted(GCNV_VARIANT4, [-1]), _sorted(GCNV_VARIANT1, [0]), _sorted(GCNV_VARIANT2, [0])], - omit_sample_type='SNV_INDEL', sort=sort, sort_metadata=OMIM_SORT_METADATA, + omit_data_type='SNV_INDEL', sort=sort, sort_metadata=OMIM_SORT_METADATA, ) await self._assert_expected_search( @@ -1191,19 +1191,19 @@ async def test_sort(self): await self._assert_expected_search( [_sorted(VARIANT2, [0, -1]), _sorted(MULTI_FAMILY_VARIANT, [1, -1]), _sorted(VARIANT1, [1, 0]), _sorted(VARIANT4, [1, 0])], - omit_sample_type='SV_WES', sort=sort, sort_metadata=['ENSG00000177000'], + omit_data_type='SV_WES', sort=sort, sort_metadata=['ENSG00000177000'], ) constraint_sort_metadata = {'ENSG00000177000': 2, 'ENSG00000275023': 3, 'ENSG00000097046': 4} sort = 'constraint' await self._assert_expected_search( [_sorted(VARIANT2, [2, 2]), _sorted(MULTI_FAMILY_VARIANT, [4, 2]), _sorted(VARIANT4, [4, 4]), - _sorted(VARIANT1, [None, None])], omit_sample_type='SV_WES', sort=sort, sort_metadata=constraint_sort_metadata, + _sorted(VARIANT1, [None, None])], omit_data_type='SV_WES', sort=sort, sort_metadata=constraint_sort_metadata, ) await self._assert_expected_search( [_sorted(GCNV_VARIANT3, [3]), _sorted(GCNV_VARIANT4, [3]), _sorted(GCNV_VARIANT1, [None]), - _sorted(GCNV_VARIANT2, [None])], omit_sample_type='SNV_INDEL', sort=sort, sort_metadata=constraint_sort_metadata, + _sorted(GCNV_VARIANT2, [None])], omit_data_type='SNV_INDEL', sort=sort, sort_metadata=constraint_sort_metadata, ) await self._assert_expected_search( @@ -1215,7 +1215,7 @@ async def test_sort(self): await self._assert_expected_search( [_sorted(VARIANT2, [3, 3]), _sorted(MULTI_FAMILY_VARIANT, [None, 3]), _sorted(VARIANT1, [None, None]), - _sorted(VARIANT4, [None, None])], omit_sample_type='SV_WES', sort='prioritized_gene', + _sorted(VARIANT4, [None, None])], omit_data_type='SV_WES', sort='prioritized_gene', sort_metadata={'ENSG00000177000': 3}, ) @@ -1234,12 +1234,12 @@ async def test_sort(self): await self._assert_expected_search( [[_sorted(VARIANT4, [-0.5260000228881836]), _sorted(VARIANT3, [0])], _sorted(VARIANT2, [-0.19699999690055847])], - sort='revel', inheritance_mode='recessive', omit_sample_type='SV_WES', **COMP_HET_ALL_PASS_FILTERS, + sort='revel', inheritance_mode='recessive', omit_data_type='SV_WES', **COMP_HET_ALL_PASS_FILTERS, ) await self._assert_expected_search( [[_sorted(VARIANT3, [-0.009999999776482582]), _sorted(VARIANT4, [0])], _sorted(VARIANT2, [0])], - sort='splice_ai', inheritance_mode='recessive', omit_sample_type='SV_WES', **COMP_HET_ALL_PASS_FILTERS, + sort='splice_ai', inheritance_mode='recessive', omit_data_type='SV_WES', **COMP_HET_ALL_PASS_FILTERS, ) async def test_multi_data_type_comp_het_sort(self): diff --git a/hail_search/test_utils.py b/hail_search/test_utils.py index dda9b2c502..aef30f3304 100644 --- a/hail_search/test_utils.py +++ b/hail_search/test_utils.py @@ -3,12 +3,12 @@ FAMILY_3_SAMPLE = { 'sample_id': 'NA20870', 'individual_guid': 'I000007_na20870', 'family_guid': 'F000003_3', - 'project_guid': 'R0001_1kg', 'affected': 'A', + 'project_guid': 'R0001_1kg', 'affected': 'A', 'sample_type': 'WES', } FAMILY_2_VARIANT_SAMPLE_DATA_WITH_SEX = {'SNV_INDEL': [ - {'sample_id': 'HG00731', 'individual_guid': 'I000004_hg00731', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'A', 'sex': 'F'}, - {'sample_id': 'HG00732', 'individual_guid': 'I000005_hg00732', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sex': 'M'}, - {'sample_id': 'HG00733', 'individual_guid': 'I000006_hg00733', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sex': 'F'}, + {'sample_id': 'HG00731', 'individual_guid': 'I000004_hg00731', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'A', 'sample_type': 'WES', 'sex': 'F'}, + {'sample_id': 'HG00732', 'individual_guid': 'I000005_hg00732', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sample_type': 'WES', 'sex': 'M'}, + {'sample_id': 'HG00733', 'individual_guid': 'I000006_hg00733', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sample_type': 'WES', 'sex': 'F'}, ]} FAMILY_2_VARIANT_SAMPLE_DATA = deepcopy(FAMILY_2_VARIANT_SAMPLE_DATA_WITH_SEX) for s in FAMILY_2_VARIANT_SAMPLE_DATA['SNV_INDEL']: @@ -16,9 +16,9 @@ EXPECTED_SAMPLE_DATA_WITH_SEX = { 'SV_WES': [ - {'sample_id': 'HG00731', 'individual_guid': 'I000004_hg00731', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'A', 'sex': 'F'}, - {'sample_id': 'HG00732', 'individual_guid': 'I000005_hg00732', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sex': 'M'}, - {'sample_id': 'HG00733', 'individual_guid': 'I000006_hg00733', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sex': 'F'} + {'sample_id': 'HG00731', 'individual_guid': 'I000004_hg00731', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'A', 'sample_type': 'WES', 'sex': 'F'}, + {'sample_id': 'HG00732', 'individual_guid': 'I000005_hg00732', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sample_type': 'WES', 'sex': 'M'}, + {'sample_id': 'HG00733', 'individual_guid': 'I000006_hg00733', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sample_type': 'WES', 'sex': 'F'} ], } EXPECTED_SAMPLE_DATA_WITH_SEX.update(FAMILY_2_VARIANT_SAMPLE_DATA_WITH_SEX) @@ -36,8 +36,8 @@ FAMILY_1_SAMPLE_DATA = { 'SNV_INDEL': [ - {'sample_id': 'NA19675_1', 'individual_guid': 'I000001_na19675', 'family_guid': 'F000001_1', 'project_guid': 'R0001_1kg', 'affected': 'A'}, - {'sample_id': 'NA19678', 'individual_guid': 'I000002_na19678', 'family_guid': 'F000001_1', 'project_guid': 'R0001_1kg', 'affected': 'N'}, + {'sample_id': 'NA19675_1', 'individual_guid': 'I000001_na19675', 'family_guid': 'F000001_1', 'project_guid': 'R0001_1kg', 'sample_type': 'WES', 'affected': 'A'}, + {'sample_id': 'NA19678', 'individual_guid': 'I000002_na19678', 'family_guid': 'F000001_1', 'project_guid': 'R0001_1kg', 'sample_type': 'WES', 'affected': 'N'}, ], } FAMILY_2_MISSING_SAMPLE_DATA = deepcopy(FAMILY_1_SAMPLE_DATA) @@ -45,7 +45,7 @@ s['family_guid'] = 'F000002_2' FAMILY_2_MITO_SAMPLE_DATA = {'MITO': [ - {'sample_id': 'HG00733', 'individual_guid': 'I000006_hg00733', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N'}, + {'sample_id': 'HG00733', 'individual_guid': 'I000006_hg00733', 'family_guid': 'F000002_2', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sample_type': 'WES'}, ]} FAMILY_2_ALL_SAMPLE_DATA = deepcopy(FAMILY_2_VARIANT_SAMPLE_DATA) FAMILY_2_ALL_SAMPLE_DATA.update(FAMILY_2_MITO_SAMPLE_DATA) @@ -53,11 +53,11 @@ ALL_AFFECTED_SAMPLE_DATA = deepcopy(EXPECTED_SAMPLE_DATA) ALL_AFFECTED_SAMPLE_DATA.update(FAMILY_2_MITO_SAMPLE_DATA) FAMILY_5_SAMPLE = { - 'sample_id': 'NA20874', 'individual_guid': 'I000009_na20874', 'family_guid': 'F000005_5', 'project_guid': 'R0001_1kg', 'affected': 'N', + 'sample_id': 'NA20874', 'individual_guid': 'I000009_na20874', 'family_guid': 'F000005_5', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sample_type': 'WES', } ALL_AFFECTED_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_5_SAMPLE) FAMILY_11_SAMPLE = { - 'sample_id': 'NA20885', 'individual_guid': 'I000015_na20885', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'A', + 'sample_id': 'NA20885', 'individual_guid': 'I000015_na20885', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_type': 'WGS', } MULTI_PROJECT_SAMPLE_DATA = deepcopy(FAMILY_2_VARIANT_SAMPLE_DATA) MULTI_PROJECT_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_11_SAMPLE) @@ -65,9 +65,9 @@ MULTI_PROJECT_MISSING_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_11_SAMPLE) SV_WGS_SAMPLE_DATA_WITH_SEX = {'SV_WGS': [{'sex': 'M', **FAMILY_11_SAMPLE}, { - 'sample_id': 'NA20884', 'individual_guid': 'I000025_na20884', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'N', 'sex': 'M', + 'sample_id': 'NA20884', 'individual_guid': 'I000025_na20884', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'N', 'sample_type': 'WGS', 'sex': 'M', }, { - 'sample_id': 'NA20883', 'individual_guid': 'I000035_na20883', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'N', 'sex': 'F', + 'sample_id': 'NA20883', 'individual_guid': 'I000035_na20883', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'N', 'sample_type': 'WGS', 'sex': 'F', }]} SV_WGS_SAMPLE_DATA = deepcopy(SV_WGS_SAMPLE_DATA_WITH_SEX) for s in SV_WGS_SAMPLE_DATA['SV_WGS']: @@ -957,10 +957,10 @@ } -def get_hail_search_body(genome_version='GRCh38', num_results=100, sample_data=None, omit_sample_type=None, **search_body): +def get_hail_search_body(genome_version='GRCh38', num_results=100, sample_data=None, omit_data_type=None, **search_body): sample_data = sample_data or EXPECTED_SAMPLE_DATA - if omit_sample_type: - sample_data = {k: v for k, v in sample_data.items() if k != omit_sample_type} + if omit_data_type: + sample_data = {k: v for k, v in sample_data.items() if k != omit_data_type} search = { 'sample_data': sample_data, diff --git a/seqr/utils/search/hail_search_utils.py b/seqr/utils/search/hail_search_utils.py index 8a5002e078..52e8ce8e72 100644 --- a/seqr/utils/search/hail_search_utils.py +++ b/seqr/utils/search/hail_search_utils.py @@ -1,4 +1,6 @@ from collections import defaultdict + +from django.contrib.postgres.aggregates import ArrayAgg from django.db.models import F, Min, Count from urllib3.connectionpool import connection_from_url @@ -152,9 +154,8 @@ def _get_sample_data(samples, inheritance_filter=None, inheritance_mode=None, ** sample_data_by_data_type = defaultdict(list) for s in sample_data: dataset_type = s.pop('dataset_type') - sample_type = s.pop('sample_type') - s['sample_id'] = s.pop('individual__individual_id') - data_type_key = search_data_type(dataset_type, sample_type) + s['sample_id'] = s.pop('individual__individual_id') # Note: set sample_id to individual_id + data_type_key = search_data_type(dataset_type, s['sample_type']) sample_data_by_data_type[data_type_key].append(s) return sample_data_by_data_type @@ -242,8 +243,12 @@ def validate_hail_backend_no_location_search(samples): family_count=Count('individual__family_id', distinct=True), project_count=Count('individual__family__project_id', distinct=True), ) + distinct_projects = samples.filter(dataset_type=Sample.DATASET_TYPE_VARIANT_CALLS).values( + 'individual__family__project_id' + ).distinct() from seqr.utils.search.utils import InvalidSearchException - if sample_counts and (len(sample_counts) > 1 or sample_counts[0]['project_count'] > 1): - raise InvalidSearchException('Location must be specified to search across multiple projects') - if sample_counts and sample_counts[0]['family_count'] > MAX_FAMILY_COUNTS[sample_counts[0]['sample_type']]: - raise InvalidSearchException('Location must be specified to search across multiple families in large projects') + if sample_counts: + if distinct_projects.count() > 1 or sample_counts[0]['project_count'] > 1: + raise InvalidSearchException('Location must be specified to search across multiple projects') + if sample_counts[0]['family_count'] > MAX_FAMILY_COUNTS[sample_counts[0]['sample_type']]: + raise InvalidSearchException('Location must be specified to search across multiple families in large projects') diff --git a/seqr/utils/search/hail_search_utils_tests.py b/seqr/utils/search/hail_search_utils_tests.py index 65b25977cc..0274b913b8 100644 --- a/seqr/utils/search/hail_search_utils_tests.py +++ b/seqr/utils/search/hail_search_utils_tests.py @@ -18,7 +18,7 @@ SV_WGS_SAMPLE_DATA = [{ 'individual_guid': 'I000018_na21234', 'family_guid': 'F000014_14', 'project_guid': 'R0004_non_analyst_project', - 'affected': 'A', 'sample_id': 'NA21234', + 'affected': 'A', 'sample_id': 'NA21234', 'sample_type': 'WGS', }] EXPECTED_MITO_SAMPLE_DATA = deepcopy(FAMILY_2_MITO_SAMPLE_DATA) From 3929eab04adb28950facaa47144b638658b1354e Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Fri, 2 Aug 2024 15:10:34 -0400 Subject: [PATCH 02/17] hold off on search validation --- seqr/utils/search/hail_search_utils.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/seqr/utils/search/hail_search_utils.py b/seqr/utils/search/hail_search_utils.py index 52e8ce8e72..678cafbb9f 100644 --- a/seqr/utils/search/hail_search_utils.py +++ b/seqr/utils/search/hail_search_utils.py @@ -1,6 +1,5 @@ from collections import defaultdict -from django.contrib.postgres.aggregates import ArrayAgg from django.db.models import F, Min, Count from urllib3.connectionpool import connection_from_url @@ -243,12 +242,8 @@ def validate_hail_backend_no_location_search(samples): family_count=Count('individual__family_id', distinct=True), project_count=Count('individual__family__project_id', distinct=True), ) - distinct_projects = samples.filter(dataset_type=Sample.DATASET_TYPE_VARIANT_CALLS).values( - 'individual__family__project_id' - ).distinct() from seqr.utils.search.utils import InvalidSearchException - if sample_counts: - if distinct_projects.count() > 1 or sample_counts[0]['project_count'] > 1: - raise InvalidSearchException('Location must be specified to search across multiple projects') - if sample_counts[0]['family_count'] > MAX_FAMILY_COUNTS[sample_counts[0]['sample_type']]: - raise InvalidSearchException('Location must be specified to search across multiple families in large projects') + if sample_counts and (len(sample_counts) > 1 or sample_counts[0]['project_count'] > 1): + raise InvalidSearchException('Location must be specified to search across multiple projects') + if sample_counts and sample_counts[0]['family_count'] > MAX_FAMILY_COUNTS[sample_counts[0]['sample_type']]: + raise InvalidSearchException('Location must be specified to search across multiple families in large projects') From 535c55adbfd5462bfaa18e54ae74cdd3e3e70e02 Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Fri, 2 Aug 2024 16:43:52 -0400 Subject: [PATCH 03/17] handle variant lookup! --- .../{ => WES}/F000002_2.ht/.README.txt.crc | Bin .../{ => WES}/F000002_2.ht/._SUCCESS.crc | Bin .../F000002_2.ht/.metadata.json.gz.crc | Bin .../{ => WES}/F000002_2.ht/README.txt | 0 .../families/{ => WES}/F000002_2.ht/_SUCCESS | 0 .../globals/.metadata.json.gz.crc | Bin .../F000002_2.ht/globals/metadata.json.gz | Bin .../F000002_2.ht/globals/parts/.part-0.crc | Bin .../F000002_2.ht/globals/parts/part-0 | Bin .../.index.crc | Bin .../.metadata.json.gz.crc | Bin .../index | Bin .../metadata.json.gz | Bin .../{ => WES}/F000002_2.ht/metadata.json.gz | Bin .../F000002_2.ht/rows/.metadata.json.gz.crc | Bin .../F000002_2.ht/rows/metadata.json.gz | Bin ...0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.crc | Bin ...art-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4 | Bin hail_search/queries/base.py | 35 ++++++++++++++---- ...eck_for_new_samples_from_pipeline_tests.py | 8 ++-- seqr/utils/search/hail_search_utils_tests.py | 6 +-- 21 files changed, 34 insertions(+), 15 deletions(-) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/.README.txt.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/._SUCCESS.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/README.txt (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/_SUCCESS (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/parts/.part-0.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/globals/parts/part-0 (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.index.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/index (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/.metadata.json.gz.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/metadata.json.gz (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/parts/.part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.crc (100%) rename hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/{ => WES}/F000002_2.ht/rows/parts/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4 (100%) diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/.README.txt.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/.README.txt.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/.README.txt.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/README.txt b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/README.txt similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/README.txt rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/README.txt diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/_SUCCESS b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/metadata.json.gz rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/parts/.part-0.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/parts/.part-0.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/parts/.part-0.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/parts/part-0 similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/globals/parts/part-0 rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/globals/parts/part-0 diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.index.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.index.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.index.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.index.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/index b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/index similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/index rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/index diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/metadata.json.gz rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/index/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.idx/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/metadata.json.gz rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/.metadata.json.gz.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/.metadata.json.gz.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/metadata.json.gz similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/metadata.json.gz rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/metadata.json.gz diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/parts/.part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.crc b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/parts/.part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.crc similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/parts/.part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.crc rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/parts/.part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4.crc diff --git a/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/parts/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4 b/hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/parts/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4 similarity index 100% rename from hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/F000002_2.ht/rows/parts/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4 rename to hail_search/fixtures/GRCh38/ONT_SNV_INDEL/families/WES/F000002_2.ht/rows/parts/part-0-7e735aac-e66b-4a34-9b45-5fdd65e9a5b4 diff --git a/hail_search/queries/base.py b/hail_search/queries/base.py index 99ca936ac6..f677a540c7 100644 --- a/hail_search/queries/base.py +++ b/hail_search/queries/base.py @@ -1,6 +1,7 @@ from aiohttp.web import HTTPBadRequest, HTTPNotFound from collections import defaultdict, namedtuple import hail as hl +import hailtop.fs as hfs import logging import os @@ -266,6 +267,9 @@ def _get_table_path(cls, path, use_ssd_dir=False): return f'{SSD_DATASETS_DIR if use_ssd_dir else DATASETS_DIR}/{cls.GENOME_VERSION}/{cls.DATA_TYPE}/{path}' def _read_table(self, path, drop_globals=None, use_ssd_dir=False, skip_missing_field=None): + if not hfs.exists(self._get_table_path(path, use_ssd_dir=use_ssd_dir)): + return None + table_path = self._get_table_path(path, use_ssd_dir=use_ssd_dir) if 'variant_ht' in self._load_table_kwargs: ht = self._query_table_annotations(self._load_table_kwargs['variant_ht'], table_path) @@ -296,8 +300,19 @@ def _parse_sample_data(self, sample_data): def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_partitions=MAX_PARTITIONS, **kwargs): if len(project_samples) == 1: project_guid = list(project_samples.keys())[0] - sample_type = list(project_samples[project_guid].values())[0][0]['sample_type'] - project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) + # for variant lookup, project_samples looks like + # {: {: True, : True}, : ...} + # for variant search, project_samples looks like + # {: {: [, , ...], : ...}, : ...} + first_family_samples = list(project_samples[project_guid].values())[0] + if type(first_family_samples) is bool: + project_ht = ( + self._read_table(f'projects/WES/{project_guid}.ht', use_ssd_dir=True) or + self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) + ) + else: + sample_type = first_family_samples[0]['sample_type'] + project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) return self._filter_entries_table(project_ht, project_samples[project_guid], **kwargs) # Need to chunk tables or else evaluating table globals throws LineTooLong exception @@ -309,12 +324,16 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ project_hts = [] sample_data = {} for project_guid, project_sample_data in project_samples.items(): - sample_type = list(project_sample_data.values())[0][0]['sample_type'] - project_ht = self._read_table( - f'projects/{sample_type}/{project_guid}.ht', - use_ssd_dir=True, - skip_missing_field='family_entries' if skip_all_missing else None, - ) + first_family_samples = list(project_sample_data.values())[0] + if type(first_family_samples) is bool: + project_ht = ( + self._read_table(f'projects/WES/{project_guid}.ht', use_ssd_dir=True) or + self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) + ) + else: + sample_type = first_family_samples[0]['sample_type'] + project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) + if project_ht is None: continue project_hts.append(project_ht.select_globals('sample_type', 'family_guids', 'family_samples')) diff --git a/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py b/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py index 193d7dee86..c08ff4eae5 100644 --- a/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py +++ b/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py @@ -213,11 +213,11 @@ def test_command(self, mock_email, mock_airtable_utils): EXISTING_SAMPLE_GUID, REPLACED_SAMPLE_GUID, NEW_SAMPLE_GUID_P3, NEW_SAMPLE_GUID_P4, }, has_additional_requests=True, reload_calls=[ {**search_body, 'sample_data': {'SNV_INDEL': [ - {'individual_guid': 'I000017_na20889', 'family_guid': 'F000012_12', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_id': 'NA20889'}, - {'individual_guid': 'I000016_na20888', 'family_guid': 'F000012_12', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_id': 'NA20888'}, + {'individual_guid': 'I000017_na20889', 'family_guid': 'F000012_12', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_id': 'NA20889', 'sample_type': 'WES'}, + {'individual_guid': 'I000016_na20888', 'family_guid': 'F000012_12', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_id': 'NA20888', 'sample_type': 'WES'}, ]}}, {**search_body, 'sample_data': {'SNV_INDEL': [ - {'individual_guid': 'I000018_na21234', 'family_guid': 'F000014_14', 'project_guid': 'R0004_non_analyst_project', 'affected': 'A', 'sample_id': 'NA21234'}, + {'individual_guid': 'I000018_na21234', 'family_guid': 'F000014_14', 'project_guid': 'R0004_non_analyst_project', 'affected': 'A', 'sample_id': 'NA21234', 'sample_type': 'WES'}, ]}}, ], reload_annotations_logs=[ 'Reloading shared annotations for 3 SNV_INDEL GRCh38 saved variants (3 unique)', 'Fetched 1 additional variants', 'Fetched 1 additional variants', 'Updated 2 saved variants', @@ -383,7 +383,7 @@ def test_gcnv_command(self): } self._test_success('GRCh37/GCNV', metadata, dataset_type='SV', sample_guids={f'S00000{GUID_ID}_na20872', f'S00000{GUID_ID}_na20889'}, reload_calls=[{ 'genome_version': 'GRCh37', 'num_results': 1, 'variant_ids': [], 'variant_keys': ['prefix_19107_DEL'], - 'sample_data': {'SV_WES': [{'individual_guid': 'I000017_na20889', 'family_guid': 'F000012_12', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_id': 'NA20889'}]}, + 'sample_data': {'SV_WES': [{'individual_guid': 'I000017_na20889', 'family_guid': 'F000012_12', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_id': 'NA20889', 'sample_type': 'WES'}]}, }], reload_annotations_logs=['No additional saved variants to update']) self.mock_send_slack.assert_has_calls([ diff --git a/seqr/utils/search/hail_search_utils_tests.py b/seqr/utils/search/hail_search_utils_tests.py index 0274b913b8..3818309757 100644 --- a/seqr/utils/search/hail_search_utils_tests.py +++ b/seqr/utils/search/hail_search_utils_tests.py @@ -151,7 +151,7 @@ def test_query_variants(self): query_variants(self.results_model, user=self.user) self._test_expected_search_call( inheritance_mode='recessive', dataset_type='SNV_INDEL', secondary_dataset_type='SNV_INDEL', - search_fields=['annotations', 'annotations_secondary'], omit_sample_type='SV_WES', + search_fields=['annotations', 'annotations_secondary'], omit_data_type='SV_WES', ) self.search_model.search['inheritance']['mode'] = 'x_linked_recessive' @@ -159,7 +159,7 @@ def test_query_variants(self): self._test_expected_search_call( inheritance_mode='x_linked_recessive', dataset_type='SNV_INDEL', secondary_dataset_type='SNV_INDEL', search_fields=['annotations', 'annotations_secondary'], sample_data=EXPECTED_SAMPLE_DATA_WITH_SEX, - omit_sample_type='SV_WES', + omit_data_type='SV_WES', ) self.results_model.families.set(Family.objects.filter(id__in=[2, 11, 14])) @@ -313,7 +313,7 @@ def test_get_single_variant(self): get_single_variant(self.families, 'prefix_19107_DEL', user=self.user) self._test_minimal_search_call( variant_ids=[], variant_keys=['prefix_19107_DEL'], - num_results=1, sample_data=EXPECTED_SAMPLE_DATA, omit_sample_type='SNV_INDEL') + num_results=1, sample_data=EXPECTED_SAMPLE_DATA, omit_data_type='SNV_INDEL') get_single_variant(self.families, 'M-10195-C-A', user=self.user) self._test_minimal_search_call( From eeee1d04129c01052b4cfdd79b7a808c1e80377e Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Fri, 2 Aug 2024 16:51:15 -0400 Subject: [PATCH 04/17] isinstance --- hail_search/queries/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hail_search/queries/base.py b/hail_search/queries/base.py index f677a540c7..96c566aa68 100644 --- a/hail_search/queries/base.py +++ b/hail_search/queries/base.py @@ -305,7 +305,7 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ # for variant search, project_samples looks like # {: {: [, , ...], : ...}, : ...} first_family_samples = list(project_samples[project_guid].values())[0] - if type(first_family_samples) is bool: + if isinstance(first_family_samples, bool): project_ht = ( self._read_table(f'projects/WES/{project_guid}.ht', use_ssd_dir=True) or self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) From 498f560fbf941b4bf30f0fbcdf3e6f278c8c2500 Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Mon, 5 Aug 2024 15:27:44 -0400 Subject: [PATCH 05/17] update sample in test --- hail_search/test_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hail_search/test_utils.py b/hail_search/test_utils.py index aef30f3304..255182d4af 100644 --- a/hail_search/test_utils.py +++ b/hail_search/test_utils.py @@ -57,7 +57,7 @@ } ALL_AFFECTED_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_5_SAMPLE) FAMILY_11_SAMPLE = { - 'sample_id': 'NA20885', 'individual_guid': 'I000015_na20885', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_type': 'WGS', + 'sample_id': 'NA20885', 'individual_guid': 'I000015_na20885', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_type': 'WES', } MULTI_PROJECT_SAMPLE_DATA = deepcopy(FAMILY_2_VARIANT_SAMPLE_DATA) MULTI_PROJECT_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_11_SAMPLE) From b66498259c9470d3a32fef071dce20e3606081c5 Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Mon, 5 Aug 2024 15:31:49 -0400 Subject: [PATCH 06/17] another isinstance --- hail_search/queries/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hail_search/queries/base.py b/hail_search/queries/base.py index 96c566aa68..dfcaf26e23 100644 --- a/hail_search/queries/base.py +++ b/hail_search/queries/base.py @@ -325,7 +325,7 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ sample_data = {} for project_guid, project_sample_data in project_samples.items(): first_family_samples = list(project_sample_data.values())[0] - if type(first_family_samples) is bool: + if isinstance(first_family_samples, bool): project_ht = ( self._read_table(f'projects/WES/{project_guid}.ht', use_ssd_dir=True) or self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) From 36d848c02ad174277cde50e8ec4713f66035ffcb Mon Sep 17 00:00:00 2001 From: Hana Snow Date: Tue, 6 Aug 2024 17:11:44 -0400 Subject: [PATCH 07/17] use single dag name --- seqr/views/utils/airflow_utils.py | 49 ++++++++++++++++--------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/seqr/views/utils/airflow_utils.py b/seqr/views/utils/airflow_utils.py index b47c0093fc..0be413da2a 100644 --- a/seqr/views/utils/airflow_utils.py +++ b/seqr/views/utils/airflow_utils.py @@ -16,6 +16,7 @@ logger = SeqrLogger(__name__) +DAG_NAME = 'LOADING_PIPELINE' AIRFLOW_AUTH_SCOPE = "https://www.googleapis.com/auth/cloud-platform" SEQR_V2_DATASETS_GS_PATH = 'gs://seqr-datasets/v02' SEQR_V3_PEDIGREE_GS_PATH = 'gs://seqr-loading-temp/v03' @@ -31,13 +32,13 @@ def trigger_data_loading(projects: list[Project], sample_type: str, dataset_type individual_ids: list[str] = None, additional_project_files: dict = None): success = True - dag_name = f'v03_pipeline-{_dag_dataset_type(sample_type, dataset_type)}' project_guids = sorted([p.guid for p in projects]) updated_variables = { 'projects_to_run': project_guids, 'callset_path': data_path, 'sample_source': 'Broad_Internal' if is_internal else 'AnVIL', 'sample_type': sample_type, + 'dataset_type': _dag_dataset_type(sample_type, dataset_type), 'reference_genome': GENOME_VERSION_LOOKUP[genome_version], } @@ -47,18 +48,18 @@ def trigger_data_loading(projects: list[Project], sample_type: str, dataset_type ) try: - _check_dag_running_state(dag_name) - _update_variables(dag_name, updated_variables) - _wait_for_dag_variable_update(dag_name, project_guids) - _trigger_dag(dag_name) + _check_dag_running_state() + _update_variables(updated_variables) + _wait_for_dag_variable_update(project_guids) + _trigger_dag() except Exception as e: logger_call = logger.warning if isinstance(e, DagRunningException) else logger.error logger_call(str(e), user) - _send_slack_msg_on_failure_trigger(e, dag_name, updated_variables, error_message) + _send_slack_msg_on_failure_trigger(e, updated_variables, error_message) success = False if success or success_slack_channel != SEQR_SLACK_LOADING_NOTIFICATION_CHANNEL: - _send_load_data_slack_msg([success_message] + upload_info, success_slack_channel, dag_name, updated_variables) + _send_load_data_slack_msg([success_message] + upload_info, success_slack_channel, updated_variables) return success @@ -77,31 +78,31 @@ def write_data_loading_pedigree(project: Project, user: User): ) -def _send_load_data_slack_msg(messages: list[str], channel: str, dag_id: str, dag: dict): +def _send_load_data_slack_msg(messages: list[str], channel: str, dag: dict): message = '\n\n '.join(messages) message_content = f"""{message} - DAG {dag_id} is triggered with following: + DAG {DAG_NAME} is triggered with following: ```{json.dumps(dag, indent=4)}``` """ safe_post_to_slack(channel, message_content) -def _send_slack_msg_on_failure_trigger(e, dag_id, dag, error_message): +def _send_slack_msg_on_failure_trigger(e, dag, error_message): message_content = f"""{error_message}: {e} - DAG {dag_id} should be triggered with following: + DAG {DAG_NAME} should be triggered with following: ```{json.dumps(dag, indent=4)}``` """ safe_post_to_slack(SEQR_SLACK_LOADING_NOTIFICATION_CHANNEL, message_content) -def _check_dag_running_state(dag_id): - endpoint = 'dags/{}/dagRuns'.format(dag_id) +def _check_dag_running_state(): + endpoint = f'dags/{DAG_NAME}/dagRuns' resp = _make_airflow_api_request(endpoint, method='GET') dag_runs = resp['dag_runs'] if dag_runs and dag_runs[-1]['state'] == 'running': - raise DagRunningException(f'{dag_id} is running and cannot be triggered again.') + raise DagRunningException(f'{DAG_NAME} DAG is running and cannot be triggered again.') def _dag_dataset_type(sample_type: str, dataset_type: str): @@ -163,24 +164,24 @@ def _get_gs_pedigree_path(genome_version: str, sample_type: str, dataset_type: s return f'{SEQR_V3_PEDIGREE_GS_PATH}/{GENOME_VERSION_LOOKUP[genome_version]}/{sample_type}/{dataset_type}/pedigrees/' -def _wait_for_dag_variable_update(dag_id, projects): - dag_projects = _get_task_ids(dag_id) +def _wait_for_dag_variable_update(projects): + dag_projects = _get_task_ids() while all(p not in ''.join(dag_projects) for p in projects): - dag_projects = _get_task_ids(dag_id) + dag_projects = _get_task_ids() -def _update_variables(key, val): - endpoint = 'variables/{}'.format(key) +def _update_variables(val): + endpoint = f'variables/{DAG_NAME}' val_str = json.dumps(val) json_data = { - "key": key, + "key": DAG_NAME, "value": val_str } _make_airflow_api_request(endpoint, method='PATCH', json=json_data) -def _get_task_ids(dag_id): - endpoint = 'dags/{}/tasks'.format(dag_id) +def _get_task_ids(): + endpoint = f'dags/{DAG_NAME}/tasks' airflow_response = _make_airflow_api_request(endpoint, method='GET') tasks = airflow_response['tasks'] @@ -188,8 +189,8 @@ def _get_task_ids(dag_id): return task_ids -def _trigger_dag(dag_id): - endpoint = 'dags/{}/dagRuns'.format(dag_id) +def _trigger_dag(): + endpoint = f'dags/{DAG_NAME}/dagRuns' _make_airflow_api_request(endpoint, method='POST', json={}) From a3dd06ff585f35eace5a14085758f5921fe90945 Mon Sep 17 00:00:00 2001 From: Hana Snow Date: Tue, 6 Aug 2024 17:44:05 -0400 Subject: [PATCH 08/17] fix tests --- seqr/views/apis/anvil_workspace_api_tests.py | 14 +++++----- seqr/views/apis/data_manager_api_tests.py | 13 +++++----- seqr/views/utils/test_utils.py | 27 ++++++++++---------- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/seqr/views/apis/anvil_workspace_api_tests.py b/seqr/views/apis/anvil_workspace_api_tests.py index 2265fb7507..ce044695b2 100644 --- a/seqr/views/apis/anvil_workspace_api_tests.py +++ b/seqr/views/apis/anvil_workspace_api_tests.py @@ -473,7 +473,6 @@ class LoadAnvilDataAPITest(AirflowTestCase): fixtures = ['users', 'social_auth', 'reference_data', '1kg_project'] LOADING_PROJECT_GUID = f'P_{TEST_NO_PROJECT_WORKSPACE_NAME}' - DAG_NAME = 'v03_pipeline-SNV_INDEL' ADDITIONAL_REQUEST_COUNT = 1 @staticmethod @@ -483,6 +482,7 @@ def _get_dag_variable_overrides(additional_tasks_check): 'callset_path': 'test_path.vcf', 'sample_source': 'AnVIL', 'sample_type': 'WES', + 'dataset_type': 'SNV_INDEL', } if additional_tasks_check: variables.update({ @@ -769,6 +769,7 @@ def _assert_valid_operation(self, project, test_add_data=True): 'callset_path': 'gs://test_bucket/test_path.vcf', 'sample_source': 'AnVIL', 'sample_type': 'WES', + 'dataset_type': 'SNV_INDEL', 'reference_genome': genome_version, } sample_summary = '3 new' @@ -780,11 +781,10 @@ def _assert_valid_operation(self, project, test_add_data=True): Pedigree file has been uploaded to gs://seqr-datasets/v02/{version}/AnVIL_WES/{guid}/base/ - DAG {dag_id} is triggered with following: + DAG LOADING_PIPELINE is triggered with following: ```{dag}``` """.format(guid=project.guid, version=genome_version, workspace_name=project.workspace_name, project_name=project.name, sample_summary=sample_summary, - dag_id=self.DAG_NAME, dag=json.dumps(dag_json, indent=4), ) self.mock_slack.assert_called_with( @@ -837,23 +837,23 @@ def _test_mv_file_and_triggering_dag_exception(self, url, workspace, sample_data self.manager_user, detail=sample_data) self.mock_api_logger.error.assert_not_called() self.mock_airflow_logger.warning.assert_called_with( - f'{self.DAG_NAME} is running and cannot be triggered again.', self.manager_user) + 'LOADING_PIPELINE DAG is running and cannot be triggered again.', self.manager_user) self.mock_airtable_logger.error.assert_called_with( f'Airtable create "AnVIL Seqr Loading Requests Tracking" error: 400 Client Error: Bad Request for url: ' f'{MOCK_AIRTABLE_URL}/appUelDNM3BnWaR7M/AnVIL%20Seqr%20Loading%20Requests%20Tracking', self.manager_user) - slack_message_on_failure = """ERROR triggering AnVIL loading for project {guid}: {dag_id} is running and cannot be triggered again. + slack_message_on_failure = """ERROR triggering AnVIL loading for project {guid}: LOADING_PIPELINE DAG is running and cannot be triggered again. - DAG {dag_id} should be triggered with following: + DAG LOADING_PIPELINE should be triggered with following: ```{dag}``` """.format( guid=project.guid, - dag_id=self.DAG_NAME, dag=json.dumps({ 'projects_to_run': [project.guid], 'callset_path': 'gs://test_bucket/test_path.vcf', 'sample_source': 'AnVIL', 'sample_type': 'WES', + 'dataset_type': 'SNV_INDEL', 'reference_genome': genome_version, }, indent=4), ) diff --git a/seqr/views/apis/data_manager_api_tests.py b/seqr/views/apis/data_manager_api_tests.py index 81e77f0fac..888adcdbf0 100644 --- a/seqr/views/apis/data_manager_api_tests.py +++ b/seqr/views/apis/data_manager_api_tests.py @@ -1527,8 +1527,6 @@ def _add_file_iter(self, stdout): class AnvilDataManagerAPITest(AirflowTestCase, DataManagerAPITest): fixtures = ['users', 'social_auth', '1kg_project', 'reference_data'] - DAG_NAME = 'v03_pipeline-MITO' - SECOND_DAG_NAME = 'v03_pipeline-GCNV' LOADING_PROJECT_GUID = 'R0004_non_analyst_project' PROJECTS = [PROJECT_GUID, LOADING_PROJECT_GUID] @@ -1587,6 +1585,7 @@ def _get_dag_variable_overrides(*args, **kwargs): 'callset_path': 'mito_callset.mt', 'sample_source': 'Broad_Internal', 'sample_type': 'WGS', + 'dataset_type': 'MITO', } @responses.activate @@ -1626,6 +1625,7 @@ def test_load_data(self, mock_temp_dir, mock_open): "callset_path": "gs://test_bucket/mito_callset.mt", "sample_source": "Broad_Internal", "sample_type": "WGS", + "dataset_type": "MITO", "reference_genome": "GRCh38" }""" message = f"""*test_pm_user@test.com* triggered loading internal WGS MITO data for 2 projects @@ -1634,12 +1634,13 @@ def test_load_data(self, mock_temp_dir, mock_open): Pedigree file has been uploaded to gs://seqr-datasets/v02/GRCh38/RDG_WGS_Broad_Internal/base/projects/R0004_non_analyst_project/ - DAG {self.DAG_NAME} is triggered with following: + DAG LOADING_PIPELINE is triggered with following: ```{dag_json}``` """ self.mock_slack.assert_called_once_with(SEQR_SLACK_LOADING_NOTIFICATION_CHANNEL, message) # Test loading trigger error + self.set_dag_trigger_error_response(status=400) self.mock_authorized_session.reset_mock() self.mock_slack.reset_mock() mock_open.reset_mock() @@ -1652,19 +1653,19 @@ def test_load_data(self, mock_temp_dir, mock_open): self.assertEqual(response.status_code, 200) self.assertDictEqual(response.json(), {'success': True}) - self.assert_airflow_calls(trigger_error=True, secondary_dag_name=self.SECOND_DAG_NAME) + self.assert_airflow_calls(trigger_error=True, dataset_type='GCNV') self._has_expected_gs_calls(mock_open, 'SV', is_second_dag=True, sample_type='WES') self.mock_airflow_logger.warning.assert_not_called() self.mock_airflow_logger.error.assert_called_with(mock.ANY, self.pm_user) errors = [call.args[0] for call in self.mock_airflow_logger.error.call_args_list] for error in errors: - self.assertRegex(error, 'Connection refused by Responses') + self.assertRegex(error, '400 Client Error: Bad Request') dag_json = dag_json.replace('mito_callset.mt', 'sv_callset.vcf').replace( 'WGS', 'WES').replace('MITO', 'GCNV').replace('v01', 'v03') error_message = f"""ERROR triggering internal WES SV loading: {errors[0]} - DAG {self.SECOND_DAG_NAME} should be triggered with following: + DAG LOADING_PIPELINE should be triggered with following: ```{dag_json}``` """ self.mock_slack.assert_called_once_with(SEQR_SLACK_LOADING_NOTIFICATION_CHANNEL, error_message) diff --git a/seqr/views/utils/test_utils.py b/seqr/views/utils/test_utils.py index bc9fe1ffb9..22e16195d1 100644 --- a/seqr/views/utils/test_utils.py +++ b/seqr/views/utils/test_utils.py @@ -568,6 +568,7 @@ def assert_no_extra_anvil_calls(self): MOCK_AIRFLOW_URL = 'http://testairflowserver' +DAG_NAME = 'LOADING_PIPELINE' PROJECT_GUID = 'R0001_1kg' @@ -575,7 +576,7 @@ class AirflowTestCase(AnvilAuthenticationTestCase): ADDITIONAL_REQUEST_COUNT = 0 def setUp(self): - self._dag_url = f'{MOCK_AIRFLOW_URL}/api/v1/dags/{self.DAG_NAME}' + self._dag_url = f'{MOCK_AIRFLOW_URL}/api/v1/dags/{DAG_NAME}' # check dag running state responses.add(responses.GET, f'{self._dag_url}/dagRuns', json={ @@ -591,8 +592,8 @@ def setUp(self): responses.add(responses.POST, f'{self._dag_url}/dagRuns', json={}) # update variables responses.add( - responses.PATCH, f'{MOCK_AIRFLOW_URL}/api/v1/variables/{self.DAG_NAME}', - json={'key': self.DAG_NAME, 'value': 'updated variables'}, + responses.PATCH, f'{MOCK_AIRFLOW_URL}/api/v1/variables/{DAG_NAME}', + json={'key': DAG_NAME, 'value': 'updated variables'}, ) # get task id self.add_dag_tasks_response(['R0006_test']) @@ -625,7 +626,7 @@ def add_dag_tasks_response(self, projects): tasks += [ {'task_id': 'create_dataproc_cluster'}, {'task_id': f'pyspark_compute_project_{project}'}, - {'task_id': f'pyspark_compute_variants_{self.DAG_NAME}'}, + {'task_id': f'pyspark_compute_variants_{DAG_NAME}'}, {'task_id': f'pyspark_export_project_{project}'}, {'task_id': 'scale_dataproc_cluster'}, {'task_id': f'skip_compute_project_subset_{project}'} @@ -634,17 +635,17 @@ def add_dag_tasks_response(self, projects): 'tasks': tasks, 'total_entries': len(tasks), }) - def set_dag_trigger_error_response(self): - responses.replace(responses.GET, f'{self._dag_url}/dagRuns', json={'dag_runs': [{ + def set_dag_trigger_error_response(self, status=200): + responses.replace(responses.GET, f'{self._dag_url}/dagRuns', status=status, json={'dag_runs': [{ 'conf': {}, - 'dag_id': self.DAG_NAME, + 'dag_id': DAG_NAME, 'dag_run_id': 'manual__2022-04-28T11:51:22.735124+00:00', 'end_date': None, 'execution_date': '2022-04-28T11:51:22.735124+00:00', 'external_trigger': True, 'start_date': '2022-04-28T11:51:25.626176+00:00', 'state': 'running'} ]}) - def assert_airflow_calls(self, trigger_error=False, additional_tasks_check=False, secondary_dag_name=None): + def assert_airflow_calls(self, trigger_error=False, additional_tasks_check=False, dataset_type=None): self.mock_airflow_logger.info.assert_not_called() # Test triggering anvil dags @@ -662,15 +663,15 @@ def assert_airflow_calls(self, trigger_error=False, additional_tasks_check=False 'callset_path': f'gs://test_bucket/{dag_variable_overrides["callset_path"]}', 'sample_source': dag_variable_overrides['sample_source'], 'sample_type': dag_variable_overrides['sample_type'], + 'dataset_type': dataset_type or dag_variable_overrides['dataset_type'], 'reference_genome': dag_variable_overrides.get('reference_genome', 'GRCh38'), } - self._assert_airflow_calls(self.DAG_NAME, dag_variables, call_count, secondary_dag_name) + self._assert_airflow_calls(dag_variables, call_count) - def _assert_airflow_calls(self, dag_name, dag_variables, call_count, secondary_dag_name, offset=0): + def _assert_airflow_calls(self, dag_variables, call_count, offset=0): dag_url = self._dag_url # check dag running state - dag_url = self._dag_url.replace(dag_name, secondary_dag_name) if secondary_dag_name else dag_url self.assertEqual(responses.calls[offset].request.url, f'{dag_url}/dagRuns') self.assertEqual(responses.calls[offset].request.method, "GET") @@ -678,10 +679,10 @@ def _assert_airflow_calls(self, dag_name, dag_variables, call_count, secondary_d return # update variables - self.assertEqual(responses.calls[offset+1].request.url, f'{MOCK_AIRFLOW_URL}/api/v1/variables/{dag_name}') + self.assertEqual(responses.calls[offset+1].request.url, f'{MOCK_AIRFLOW_URL}/api/v1/variables/{DAG_NAME}') self.assertEqual(responses.calls[offset+1].request.method, 'PATCH') self.assertDictEqual(json.loads(responses.calls[offset+1].request.body), { - 'key': dag_name, + 'key': DAG_NAME, 'value': json.dumps(dag_variables), }) From bdd9ab4c25db1190a46afc395cbb34cd652b254d Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Wed, 7 Aug 2024 14:32:23 -0400 Subject: [PATCH 09/17] sample_type in sample_data --- hail_search/queries/base.py | 17 +++++++++++------ hail_search/test_utils.py | 8 ++++---- .../check_for_new_samples_from_pipeline.py | 2 +- ...check_for_new_samples_from_pipeline_tests.py | 4 ++-- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/hail_search/queries/base.py b/hail_search/queries/base.py index dfcaf26e23..241896007c 100644 --- a/hail_search/queries/base.py +++ b/hail_search/queries/base.py @@ -288,10 +288,10 @@ def _query_table_annotations(ht, query_table_path): def _parse_sample_data(self, sample_data): families = set() - project_samples = defaultdict(lambda: defaultdict(list)) + project_samples = defaultdict(lambda: defaultdict(lambda: defaultdict(list))) for s in sample_data: families.add(s['family_guid']) - project_samples[s['project_guid']][s['family_guid']].append(s) + project_samples[s['project_guid']][s['family_guid']][s['sample_type']].append(s) num_families = len(families) logger.info(f'Loading {self.DATA_TYPE} data for {num_families} families in {len(project_samples)} projects') @@ -303,7 +303,7 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ # for variant lookup, project_samples looks like # {: {: True, : True}, : ...} # for variant search, project_samples looks like - # {: {: [, , ...], : ...}, : ...} + # {: {: {: [, , ...], : ...}, : ...}, : ...} first_family_samples = list(project_samples[project_guid].values())[0] if isinstance(first_family_samples, bool): project_ht = ( @@ -311,7 +311,7 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) ) else: - sample_type = first_family_samples[0]['sample_type'] + sample_type = list(first_family_samples.keys())[0] project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) return self._filter_entries_table(project_ht, project_samples[project_guid], **kwargs) @@ -331,7 +331,7 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) ) else: - sample_type = first_family_samples[0]['sample_type'] + sample_type = list(first_family_samples.keys())[0] project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) if project_ht is None: @@ -359,7 +359,7 @@ def import_filtered_table(self, project_samples, num_families, intervals=None, * if num_families == 1: family_sample_data = list(project_samples.values())[0] family_guid = list(family_sample_data.keys())[0] - sample_type = family_sample_data[family_guid][0]['sample_type'] + sample_type = list(family_sample_data[family_guid].keys())[0] family_ht = self._read_table(f'families/{sample_type}/{family_guid}.ht', use_ssd_dir=True) family_ht = family_ht.transmute(family_entries=[family_ht.entries]) family_ht = family_ht.annotate_globals( @@ -415,6 +415,11 @@ def _merge_project_hts(project_hts, n_partitions, include_all_globals=False): def _filter_entries_table(self, ht, sample_data, inheritance_filter=None, quality_filter=None, **kwargs): ht = self._prefilter_entries_table(ht, **kwargs) + # Temporarily flatten sample data for each sample_type into one list of samples + for family_guid, samples_by_sample_type in sample_data.items(): + samples = [s for samples in samples_by_sample_type.values() for s in samples] + sample_data[family_guid] = samples + ht, sorted_family_sample_data = self._add_entry_sample_families(ht, sample_data) passes_quality_filter = self._get_family_passes_quality_filter(quality_filter, ht, **kwargs) diff --git a/hail_search/test_utils.py b/hail_search/test_utils.py index 255182d4af..e2553f4dd7 100644 --- a/hail_search/test_utils.py +++ b/hail_search/test_utils.py @@ -56,15 +56,15 @@ 'sample_id': 'NA20874', 'individual_guid': 'I000009_na20874', 'family_guid': 'F000005_5', 'project_guid': 'R0001_1kg', 'affected': 'N', 'sample_type': 'WES', } ALL_AFFECTED_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_5_SAMPLE) -FAMILY_11_SAMPLE = { +FAMILY_11_SAMPLE_WES = { 'sample_id': 'NA20885', 'individual_guid': 'I000015_na20885', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'A', 'sample_type': 'WES', } MULTI_PROJECT_SAMPLE_DATA = deepcopy(FAMILY_2_VARIANT_SAMPLE_DATA) -MULTI_PROJECT_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_11_SAMPLE) +MULTI_PROJECT_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_11_SAMPLE_WES) MULTI_PROJECT_MISSING_SAMPLE_DATA = deepcopy(FAMILY_2_MISSING_SAMPLE_DATA) -MULTI_PROJECT_MISSING_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_11_SAMPLE) +MULTI_PROJECT_MISSING_SAMPLE_DATA['SNV_INDEL'].append(FAMILY_11_SAMPLE_WES) -SV_WGS_SAMPLE_DATA_WITH_SEX = {'SV_WGS': [{'sex': 'M', **FAMILY_11_SAMPLE}, { +SV_WGS_SAMPLE_DATA_WITH_SEX = {'SV_WGS': [{'sex': 'M', **FAMILY_11_SAMPLE_WES, 'sample_type': 'WGS'}, { 'sample_id': 'NA20884', 'individual_guid': 'I000025_na20884', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'N', 'sample_type': 'WGS', 'sex': 'M', }, { 'sample_id': 'NA20883', 'individual_guid': 'I000035_na20883', 'family_guid': 'F000011_11', 'project_guid': 'R0003_test', 'affected': 'N', 'sample_type': 'WGS', 'sex': 'F', diff --git a/seqr/management/commands/check_for_new_samples_from_pipeline.py b/seqr/management/commands/check_for_new_samples_from_pipeline.py index 17824d8114..5666046029 100644 --- a/seqr/management/commands/check_for_new_samples_from_pipeline.py +++ b/seqr/management/commands/check_for_new_samples_from_pipeline.py @@ -20,7 +20,7 @@ logger = logging.getLogger(__name__) -GS_PATH_TEMPLATE = 'gs://seqr-hail-search-data/v03/{path}/runs/{version}/' +GS_PATH_TEMPLATE = 'gs://seqr-hail-search-data/v3.1/{path}/runs/{version}/' DATASET_TYPE_MAP = {'GCNV': Sample.DATASET_TYPE_SV_CALLS} USER_EMAIL = 'manage_command' MAX_LOOKUP_VARIANTS = 5000 diff --git a/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py b/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py index e0b891bcdb..af2423c818 100644 --- a/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py +++ b/seqr/management/tests/check_for_new_samples_from_pipeline_tests.py @@ -83,8 +83,8 @@ def _test_success(self, path, metadata, dataset_type, sample_guids, reload_calls call_command('check_for_new_samples_from_pipeline', path, 'auto__2023-08-08') self.mock_subprocess.assert_has_calls([mock.call(command, stdout=-1, stderr=-2, shell=True) for command in [ - f'gsutil ls gs://seqr-hail-search-data/v03/{path}/runs/auto__2023-08-08/_SUCCESS', - f'gsutil cat gs://seqr-hail-search-data/v03/{path}/runs/auto__2023-08-08/metadata.json', + f'gsutil ls gs://seqr-hail-search-data/v3.1/{path}/runs/auto__2023-08-08/_SUCCESS', + f'gsutil cat gs://seqr-hail-search-data/v3.1/{path}/runs/auto__2023-08-08/metadata.json', ]], any_order=True) self.mock_logger.info.assert_has_calls([ From ddac649e37606fa2ac71d83cdf93a6e27d656cc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 19:33:40 +0000 Subject: [PATCH 10/17] Bump django from 4.2.14 to 4.2.15 Bumps [django](https://github.com/django/django) from 4.2.14 to 4.2.15. - [Commits](https://github.com/django/django/compare/4.2.14...4.2.15) --- updated-dependencies: - dependency-name: django dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 3 +-- requirements.txt | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 4a612073b8..990d45182f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -22,7 +22,7 @@ click==8.1.3 # via pip-tools coverage==5.1 # via -r requirements-dev.in -django==4.2.14 +django==4.2.15 # via # -c requirements.txt # django-appconf @@ -83,4 +83,3 @@ wheel==0.38.4 # The following packages are considered to be unsafe in a requirements file: # pip # setuptools -zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability diff --git a/requirements.txt b/requirements.txt index 0dae0ae7bb..a3175ce89a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -26,7 +26,7 @@ defusedxml==0.7.1 # via # python3-openid # social-auth-core -django==4.2.14 +django==4.2.15 # via # -r requirements.in # django-anymail @@ -182,4 +182,3 @@ urllib3==1.26.19 # requests whitenoise==6.3.0 # via -r requirements.in -zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability From e2ac78c6b10b322140b3dda8d0b1185ad1a07a3b Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Wed, 7 Aug 2024 15:41:42 -0400 Subject: [PATCH 11/17] add project and family tables for R0003_test WES, handle lookup sample data --- .../families/WES/F000011_11.ht/.README.txt.crc | Bin 0 -> 12 bytes .../families/WES/F000011_11.ht/._SUCCESS.crc | Bin 0 -> 8 bytes .../WES/F000011_11.ht/.metadata.json.gz.crc | Bin 0 -> 12 bytes .../SV_WES/families/WES/F000011_11.ht/README.txt | 3 +++ .../SV_WES/families/WES/F000011_11.ht/_SUCCESS | 0 .../F000011_11.ht/globals/.metadata.json.gz.crc | Bin 0 -> 12 bytes .../WES/F000011_11.ht/globals/metadata.json.gz | Bin 0 -> 295 bytes .../WES/F000011_11.ht/globals/parts/.part-0.crc | Bin 0 -> 12 bytes .../WES/F000011_11.ht/globals/parts/part-0 | Bin 0 -> 460 bytes .../.index.crc | Bin 0 -> 12 bytes .../.metadata.json.gz.crc | Bin 0 -> 12 bytes .../index | Bin 0 -> 169 bytes .../metadata.json.gz | Bin 0 -> 162 bytes .../families/WES/F000011_11.ht/metadata.json.gz | Bin 0 -> 337 bytes .../WES/F000011_11.ht/rows/.metadata.json.gz.crc | Bin 0 -> 16 bytes .../WES/F000011_11.ht/rows/metadata.json.gz | Bin 0 -> 639 bytes ...8-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc | Bin 0 -> 12 bytes ...0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 | Bin 0 -> 192 bytes .../projects/WES/R0003_test.ht/.README.txt.crc | Bin 0 -> 12 bytes .../projects/WES/R0003_test.ht/._SUCCESS.crc | Bin 0 -> 8 bytes .../WES/R0003_test.ht/.metadata.json.gz.crc | Bin 0 -> 12 bytes .../SV_WES/projects/WES/R0003_test.ht/README.txt | 3 +++ .../SV_WES/projects/WES/R0003_test.ht/_SUCCESS | 0 .../R0003_test.ht/globals/.metadata.json.gz.crc | Bin 0 -> 12 bytes .../WES/R0003_test.ht/globals/metadata.json.gz | Bin 0 -> 311 bytes .../WES/R0003_test.ht/globals/parts/.part-0.crc | Bin 0 -> 12 bytes .../WES/R0003_test.ht/globals/parts/part-0 | Bin 0 -> 191 bytes .../.index.crc | Bin 0 -> 12 bytes .../.metadata.json.gz.crc | Bin 0 -> 12 bytes .../index | Bin 0 -> 183 bytes .../metadata.json.gz | Bin 0 -> 162 bytes .../projects/WES/R0003_test.ht/metadata.json.gz | Bin 0 -> 375 bytes .../WES/R0003_test.ht/rows/.metadata.json.gz.crc | Bin 0 -> 16 bytes .../WES/R0003_test.ht/rows/metadata.json.gz | Bin 0 -> 644 bytes ...art-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc | Bin 0 -> 12 bytes .../part-0-cbf84037-3354-427a-98a6-b953711ae5bc | Bin 0 -> 200 bytes hail_search/queries/base.py | 5 +++-- hail_search/test_search.py | 4 ++-- 38 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.README.txt.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/._SUCCESS.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/_SUCCESS create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/.part-0.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/part-0 create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.index.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/index create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/parts/.part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/parts/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.README.txt.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/._SUCCESS.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/_SUCCESS create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/parts/.part-0.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/parts/part-0 create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc create mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/part-0-cbf84037-3354-427a-98a6-b953711ae5bc diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.README.txt.crc new file mode 100644 index 0000000000000000000000000000000000000000..a4400373154743338e43096341ff91f638053b5d GIT binary patch literal 12 TcmYc;N@ieSU}CtlVo@ys6sZH= literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/._SUCCESS.crc new file mode 100644 index 0000000000000000000000000000000000000000..3b7b044936a890cd8d651d349a752d819d71d22c GIT binary patch literal 8 PcmYc;N@ieSU}69O2$TUk literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..2817ee0840e52c9da3e3b53b13e797aa07a16f40 GIT binary patch literal 12 TcmYc;N@ieSU}Dfa{?7ye61@Xr literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt new file mode 100644 index 0000000000..cd4126895e --- /dev/null +++ b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt @@ -0,0 +1,3 @@ +This folder comprises a Hail (www.hail.is) native Table or MatrixTable. + Written with version 0.2.109-b71b065e4bb6 + Created at 2023/08/23 14:16:34 \ No newline at end of file diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/_SUCCESS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..18ad5aa5ab9630781295c79a0032a005a78bc93d GIT binary patch literal 12 TcmYc;N@ieSU}Bgb8qN#=5v&4< literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..19dd3d6727d00995e9771f45114424f2530c21eb GIT binary patch literal 295 zcmV+?0oeW@iwFP!000000F{wZPlGTNh5t)mhlx(33vV(pJ}faA#s`;$bnOM}N+E4A zLBfCcUM8DNUgW8q@0@!mw`GPGz(V$HC0LN_*N3D6F=qiw_t3C#v&EArB?!`4*baf0 zrUJP<0(1dMNM>=w9VFh?!nYYOly1_zR?>yD_}*IHY|x<$x6L+iyr?v!)3B~2_b@>^ zs{8z@n<_f^ktmaoO2%L)NWc$TKYCYZ8Q8N6uj1%xzKBjJVB%eA`O6aNQtWZc$h0Fd zQD11dp5NUr{>D~sH&4qx`_CYLGw|X(+0lcysJQiyN`u2KGJ3hVWVFqXH8(j#Wo;y( tmN}0Q$6^SKJRFn}x|X=b9^o&BqZX5gl#Zrx@2#Uu_YKj;f~!md002<7jDi3F literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/.part-0.crc new file mode 100644 index 0000000000000000000000000000000000000000..14b34f102c45175de6be75fe39cabd9ef2743363 GIT binary patch literal 12 TcmYc;N@ieSU}A`4$}<4~5Do%8 literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/part-0 new file mode 100644 index 0000000000000000000000000000000000000000..a6fab3a930518526a8d53a2dd30f78591ec5a790 GIT binary patch literal 460 zcmWNM&2H0B5QWEN(MrTpoa~Syp}-bHT4*KLJT)W z9S}_dW2u!-AQwy%=!*o75yi^{emakV&~&?SA%hU4V)$*4Av$SeI2Qqpe+8us=t;*= z5<4o-f>VukEI8B)!@GtB&kGv_O231*&g_7+;R1b`07|X7iYKX_ft*o{^$7arFYLUx zIyfnNT^QID-dH(=FD`gR+^pyC0j7`>dOM8B3O4Ng04`+==nw|#5cV@2{fMsGqbzHyZ_T?^u`Swa+h%ttv*|ovlgs9l zY4|i!Uf&=iz5vGjXvH5Uk*%GVAOai0`|5qFv{(~}^;S06FGKTL1t6 literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e4b22f3bb490f95c55551b2f0b56ed6a65b01250 GIT binary patch literal 337 zcmV-X0j~ZZiwFP!000000F9ARPr@)1h5t*RD;bCo`=&D?z8Dqa3t5)Ca)HLKZMqJ! zEdB3Z#wMsQzIEq(=j`^jWm}~&KcKIaHB8Lr$$Y}u9+bX_EE!EkgZqcKWSmhpd?jY<5zNmx*D5yR(4#`=aKH8nO1!%DhzLufgLaB6#Pm~UHnd<;YLkGO7K7r|r zcsAj7!lgCR`VG)Eh7#xTkej;9L5H5|BneuJM{6~L;RcUCgvb|fJ-k?nl$@CH%ar0g zO^mcEX-j7fja4zxvh$X@qk;0Yz4wo&bU>C4W%mHzTOasHsy+Tc*TEEW;DZYE+_|)M jKSN*eI#_Av{4N{#^)!oA)Q7sa?uhsWG&;e2WC8#HWJjou literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..01d66fc81577fb38feb4079fdb5d7e5075fe702f GIT binary patch literal 16 XcmYc;N@ieSU}AV_Wbi6bZSocXBvb`1 literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..1fd69440433b39f134f72464df9df971618240a8 GIT binary patch literal 639 zcmV-_0)YJ=iwFP!000000NqtxZ`v>v{V#rPU`hBW%iEw?hlJ2psyz%L%e8Mx*5E{r z!^%+p`>w-B$Olrp$AX05+;gwbu}|=xNVWmuk*O5$3gY4C-68?*5{u9m*b#3@woHXg zY8nc%LX^h>xZx0Qe`y?c1x^<2>&9X=iUxS&9>RE{H%*_j3geILe6Vnq`gjGTGo#{2=-R`G?ZcyB;pvdK$!dlI$O3hxrV$yJ@ zhkXklhbsxiN;Quy`LW_4NI{>cF)3rsbQsHOYo4##vv!hmA*K>CBci$dF$t&D8*A5A z{U~X{=Tfq0j)(kzr(dk6K(?QE5ig35KhWB#HdAvz-jt97Re|}7XdnE}(41XVg3?r9 z*IrkCJyva!uL%B-NyFW#Zh8BkaJdatc23NYgem0O3u<8M3~i$gq-cyt))+jO-ubfwb?6QZHIzKc1SYar7X85) Z^UV~4nI`4#*E-SE+Sc&yyb15bjeF4O4sM_&b&hYNBhx6&pJWe(=*lP;-P=70W0LVT zOkNpn4<~BEC*k$aFs2N?daZWdz-PkEED9f2n-<5*7(X_kfvf0(0yIGKG9FNztT%cP f%hkRIa>((V1Vsy)gQ{La%_w06Zq9Ke&vx+#6P6~H literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.README.txt.crc new file mode 100644 index 0000000000000000000000000000000000000000..a3bb76f1307c1fd446eb806c189c3219d0910f6d GIT binary patch literal 12 TcmYc;N@ieSU}7-)8>I*U5+nlY literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/._SUCCESS.crc new file mode 100644 index 0000000000000000000000000000000000000000..3b7b044936a890cd8d651d349a752d819d71d22c GIT binary patch literal 8 PcmYc;N@ieSU}69O2$TUk literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..dfa05f538157270698fa8e925e319c00b2cfbe24 GIT binary patch literal 12 TcmYc;N@ieSU}DJ9*IEw%5V!)Z literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt new file mode 100644 index 0000000000..c7d1359830 --- /dev/null +++ b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt @@ -0,0 +1,3 @@ +This folder comprises a Hail (www.hail.is) native Table or MatrixTable. + Written with version 0.2.126-ee77707f4fab + Created at 2024/02/05 17:34:17 \ No newline at end of file diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/_SUCCESS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..79ea0b74d6e0dad1fda877b28442060d1feb892f GIT binary patch literal 12 TcmYc;N@ieSU}CU*`1Kb66YB&- literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..c0e3ea8a8374d355a4419a5c6e78527167606d00 GIT binary patch literal 311 zcmV-70m%LziwFP!000000F_crPs1P>{x4it6P?*&xLH?ECMK)#VACuN-c}r?4TUAO z>3{cST{nv-Il=SA!$(gvtAJ4QY6KV%+xJb{0AG@b><-Won&mj-wE*sMLi@?^)-@oW zE(EH;L&z+Wn6;2vPak#$R)x;N4?IM}jD41PT6}-v z7dN-W|AVhB(_@s(N~NP)7ZSW1c}~wHn0DXv+LUJ#u`ESYg3dh zBqXNrPLTInm?*=p$KK|^dBh^QMZoE(Lm|Vp)i1s&Xc`9gw(pAExBS}cvn$TN*d6~@ zTxgQqWu?CRkK@j>1lc~@7$0R`knQDn=I!5{rIEI~J2aJ#_bgZ``>bl&3h^DL=lX4{ qRbx&*&STyd(@@OF%An9am8Y??cj2LpT+1YRfi49Buxl9@85jV@u1+KX literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc new file mode 100644 index 0000000000000000000000000000000000000000..c196068cba2e66a1fddf969adfc94b8eeb0789b3 GIT binary patch literal 12 TcmYc;N@ieSU}9MN=2k8M6&VB@ literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..41cee7d3f8b97bb44926145da125f70696fb803b GIT binary patch literal 12 TcmYc;N@ieSU}8vjFrEzn5ZwZ> literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index new file mode 100644 index 0000000000000000000000000000000000000000..c7ce1f380c5c8ab6571026bd9fd73dfd6571973d GIT binary patch literal 183 zcmXS5U|=W*VvVi(e-+AQnHfY_85md?w3G8Q@{3C1jVuif^^!A+4E547^AdC7lXFrN z^GXZiJ^g~?;|_w!U=~cthB&4ZQ zO8@trU8~fmy*1zczVC9EHY`^f(-ZnqS;NF4o<&cb9YN`v$flEM@)#{15aT$W#`!#l zJ>$${jvkG~GWDoa2jNKYO(i72p5jC8kSd$Yp*d)~2QAjYS28q}%OGGW))=-VDRbEI z915lD^iZj+6wls6eP1e}aGG38B?lWHfxDLfU@f*M@Cr;wRkq{ao`Xp=!nBju5B(k$-8(pVHR;|jkG=k8hhyBJf2ch6)EV@Q=KG1Yw=>OMljsqc_g%a z_1VL#jYz1{(kv})Qrf~-4rTW~*GC!nmQ;KGzpsPI zbO1HYZ`E;-&hBpyczSF!husZ5nY85wl_hBanP(0;LP VDXsT+|5ayge*yXr;d#&k000EBxiA0# literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..59afd1815900ecc8e854c51d64b74abfbd3ec6c8 GIT binary patch literal 16 XcmYc;N@ieSU}A{e5D<{Gbn!j_BJTxE literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..49ebd019d137568e1fa2f3836c68170369f91424 GIT binary patch literal 644 zcmV-~0(<=*iwFP!000000NqtxkD5Rf{V(&nU{`Qr?;Q{n&}6rd>x0oV=YE`f56qDWwguvmnegEa{HLGyiyd&A7=*sUfp|-@XEJ0$ z(aIF5h`L%^Rpk{J&_O8&$1=~uQ|Wm@F^B(foI0cwd*C|+vH3aBZpkW+l0<+RmY z)6taCQgJDw(lEi3Qo%Y60+5YuK2FD$Jsh8p48k{I2jfsYux&Fk(;pNOYU?&M%t|bGvV`b6QyauPoi90Eqd1x%H|@KeTsN{z z^iJQLpzK%bVL}3Ok;NnX62#+_h zRMZ|>R)=q-)d|pZ5#{>kNOyELUr-HG%kAo(K=`c`yAAryruWmwg6i6RO$`N)QXh?& emqlGrVN;z&Bbn}$DJ8K*G{8UAr^)M(2mk<_v^>55 literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc new file mode 100644 index 0000000000000000000000000000000000000000..2e373bfe9be3af3373c2e0917fc127efb4e786ac GIT binary patch literal 12 TcmYc;N@ieSU}DIB$7~1y5B0REp+o(?dImroG2P4(|tZN>NUN1~*a8VieHer)5h9h~5|04Lwm3acBuvhtdPI0Obgd)nI9ljk_3CLa|)8*p*>|`vDIC zU_|AvRm(^aVGg2L(FNLY%1g>3SR@F+XF)LtoDxYjm{1J>00000001bpFa00@0RR9z C Date: Wed, 7 Aug 2024 16:04:37 -0400 Subject: [PATCH 12/17] add WES test fixture table --- .../projects/WES/R0003_test.ht/.README.txt.crc | Bin 0 -> 12 bytes .../projects/WES/R0003_test.ht}/._SUCCESS.crc | Bin .../WES/R0003_test.ht/.metadata.json.gz.crc | Bin 0 -> 12 bytes .../projects/WES/R0003_test.ht/README.txt | 3 +++ .../projects/WES/R0003_test.ht}/_SUCCESS | 0 .../R0003_test.ht/globals/.metadata.json.gz.crc | Bin 0 -> 12 bytes .../WES/R0003_test.ht/globals/metadata.json.gz | Bin 0 -> 324 bytes .../WES/R0003_test.ht/globals/parts/.part-0.crc | Bin 0 -> 12 bytes .../WES/R0003_test.ht/globals/parts/part-0 | Bin 0 -> 179 bytes .../.index.crc | Bin 0 -> 12 bytes .../.metadata.json.gz.crc | Bin 0 -> 12 bytes .../index | Bin 0 -> 104 bytes .../metadata.json.gz | Bin 0 -> 185 bytes .../projects/WES/R0003_test.ht/metadata.json.gz | Bin 0 -> 370 bytes .../WES/R0003_test.ht/rows/.metadata.json.gz.crc | Bin 0 -> 16 bytes .../WES/R0003_test.ht/rows/metadata.json.gz | Bin 0 -> 641 bytes ...art-0-a35eed71-c848-4567-8937-364bcaecaf47.crc | Bin 0 -> 12 bytes .../part-0-a35eed71-c848-4567-8937-364bcaecaf47 | Bin 0 -> 107 bytes .../families/WES/F000011_11.ht/.README.txt.crc | Bin 12 -> 0 bytes .../WES/F000011_11.ht/.metadata.json.gz.crc | Bin 12 -> 0 bytes .../SV_WES/families/WES/F000011_11.ht/README.txt | 3 --- .../F000011_11.ht/globals/.metadata.json.gz.crc | Bin 12 -> 0 bytes .../WES/F000011_11.ht/globals/metadata.json.gz | Bin 295 -> 0 bytes .../WES/F000011_11.ht/globals/parts/.part-0.crc | Bin 12 -> 0 bytes .../WES/F000011_11.ht/globals/parts/part-0 | Bin 460 -> 0 bytes .../.index.crc | Bin 12 -> 0 bytes .../.metadata.json.gz.crc | Bin 12 -> 0 bytes .../index | Bin 169 -> 0 bytes .../metadata.json.gz | Bin 162 -> 0 bytes .../families/WES/F000011_11.ht/metadata.json.gz | Bin 337 -> 0 bytes .../WES/F000011_11.ht/rows/.metadata.json.gz.crc | Bin 16 -> 0 bytes .../WES/F000011_11.ht/rows/metadata.json.gz | Bin 639 -> 0 bytes ...8-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc | Bin 12 -> 0 bytes ...0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 | Bin 192 -> 0 bytes .../projects/WES/R0003_test.ht/.README.txt.crc | Bin 12 -> 0 bytes .../projects/WES/R0003_test.ht/._SUCCESS.crc | Bin 8 -> 0 bytes .../WES/R0003_test.ht/.metadata.json.gz.crc | Bin 12 -> 0 bytes .../SV_WES/projects/WES/R0003_test.ht/README.txt | 3 --- .../SV_WES/projects/WES/R0003_test.ht/_SUCCESS | 0 .../R0003_test.ht/globals/.metadata.json.gz.crc | Bin 12 -> 0 bytes .../WES/R0003_test.ht/globals/metadata.json.gz | Bin 311 -> 0 bytes .../WES/R0003_test.ht/globals/parts/.part-0.crc | Bin 12 -> 0 bytes .../WES/R0003_test.ht/globals/parts/part-0 | Bin 191 -> 0 bytes .../.index.crc | Bin 12 -> 0 bytes .../.metadata.json.gz.crc | Bin 12 -> 0 bytes .../index | Bin 183 -> 0 bytes .../metadata.json.gz | Bin 162 -> 0 bytes .../projects/WES/R0003_test.ht/metadata.json.gz | Bin 375 -> 0 bytes .../WES/R0003_test.ht/rows/.metadata.json.gz.crc | Bin 16 -> 0 bytes .../WES/R0003_test.ht/rows/metadata.json.gz | Bin 644 -> 0 bytes ...art-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc | Bin 12 -> 0 bytes .../part-0-cbf84037-3354-427a-98a6-b953711ae5bc | Bin 200 -> 0 bytes 52 files changed, 3 insertions(+), 6 deletions(-) create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/.README.txt.crc rename hail_search/fixtures/GRCh38/{SV_WES/families/WES/F000011_11.ht => SNV_INDEL/projects/WES/R0003_test.ht}/._SUCCESS.crc (100%) create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/README.txt rename hail_search/fixtures/GRCh38/{SV_WES/families/WES/F000011_11.ht => SNV_INDEL/projects/WES/R0003_test.ht}/_SUCCESS (100%) create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/parts/.part-0.crc create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/parts/part-0 create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/.index.crc create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/index create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/rows/.metadata.json.gz.crc create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/rows/metadata.json.gz create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/rows/parts/.part-0-a35eed71-c848-4567-8937-364bcaecaf47.crc create mode 100644 hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/rows/parts/part-0-a35eed71-c848-4567-8937-364bcaecaf47 delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.README.txt.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/.part-0.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/part-0 delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.index.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/index delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/index/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.idx/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/parts/.part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/parts/part-0-278-0-0-7dd50455-5c6c-48a0-7033-11afafa5d003 delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.README.txt.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/._SUCCESS.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/_SUCCESS delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/parts/.part-0.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/parts/part-0 delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/.metadata.json.gz.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/metadata.json.gz delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc delete mode 100644 hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/part-0-cbf84037-3354-427a-98a6-b953711ae5bc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/.README.txt.crc new file mode 100644 index 0000000000000000000000000000000000000000..c98011f4e3ff63d8724013e8358026b0a4edec18 GIT binary patch literal 12 TcmYc;N@ieSU}7lO%=iuf5uO7& literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/._SUCCESS.crc similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/._SUCCESS.crc rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/._SUCCESS.crc diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..288ebfdfcfc2c6cb560890e8a032d0d617063e8e GIT binary patch literal 12 TcmYc;N@ieSU}6xl)$IlV4{QQN literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/README.txt b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/README.txt new file mode 100644 index 0000000000..0ad192a49b --- /dev/null +++ b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/README.txt @@ -0,0 +1,3 @@ +This folder comprises a Hail (www.hail.is) native Table or MatrixTable. + Written with version 0.2.128-eead8100a1c1 + Created at 2024/08/07 16:01:38 \ No newline at end of file diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/_SUCCESS similarity index 100% rename from hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/_SUCCESS rename to hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/_SUCCESS diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc new file mode 100644 index 0000000000000000000000000000000000000000..acf12b18f0fe52a544cc6f65bdbbc7e722339f38 GIT binary patch literal 12 TcmYc;N@ieSU}88TyV?~15`qH^ literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9459e7d89b84db892bdd4fb907f3b19a5a2899a GIT binary patch literal 324 zcmV-K0lWSmiwFP!000000F_crPlGTR{x7`_6P?*&dJ~5y6O&;)NC@fL7pyCVly(Uc z{=09-V1g%mYM-w@{pg5hB@jwpjQ|5;|GtZB;A;|)>Od?Z4KgS zB2Wb$LS_|(tby1X$8G0o!7Ma%6+Ifm+5}0dnQ7CYVP&l#vuL6t8sw~$s?7=~#nm%e zF6`i(WnMSL)^toeG39_RQu?&_ZBLiBi=Hvq1R<%5dBXvl_ZxCY^`hKP@-Zox35V?u zF3-U%?(`)J@753Dl?n*|luG=PgsS34jG2iJ9*pHT3bvcg{r0czqp{*_{ihE*11p!# z-VZ!P&5V7Pcv}1?#4m1ciT^KOd!`ErE2o90I?`AqF&0gr#W0bYD<|;T&J?}^OjzVK W9_f7=v(_};)Bga@3U%hL0ssIragzlA literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/parts/.part-0.crc new file mode 100644 index 0000000000000000000000000000000000000000..ec695bda7b936238f5deb256986cf2fbf454eda2 GIT binary patch literal 12 TcmYc;N@ieSU}BiN< literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/globals/parts/part-0 new file mode 100644 index 0000000000000000000000000000000000000000..adfbcf32cc05d70ab4168ed1833857ff6e6ea88e GIT binary patch literal 179 zcmbQoz`(E-h&8tA|5e!9%fj%=;P>Sa~S3JIyeZM!8q zxAPn>w>>R(@{) literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/index b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/index new file mode 100644 index 0000000000000000000000000000000000000000..55e960e931bb88a950f33a3e8604a4529fbc0713 GIT binary patch literal 104 zcmcC#U|=u;VvVi(e-(@-G6I>*3@phRMTU#~nV21&of#b&ApGNjOiYeIt|Ekc_}FeC aCdLp(cc1_Rg9ywBk%bHlj386c%m4soJQa2T literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/index/part-0-a35eed71-c848-4567-8937-364bcaecaf47.idx/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..505696c221554258212a8ddf2a204174be3577a1 GIT binary patch literal 185 zcmV;q07m~GiwFP!0000009B5`3c@fDME_+^3ON*8V$DqiJt!zDUc^IMw@ol4l5D|J z`tNSNd07T#=Isp7Scf-^$p#Nf%B&~_R8jldSl@1SO(B9RvXvBI(6)v^Ed;!)O18L%y|B%V^d+ZaaT!8gY n{G2oy4*WE`F$6j`O+ua_mrNq2RvjT%hH?A?EnNng&j0`b1YS+q literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SNV_INDEL/projects/WES/R0003_test.ht/metadata.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..9af33596ce4d961c44e1554796a05f1393749df9 GIT binary patch literal 370 zcmV-&0ge72iwFP!000000F9DSZ-Oush5t*Rwxlxxi!*(5n3-jJaBB8q2&v_&%?c%L znIVM#z6$~dpY}r9bH8(Xb1xM+N(J#R7%O!~*z6_n=aiheR5y`KC;r6q=T87UnS0YI z_k>3%F>nL}nE)FbP;t)P8R46Xh~o#0cV!M(*)^Byr1XI+wsocut}60`JFsjEZjX}8 zP7$>{%{v#nYV^ocsml0N$i%XRF}xh;u5>k7wv?hzq9ZV>=?|1_ue2yEGkool)0aACTdFFbuXPfAz)QGZ*-D@ygzm=5F>(m+MYj z?O2G9)!1i^gA+Qw~)*dsSHnZG(FT)<$<{;X23_Ixg8dZJyzpsVSlyl>x z!{x_97hMlsz`8GmZRI|!=l4O>vhX0GNHZ^n&34!JgC`Fa3sROi&RR|g91iS_Z zIc6$D{_i_Z$R|uHm3mVyAUQrC@9R8(4@A%n5T87V0A3-O{JfiPfwhT67B8?T{xgYU zwoCAyMiE4ikU1`~H~?l6iGRpD%=TLdhQ$JAfeGQt)o4Hym@2tr>X5ecs}U9p#aBLN zaY5zY+Qtc2JQf&v5Xxz5>p0pU^`)fy=R9+6g*;Lq&n?gmkM;`?N^&f`Iws^FmFeRj zem2JH5B$-66jSB7*4rcDpwymn_28JPIl)12pl1dTL2a6P)tD znBa9fj(1x2D^WpOdSM+p1G;HeYV$%9+>qGt@Q}w+FeOA!RIM?7ef=#>H_-@anBw;) zCaVa9TqbJ4gV&5W++ak%grY06^=_SR%kkVLqrhnBcGL61?+Fzv7{ogfnEC@r6m~GiveN}#WC-I_ zww5-^$q^>LePg?xE)O6$zdsyeN}u2}Cm@11HgbC1w(Hur^x>Idv b9*Wq=3^5UH>`iFVvVi(e-)B_nHWNt85vlTGl~os`7<#)Iy*BuGB5%m10Ta1dk&uCflN$} z0w3(zL=GR@EyTna!swp-z+Q%jft|sCMerEo%mX`|MSVkrq72x0fu@20*kq6i0NGp? A_y7O^ literal 0 HcmV?d00001 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.README.txt.crc deleted file mode 100644 index a4400373154743338e43096341ff91f638053b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}CtlVo@ys6sZH= diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/.metadata.json.gz.crc deleted file mode 100644 index 2817ee0840e52c9da3e3b53b13e797aa07a16f40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Dfa{?7ye61@Xr diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt deleted file mode 100644 index cd4126895e..0000000000 --- a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -This folder comprises a Hail (www.hail.is) native Table or MatrixTable. - Written with version 0.2.109-b71b065e4bb6 - Created at 2023/08/23 14:16:34 \ No newline at end of file diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/.metadata.json.gz.crc deleted file mode 100644 index 18ad5aa5ab9630781295c79a0032a005a78bc93d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Bgb8qN#=5v&4< diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/metadata.json.gz deleted file mode 100644 index 19dd3d6727d00995e9771f45114424f2530c21eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmV+?0oeW@iwFP!000000F{wZPlGTNh5t)mhlx(33vV(pJ}faA#s`;$bnOM}N+E4A zLBfCcUM8DNUgW8q@0@!mw`GPGz(V$HC0LN_*N3D6F=qiw_t3C#v&EArB?!`4*baf0 zrUJP<0(1dMNM>=w9VFh?!nYYOly1_zR?>yD_}*IHY|x<$x6L+iyr?v!)3B~2_b@>^ zs{8z@n<_f^ktmaoO2%L)NWc$TKYCYZ8Q8N6uj1%xzKBjJVB%eA`O6aNQtWZc$h0Fd zQD11dp5NUr{>D~sH&4qx`_CYLGw|X(+0lcysJQiyN`u2KGJ3hVWVFqXH8(j#Wo;y( tmN}0Q$6^SKJRFn}x|X=b9^o&BqZX5gl#Zrx@2#Uu_YKj;f~!md002<7jDi3F diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/.part-0.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/.part-0.crc deleted file mode 100644 index 14b34f102c45175de6be75fe39cabd9ef2743363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A`4$}<4~5Do%8 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/part-0 b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/globals/parts/part-0 deleted file mode 100644 index a6fab3a930518526a8d53a2dd30f78591ec5a790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmWNM&2H0B5QWEN(MrTpoa~Syp}-bHT4*KLJT)W z9S}_dW2u!-AQwy%=!*o75yi^{emakV&~&?SA%hU4V)$*4Av$SeI2Qqpe+8us=t;*= z5<4o-f>VukEI8B)!@GtB&kGv_O231*&g_7+;R1b`07|X7iYKX_ft*o{^$7arFYLUx zIyfnNT^QID-dH(=FD`gR+^pyC0j7`>dOM8B3O4Ng04`+==nw|#5cV@2{fMsGqbzHyZ_T?^u`Swa+h%ttv*|ovlgs9l zY4|i!Uf&=iz5vGjXvH5Uk*%GVAOai0`|5qFv{(~}^;S06FGKTL1t6 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/metadata.json.gz deleted file mode 100644 index e4b22f3bb490f95c55551b2f0b56ed6a65b01250..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~ZZiwFP!000000F9ARPr@)1h5t*RD;bCo`=&D?z8Dqa3t5)Ca)HLKZMqJ! zEdB3Z#wMsQzIEq(=j`^jWm}~&KcKIaHB8Lr$$Y}u9+bX_EE!EkgZqcKWSmhpd?jY<5zNmx*D5yR(4#`=aKH8nO1!%DhzLufgLaB6#Pm~UHnd<;YLkGO7K7r|r zcsAj7!lgCR`VG)Eh7#xTkej;9L5H5|BneuJM{6~L;RcUCgvb|fJ-k?nl$@CH%ar0g zO^mcEX-j7fja4zxvh$X@qk;0Yz4wo&bU>C4W%mHzTOasHsy+Tc*TEEW;DZYE+_|)M jKSN*eI#_Av{4N{#^)!oA)Q7sa?uhsWG&;e2WC8#HWJjou diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/.metadata.json.gz.crc deleted file mode 100644 index 01d66fc81577fb38feb4079fdb5d7e5075fe702f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 XcmYc;N@ieSU}AV_Wbi6bZSocXBvb`1 diff --git a/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/families/WES/F000011_11.ht/rows/metadata.json.gz deleted file mode 100644 index 1fd69440433b39f134f72464df9df971618240a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YJ=iwFP!000000NqtxZ`v>v{V#rPU`hBW%iEw?hlJ2psyz%L%e8Mx*5E{r z!^%+p`>w-B$Olrp$AX05+;gwbu}|=xNVWmuk*O5$3gY4C-68?*5{u9m*b#3@woHXg zY8nc%LX^h>xZx0Qe`y?c1x^<2>&9X=iUxS&9>RE{H%*_j3geILe6Vnq`gjGTGo#{2=-R`G?ZcyB;pvdK$!dlI$O3hxrV$yJ@ zhkXklhbsxiN;Quy`LW_4NI{>cF)3rsbQsHOYo4##vv!hmA*K>CBci$dF$t&D8*A5A z{U~X{=Tfq0j)(kzr(dk6K(?QE5ig35KhWB#HdAvz-jt97Re|}7XdnE}(41XVg3?r9 z*IrkCJyva!uL%B-NyFW#Zh8BkaJdatc23NYgem0O3u<8M3~i$gq-cyt))+jO-ubfwb?6QZHIzKc1SYar7X85) Z^UV~4nI`4#*E-SE+Sc&yyb15bjeF4O4sM_&b&hYNBhx6&pJWe(=*lP;-P=70W0LVT zOkNpn4<~BEC*k$aFs2N?daZWdz-PkEED9f2n-<5*7(X_kfvf0(0yIGKG9FNztT%cP f%hkRIa>((V1Vsy)gQ{La%_w06Zq9Ke&vx+#6P6~H diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.README.txt.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.README.txt.crc deleted file mode 100644 index a3bb76f1307c1fd446eb806c189c3219d0910f6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}7-)8>I*U5+nlY diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/._SUCCESS.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/._SUCCESS.crc deleted file mode 100644 index 3b7b044936a890cd8d651d349a752d819d71d22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmYc;N@ieSU}69O2$TUk diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/.metadata.json.gz.crc deleted file mode 100644 index dfa05f538157270698fa8e925e319c00b2cfbe24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DJ9*IEw%5V!)Z diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt deleted file mode 100644 index c7d1359830..0000000000 --- a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -This folder comprises a Hail (www.hail.is) native Table or MatrixTable. - Written with version 0.2.126-ee77707f4fab - Created at 2024/02/05 17:34:17 \ No newline at end of file diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/_SUCCESS b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/_SUCCESS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/.metadata.json.gz.crc deleted file mode 100644 index 79ea0b74d6e0dad1fda877b28442060d1feb892f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}CU*`1Kb66YB&- diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/globals/metadata.json.gz deleted file mode 100644 index c0e3ea8a8374d355a4419a5c6e78527167606d00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmV-70m%LziwFP!000000F_crPs1P>{x4it6P?*&xLH?ECMK)#VACuN-c}r?4TUAO z>3{cST{nv-Il=SA!$(gvtAJ4QY6KV%+xJb{0AG@b><-Won&mj-wE*sMLi@?^)-@oW zE(EH;L&z+Wn6;2vPak#$R)x;N4?IM}jD41PT6}-v z7dN-W|AVhB(_@s(N~NP)7ZSW1c}~wHn0DXv+LUJ#u`ESYg3dh zBqXNrPLTInm?*=p$KK|^dBh^QMZoE(Lm|Vp)i1s&Xc`9gw(pAExBS}cvn$TN*d6~@ zTxgQqWu?CRkK@j>1lc~@7$0R`knQDn=I!5{rIEI~J2aJ#_bgZ``>bl&3h^DL=lX4{ qRbx&*&STyd(@@OF%An9am8Y??cj2LpT+1YRfi49Buxl9@85jV@u1+KX diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.index.crc deleted file mode 100644 index c196068cba2e66a1fddf969adfc94b8eeb0789b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}9MN=2k8M6&VB@ diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/.metadata.json.gz.crc deleted file mode 100644 index 41cee7d3f8b97bb44926145da125f70696fb803b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}8vjFrEzn5ZwZ> diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/index/part-0-cbf84037-3354-427a-98a6-b953711ae5bc.idx/index deleted file mode 100644 index c7ce1f380c5c8ab6571026bd9fd73dfd6571973d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmXS5U|=W*VvVi(e-+AQnHfY_85md?w3G8Q@{3C1jVuif^^!A+4E547^AdC7lXFrN z^GXZiJ^g~?;|_w!U=~cthB&4ZQ zO8@trU8~fmy*1zczVC9EHY`^f(-ZnqS;NF4o<&cb9YN`v$flEM@)#{15aT$W#`!#l zJ>$${jvkG~GWDoa2jNKYO(i72p5jC8kSd$Yp*d)~2QAjYS28q}%OGGW))=-VDRbEI z915lD^iZj+6wls6eP1e}aGG38B?lWHfxDLfU@f*M@Cr;wRkq{ao`Xp=!nBju5B(k$-8(pVHR;|jkG=k8hhyBJf2ch6)EV@Q=KG1Yw=>OMljsqc_g%a z_1VL#jYz1{(kv})Qrf~-4rTW~*GC!nmQ;KGzpsPI zbO1HYZ`E;-&hBpyczSF!husZ5nY85wl_hBanP(0;LP VDXsT+|5ayge*yXr;d#&k000EBxiA0# diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/.metadata.json.gz.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/.metadata.json.gz.crc deleted file mode 100644 index 59afd1815900ecc8e854c51d64b74abfbd3ec6c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 XcmYc;N@ieSU}A{e5D<{Gbn!j_BJTxE diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/metadata.json.gz b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/metadata.json.gz deleted file mode 100644 index 49ebd019d137568e1fa2f3836c68170369f91424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmV-~0(<=*iwFP!000000NqtxkD5Rf{V(&nU{`Qr?;Q{n&}6rd>x0oV=YE`f56qDWwguvmnegEa{HLGyiyd&A7=*sUfp|-@XEJ0$ z(aIF5h`L%^Rpk{J&_O8&$1=~uQ|Wm@F^B(foI0cwd*C|+vH3aBZpkW+l0<+RmY z)6taCQgJDw(lEi3Qo%Y60+5YuK2FD$Jsh8p48k{I2jfsYux&Fk(;pNOYU?&M%t|bGvV`b6QyauPoi90Eqd1x%H|@KeTsN{z z^iJQLpzK%bVL}3Ok;NnX62#+_h zRMZ|>R)=q-)d|pZ5#{>kNOyELUr-HG%kAo(K=`c`yAAryruWmwg6i6RO$`N)QXh?& emqlGrVN;z&Bbn}$DJ8K*G{8UAr^)M(2mk<_v^>55 diff --git a/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc b/hail_search/fixtures/GRCh38/SV_WES/projects/WES/R0003_test.ht/rows/parts/.part-0-cbf84037-3354-427a-98a6-b953711ae5bc.crc deleted file mode 100644 index 2e373bfe9be3af3373c2e0917fc127efb4e786ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DIB$7~1y5B0REp+o(?dImroG2P4(|tZN>NUN1~*a8VieHer)5h9h~5|04Lwm3acBuvhtdPI0Obgd)nI9ljk_3CLa|)8*p*>|`vDIC zU_|AvRm(^aVGg2L(FNLY%1g>3SR@F+XF)LtoDxYjm{1J>00000001bpFa00@0RR9z C Date: Wed, 7 Aug 2024 16:43:37 -0400 Subject: [PATCH 13/17] move hailtop to lookup only --- hail_search/queries/base.py | 32 +++++++++----------------------- hail_search/queries/mito.py | 12 +++++++++++- hail_search/test_search.py | 2 +- hail_search/test_utils.py | 2 +- 4 files changed, 22 insertions(+), 26 deletions(-) diff --git a/hail_search/queries/base.py b/hail_search/queries/base.py index abe6cb582c..5fa5d0fddd 100644 --- a/hail_search/queries/base.py +++ b/hail_search/queries/base.py @@ -1,7 +1,6 @@ from aiohttp.web import HTTPBadRequest, HTTPNotFound from collections import defaultdict, namedtuple import hail as hl -import hailtop.fs as hfs import logging import os @@ -267,9 +266,6 @@ def _get_table_path(cls, path, use_ssd_dir=False): return f'{SSD_DATASETS_DIR if use_ssd_dir else DATASETS_DIR}/{cls.GENOME_VERSION}/{cls.DATA_TYPE}/{path}' def _read_table(self, path, drop_globals=None, use_ssd_dir=False, skip_missing_field=None): - if not hfs.exists(self._get_table_path(path, use_ssd_dir=use_ssd_dir)): - return None - table_path = self._get_table_path(path, use_ssd_dir=use_ssd_dir) if 'variant_ht' in self._load_table_kwargs: ht = self._query_table_annotations(self._load_table_kwargs['variant_ht'], table_path) @@ -301,18 +297,12 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ if len(project_samples) == 1: project_guid = list(project_samples.keys())[0] # for variant lookup, project_samples looks like - # {: {: True, : True}, : ...} + # {: {: {: True}, {: {: True}}, : ...} # for variant search, project_samples looks like # {: {: {: [, , ...], : ...}, : ...}, : ...} first_family_samples = list(project_samples[project_guid].values())[0] - if isinstance(first_family_samples, bool): - project_ht = ( - self._read_table(f'projects/WES/{project_guid}.ht', use_ssd_dir=True) or - self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) - ) - else: - sample_type = list(first_family_samples.keys())[0] - project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) + sample_type = list(first_family_samples.keys())[0] + project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) return self._filter_entries_table(project_ht, project_samples[project_guid], **kwargs) # Need to chunk tables or else evaluating table globals throws LineTooLong exception @@ -325,14 +315,8 @@ def _load_filtered_project_hts(self, project_samples, skip_all_missing=False, n_ sample_data = {} for project_guid, project_sample_data in project_samples.items(): first_family_samples = list(project_sample_data.values())[0] - if isinstance(first_family_samples, bool): - project_ht = ( - self._read_table(f'projects/WES/{project_guid}.ht', use_ssd_dir=True) or - self._read_table(f'projects/WGS/{project_guid}.ht', use_ssd_dir=True) - ) - else: - sample_type = list(first_family_samples.keys())[0] - project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) + sample_type = list(first_family_samples.keys())[0] + project_ht = self._read_table(f'projects/{sample_type}/{project_guid}.ht', use_ssd_dir=True) if project_ht is None: continue @@ -415,11 +399,13 @@ def _merge_project_hts(project_hts, n_partitions, include_all_globals=False): def _filter_entries_table(self, ht, sample_data, inheritance_filter=None, quality_filter=None, **kwargs): ht = self._prefilter_entries_table(ht, **kwargs) - # Temporarily flatten sample data for each sample_type into one list of samples + # Temporarily reset sample_data for family_guid, samples_by_sample_type in sample_data.items(): - if isinstance(samples_by_sample_type, dict): + if isinstance(list(samples_by_sample_type.values())[0], list): samples = [s for samples in samples_by_sample_type.values() for s in samples] sample_data[family_guid] = samples + else: + sample_data[family_guid] = True ht, sorted_family_sample_data = self._add_entry_sample_families(ht, sample_data) diff --git a/hail_search/queries/mito.py b/hail_search/queries/mito.py index 17f5d65c57..5be79c829b 100644 --- a/hail_search/queries/mito.py +++ b/hail_search/queries/mito.py @@ -1,5 +1,6 @@ from aiohttp.web import HTTPNotFound import hail as hl +import hailtop.fs as hfs import logging from hail_search.constants import ABSENT_PATH_SORT_OFFSET, CLINVAR_KEY, CLINVAR_MITO_KEY, CLINVAR_LIKELY_PATH_FILTER, CLINVAR_PATH_FILTER, \ @@ -308,7 +309,7 @@ def _gene_rank_sort(cls, r, gene_ranks): def _add_project_lookup_data(self, ht, annotation_fields, *args, **kwargs): # Get all the project-families for the looked up variant formatted as a dict of dicts: - # {: {: True, : True}, : ...} + # {: {: {: True}, {: {: True}}, : ...} lookup_ht = self._read_table('lookup.ht', use_ssd_dir=True, skip_missing_field='project_stats') if lookup_ht is None: raise HTTPNotFound() @@ -325,6 +326,15 @@ def _add_project_lookup_data(self, ht, annotation_fields, *args, **kwargs): hl.dict(family_indices.map(lambda j: (lookup_ht.project_families[project_guid][j], True))), ))), 1), )[0] + + for project_guid, families in variant_projects.items(): + if hfs.exists(self._get_table_path(f'projects/WES/{project_guid}.ht', use_ssd_dir=True)): + sample_type = 'WES' + else: + sample_type = 'WGS' + for family_guid in families: + families[family_guid] = {sample_type: True} + # Variant can be present in the lookup table with only ref calls, so is still not present in any projects if not variant_projects: raise HTTPNotFound() diff --git a/hail_search/test_search.py b/hail_search/test_search.py index 0d1cf69878..9e0f64033e 100644 --- a/hail_search/test_search.py +++ b/hail_search/test_search.py @@ -28,7 +28,7 @@ 'familyGuids': ['F000011_11'], 'genotypes': { 'I000015_na20885': { - 'sampleId': 'NA20885', 'sampleType': 'WGS', 'individualGuid': 'I000015_na20885', 'familyGuid': 'F000011_11', + 'sampleId': 'NA20885', 'sampleType': 'WES', 'individualGuid': 'I000015_na20885', 'familyGuid': 'F000011_11', 'numAlt': 1, 'dp': 8, 'gq': 14, 'ab': 0.875, } }, diff --git a/hail_search/test_utils.py b/hail_search/test_utils.py index e2553f4dd7..ead298ea18 100644 --- a/hail_search/test_utils.py +++ b/hail_search/test_utils.py @@ -402,7 +402,7 @@ {k: v for k, v in g.items() if k != 'individualGuid'} for g in VARIANT1['genotypes'].values() ], key=lambda x: x['sampleId'], reverse=True), 'F000011_11': [{ - 'sampleId': 'NA20885', 'sampleType': 'WGS', 'familyGuid': 'F000011_11', + 'sampleId': 'NA20885', 'sampleType': 'WES', 'familyGuid': 'F000011_11', 'numAlt': 2, 'dp': 6, 'gq': 16, 'ab': 1.0, }], } From 6fa48e585259aea6bc6c0dc8fe70bccbe8cdb9cb Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Wed, 7 Aug 2024 16:56:41 -0400 Subject: [PATCH 14/17] test --- seqr/views/apis/variant_search_api_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seqr/views/apis/variant_search_api_tests.py b/seqr/views/apis/variant_search_api_tests.py index 0cf449d4f0..3acd45aa89 100644 --- a/seqr/views/apis/variant_search_api_tests.py +++ b/seqr/views/apis/variant_search_api_tests.py @@ -809,7 +809,7 @@ def test_variant_lookup(self, mock_variant_lookup): 'I0_F0_1-10439-AC-A': {'ab': 0.0, 'dp': 60, 'gq': 20, 'numAlt': 0, 'sampleType': 'WES'}, 'I1_F0_1-10439-AC-A': {'ab': 0.0, 'dp': 24, 'gq': 0, 'numAlt': 0, 'sampleType': 'WES'}, 'I2_F0_1-10439-AC-A': {'ab': 0.5, 'dp': 10, 'gq': 99, 'numAlt': 1, 'sampleType': 'WES'}, - 'I0_F1_1-10439-AC-A': {'ab': 1.0, 'dp': 6, 'gq': 16, 'numAlt': 2, 'sampleType': 'WGS'}, + 'I0_F1_1-10439-AC-A': {'ab': 1.0, 'dp': 6, 'gq': 16, 'numAlt': 2, 'sampleType': 'WES'}, }, } del expected_variant['familyGenotypes'] From af42441d284eb1da68c762c73520cfc24908ada0 Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Thu, 8 Aug 2024 11:44:27 -0400 Subject: [PATCH 15/17] os instead of hailtop exists --- hail_search/queries/mito.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hail_search/queries/mito.py b/hail_search/queries/mito.py index 5be79c829b..08c1af4bd6 100644 --- a/hail_search/queries/mito.py +++ b/hail_search/queries/mito.py @@ -1,6 +1,7 @@ +import os + from aiohttp.web import HTTPNotFound import hail as hl -import hailtop.fs as hfs import logging from hail_search.constants import ABSENT_PATH_SORT_OFFSET, CLINVAR_KEY, CLINVAR_MITO_KEY, CLINVAR_LIKELY_PATH_FILTER, CLINVAR_PATH_FILTER, \ @@ -328,7 +329,7 @@ def _add_project_lookup_data(self, ht, annotation_fields, *args, **kwargs): )[0] for project_guid, families in variant_projects.items(): - if hfs.exists(self._get_table_path(f'projects/WES/{project_guid}.ht', use_ssd_dir=True)): + if os.path.exists(self._get_table_path(f'projects/WES/{project_guid}.ht')): sample_type = 'WES' else: sample_type = 'WGS' From 30c6a813e605f9f53f327f2dac74295f6f63eb07 Mon Sep 17 00:00:00 2001 From: Julia Klugherz Date: Thu, 8 Aug 2024 11:53:41 -0400 Subject: [PATCH 16/17] Update base.py --- hail_search/queries/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hail_search/queries/base.py b/hail_search/queries/base.py index 5fa5d0fddd..5588bc64dd 100644 --- a/hail_search/queries/base.py +++ b/hail_search/queries/base.py @@ -399,7 +399,7 @@ def _merge_project_hts(project_hts, n_partitions, include_all_globals=False): def _filter_entries_table(self, ht, sample_data, inheritance_filter=None, quality_filter=None, **kwargs): ht = self._prefilter_entries_table(ht, **kwargs) - # Temporarily reset sample_data + # Temporarily reset sample_data until full blended eS/GS support is added for family_guid, samples_by_sample_type in sample_data.items(): if isinstance(list(samples_by_sample_type.values())[0], list): samples = [s for samples in samples_by_sample_type.values() for s in samples] From a87104355db2eaef9c3d70503e62804f85d3b606 Mon Sep 17 00:00:00 2001 From: Hana Snow Date: Fri, 9 Aug 2024 11:03:06 -0400 Subject: [PATCH 17/17] bump changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e730f2820d..57532e5186 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## dev +## 8/9/24 +* Update directory structure for search backend + ## 8/2/24 * Adds index_file_path to IGV Sample model (REQUIRES DB MIGRATION)