diff --git a/v03_pipeline/lib/misc/family_entries.py b/v03_pipeline/lib/misc/family_entries.py index b3f3c2b50..1088ae408 100644 --- a/v03_pipeline/lib/misc/family_entries.py +++ b/v03_pipeline/lib/misc/family_entries.py @@ -98,13 +98,17 @@ def remove_family_guids( family_guids: hl.SetExpression, ) -> hl.Table: # Remove families from the existing project table structure (both the entries arrays and the globals are mutated) - family_indexes_to_keep = hl.array( + family_indexes_to_keep = hl.set( hl.enumerate(ht.globals.family_guids) .filter(lambda item: ~family_guids.contains(item[1])) .map(lambda item: item[0]), ) ht = ht.annotate( - family_entries=family_indexes_to_keep.map(lambda i: ht.family_entries[i]), + family_entries=( + hl.enumerate(ht.family_entries) + .filter(lambda item: family_indexes_to_keep.contains(item[0])) + .map(lambda item: item[1]) + ), ) return ht.annotate_globals( family_guids=ht.family_guids.filter( diff --git a/v03_pipeline/lib/misc/lookup.py b/v03_pipeline/lib/misc/lookup.py index 6a7e3cbbc..03a696ce3 100644 --- a/v03_pipeline/lib/misc/lookup.py +++ b/v03_pipeline/lib/misc/lookup.py @@ -128,22 +128,22 @@ def remove_project( existing_project_guids = hl.eval(ht.globals.project_guids) if project_guid not in existing_project_guids: return ht - project_indexes_to_keep = ( + project_indexes_to_keep = hl.set( hl.enumerate(existing_project_guids) .filter(lambda item: item[1] != project_guid) - .map(lambda item: item[0]) + .map(lambda item: item[0]), ) ht = ht.annotate( project_stats=( - project_indexes_to_keep.map( - lambda i: ht.project_stats[i], - ) + hl.enumerate(ht.project_stats) + .filter(lambda item: project_indexes_to_keep.contains(item[0])) + .map(lambda item: item[1]) ), ) ht = ht.filter(hl.any(ht.project_stats.map(hl.is_defined))) return ht.annotate_globals( - project_guids=project_indexes_to_keep.map( - lambda i: ht.project_guids[i], + project_guids=ht.project_guids.filter( + lambda p: p != project_guid, ), project_families=hl.dict( ht.project_families.items().filter(lambda item: item[0] != project_guid),